Funciones personalizadas
Es posible crear funciones personalizadas utilizando JavaScript. Estas funciones pueden ser creadas desde dos lugares:
-
Desde Proyecto: Las funciones creadas desde esta página pueden ser utilizadas en cualquier modelo que pertenezca al proyecto.
-
Desde las operaciones de Anonimizar o Sintetizar: Las funciones creadas desde aquí se aplican únicamente a la columna seleccionada. Estas funciones no se guardan de forma global y, por lo tanto, no pueden ser reutilizadas en otros lugares de la aplicación.
Creando una nueva función
La página para crear una nueva función está dividida en 3 partes:
- Consola: el área donde el usuario escribe el código de la función.
- Vista previa: El usuario puede ver el resultado del código ejecutándose
utilizando los campos de
Entrada
y haciendo clic en el botónEjecutar
. También es posible agregar más registros a la vista previa. - Funciones: Una lista de funciones predefinidas. Cuando se hace clic en una función, un código de sugerencia de la función se pega en la consola.
Usa la variable $val
para llamar a tus valores de entrada
Funciones
chance (seed?)
Devuelve una instancia de Chance
- seed: valor inicial para instanciar Chance.
Ejemplos
Consulta la [documentación del paquete Chance ↗] (https://chancejs.com/) para más información
dateFormat (val, format)
Formatea una fecha con una máscara
- val: valor de fecha que puede ser una cadena, un número o un objeto Date.
- format: especifica el formato en el que se mostrará la fecha.
# | entrada | salida | |
---|---|---|---|
1 | 99/10/31 | -> | 1999-10-31 |
2 | 95-05-18 | -> | 1995-05-18 |
Ejemplos
db
Conecta a una base de datos utilizando los controladores de Gigantics. Lista de métodos disponibles:
connect (driver, options)
Devuelve una conexión a una base de datos.
- driver: cadena del controlador. Puede ser
mysql
,postgres
,mssql
,oracle
,mongodb
osqlite3
. - options: lista de opciones para establecer la conexión.
- host: dirección del endpoint.
- port: número de puerto.
- user: usuario de la base de datos.
- password: contraseña de la base de datos para el usuario especificado.
- db: nombre de la base de datos.
Ejemplos
decrypt (val, secret, options)
Desencripta datos utilizando el algoritmo aes-256-gcm
- val: cadena a desencriptar.
- secret: clave para desencriptar la cadena.
- options:
- saltLength: longitud del parámetro salt
deepReplace (oldStr, newStr, options, record)
Reemplaza los mismos datos en todas partes del registro actual
- oldStr: valor de cadena antigua.
- newStr: nueva cadena para reemplazar.
- options:
- smartCase: si es
true
, se ignorará el uso de mayúsculas y minúsculas al coincidir la cadena a reemplazar.
- smartCase: si es
- record: un registro cuyas propiedades serán verificadas para el reemplazo de datos.
Ejemplos
encrypt (val, secret, options)
Encripta datos utilizando aes-256-gcm
- val: cadena a encriptar.
- secret: clave para encriptar la cadena.
- options:
- saltLength: longitud del parámetro salt
faker
Devuelve una instancia de Faker
Ejemplos
Consulta la documentación del paquete Faker para una lista completa de funciones disponibles.
file
Devuelve un objeto de archivo con los siguientes métodos disponibles:
open (path, flags, ...args)
Abre y posiblemente crea un archivo.
- path: Una ruta a un archivo. Si se proporciona una URL, debe usar el protocolo
file:
. - flags: Una cadena que indica el tipo de operaciones que se realizarán en el descriptor de archivo devuelto. Sus valores pueden ser
r
,r+
,rs+
,w
,wx
,w+
,wx+
,a
,ax
,a+
oax+
. - args:
- mode: Un modo de archivo. Si se pasa una cadena, se analiza como un entero octal. Si no se proporciona, el valor predeterminado es
0o666
.
- mode: Un modo de archivo. Si se pasa una cadena, se analiza como un entero octal. Si no se proporciona, el valor predeterminado es
write (file, data, options)
Escribe datos en un archivo de forma asíncrona, reemplazando el archivo si ya existe. No es seguro llamar a fsPromises.writeFile() varias veces en el mismo archivo sin esperar a que se resuelva (o rechace) la Promesa.
- file: Una ruta a un archivo.
- data: Los datos a escribir. Si se proporciona algo que no sea un Buffer o Uint8Array, el valor se convierte en una cadena.
- options: Ya sea la codificación para el archivo, o un objeto que opcionalmente especifique la codificación, el modo de archivo y la bandera. Si no se proporciona codificación, se usa el valor predeterminado de
utf8
. Si no se proporciona modo, se usa el valor predeterminado de0o666
. Si el modo es una cadena, se analiza como un entero octal. Si no se proporciona la bandera, se usa el valor predeterminado dew
.
read (file, data, options)
Lee de forma asíncrona el contenido completo de un archivo.
- file: Una ruta a un archivo.
- options: Un objeto que puede contener una bandera opcional. Si no se proporciona una bandera, el valor predeterminado es 'r'.
append (file, data, options)
Agrega datos a un archivo de forma asíncrona, creando el archivo si no existe.
- file: Una ruta a un archivo. Si se proporciona una URL, debe usar el protocolo
file:
. El soporte para URL es experimental. Si se proporciona un FileHandle, el archivo subyacente no se cerrará automáticamente. - data: Los datos a escribir. Si se proporciona algo que no sea un
Buffer
oUint8Array
, el valor se convierte en una cadena. - options: Ya sea la codificación para el archivo, o un objeto que opcionalmente especifique la codificación, el modo de archivo y la bandera. Si no se proporciona codificación, se usa el valor predeterminado de
utf8
. Si no se proporciona modo, se usa el valor predeterminado de0o666
. Si el modo es una cadena, se analiza como un entero octal. Si no se proporciona la bandera, se usa el valor predeterminado dea
.
readdir (path, ...args)
Lee de forma asíncrona un directorio.
- path: Una ruta a un archivo. Si se proporciona una URL, debe usar el protocolo
file:
. - options: La codificación (o un objeto que especifique la codificación), utilizada como la codificación del resultado. Si no se proporciona, se usa 'utf8'.
rename (oldPath, newPath)
Cambia de forma asíncrona el nombre o la ubicación de un archivo o directorio.
- oldPath: La ruta del archivo que se desea modificar.
- newPath: Nuevo nombre o ruta para el archivo.
copyFile (src, dest, ...args)
Copia de forma asíncrona src
a dest
. Por defecto, dest
se sobrescribe si ya existe. Node.js no garantiza la atomicidad de la operación de copia. Si ocurre un error después de que el archivo de destino se haya abierto para escritura, Node.js intentará eliminar el destino.
- src: Una ruta al archivo fuente.
- dest: Una ruta al archivo de destino.
- args:
- flags: Un entero opcional que especifica el comportamiento de la operación de copia. La única bandera admitida es fs.constants.COPYFILE_EXCL, que hace que la operación de copia falle si
dest
ya existe.
- flags: Un entero opcional que especifica el comportamiento de la operación de copia. La única bandera admitida es fs.constants.COPYFILE_EXCL, que hace que la operación de copia falle si
truncate (path, ...args)
Trunca de forma asíncrona un archivo a una longitud especificada.
- path: Una ruta a un archivo. Si se proporciona una URL, debe usar el protocolo
file:
. - args:
- len: Si no se especifica, el valor predeterminado es 0.
mkdir (path, ...args)
Crea de forma asíncrona un directorio.
- path: Una ruta a un archivo. Si se proporciona una URL, debe usar el protocolo
file:
. - args:
- options: Ya sea el modo de archivo, o un objeto que opcionalmente especifique el modo de archivo y si se deben crear carpetas principales. Si se pasa una cadena, se analiza como un entero octal. Si no se especifica, el valor predeterminado es 0o777.
mkdtemp (prefix, ...args)
Crea de forma asíncrona un directorio temporal único. Genera seis caracteres aleatorios que se agregarán detrás de un prefijo requerido para crear un directorio temporal único.
- prefix: Cadena que precederá al directorio temporal generado.
- args:
- options: La codificación (o un objeto que especifique la codificación), utilizada como la codificación del resultado. Si no se proporciona, se usa 'utf8'.
base (path?)
Devuelve la ruta base.
- path: Ruta de archivo para agregar a la ruta base.
home (path?)
Devuelve la ruta del directorio de inicio.
- path: Ruta de archivo para agregar a la ruta del directorio de inicio.
Ejemplos
genLabel (label, locale, opts)
Devuelve datos generados a partir de una etiqueta
- label: Nombre de la etiqueta de Gigantics.
- locale: Cadena de configuración regional.
- opts:
- prefix: Cadena para agregar antes de los datos falsos.
- suffix: Cadena para agregar después de los datos falsos.
- case: Puede ser
upper
,lower
,title
,kebab
,snake
. - suffixEnabled: Booleano que indica si el uso del sufijo está habilitado.
- prefixEnabled: Booleano que indica si el uso del prefijo está habilitado.
Ejemplos
genLike (val, opts?)
Genera datos aleatorios que se asemejan a la entrada
- val: Cadena que se utilizará como referencia para la generación de datos.
- opts:
- alphabet: Cadena que contiene los caracteres que se utilizarán en los datos resultantes.
- re: Expresión regular.
- size: Tamaño de la cadena resultante.
- remove: Cadena que contiene los caracteres que se eliminarán.
- add: Cadena que se agregará a los datos.
genRe (re, opts?)
Devuelve datos aleatorios que coinciden con la expresión regular de entrada
- re: Expresión regular.
- opts:
- alphabet: Cadena que contiene los caracteres que se utilizarán en los datos resultantes.
- re: Expresión regular.
- size: Tamaño de la cadena resultante.
- remove: Cadena que contiene los caracteres que se eliminarán.
- add: Cadena que se agregará a los datos.
Ejemplos
log
Envía mensajes al registrador de jobs. Lista de métodos disponibles
info (msg, ...args)
debug (msg, ...args)
trace (lev, msg, ...args)
warn (msg, ...args)
error (msg, ...args)
fail (msg, ...args)
Ejemplos
md5 (str, encoding)
Devuelve un valor hash md5
- str: Cadena a ser hasheada.
- encoding: Si no se especifica, su valor será
hex
.
mem
Reutiliza valores de transformaciones entre entidades y campos. Lista de métodos disponibles:
do (scope, oldVal, fn, options?)
Almacena una entrada en memoria aplicando una cierta transformación si el valor no está ya establecido. Si se almacenó previamente, devuelve el valor memorizado.
- scope: El contexto o ámbito bajo el cual se almacena o almacenará el valor.
- oldVal: Valor clave para buscar en la memoria.
- fn: Transformación que se almacenará.
- options:
- once: Si es
true
, el valor no se almacenará ni actualizará si ya existía. Su valor predeterminado esfalse
.
- once: Si es
set (scope, oldVal, newVal, options)
Almacena un valor en memoria bajo un cierto ámbito.
- scope: El contexto o ámbito bajo el cual se almacenará el valor.
- oldVal: Valor clave para buscar la entrada en memoria.
- newVal: El nuevo valor que se almacenará.
- options:
- once: Si es
true
, el valor no se almacenará ni actualizará si ya existe.
- once: Si es
get (scope, oldVal)
Recupera un valor de la memoria.
- scope: El contexto o ámbito bajo el cual se almacena el valor.
- oldVal: Valor clave para buscar la entrada en memoria.
Ejemplos
Ayuda
- Usa el paquete
mem
si necesitas sincronizar datos entre diferentes columnas/campos y tablas de entidades. - El paquete
mem
almacena y recupera datos de un diccionario a nivel de proyecto, y establece valores utilizando una combinación de un ámbito y un valor de campo hasheado o encriptado. - Recomendamos el uso del método
mem.do
. Solo establecerá un valor si el valor no se encuentra, y devolverá ya sea el valor memorizado, si existe, o el valor de retorno de la función. mem.get(scope, $val)
- devuelve el valor memorizado, oundefined
si no se encuentra.mem.set(scope, $val, newVal)
- establece un nuevo valor en un ámbito.
once (cb)
Ejecuta una función una vez, almacena en caché y devuelve el resultado.
- cb: Función a ejecutar
randomDate (inicio?, fin?)
Devuelve una fecha aleatoria entre dos fechas dadas.
- inicio: Fecha de inicio como número, cadena u objeto Date.
- fin: Fecha de fin como número, cadena u objeto Date.
randomNumber (min, max, type, opts)
Devuelve un número aleatorio del tipo especificado entre dos valores.
- min: valor mínimo que puede tomar el número generado
- max: valor máximo que puede tomar el número generado
- type: Puede ser
integer
ofloating
- opts:
- fixed: Número de decimales cuando el tipo es
floating
- fixed: Número de decimales cuando el tipo es
sha (val, algo, inFmt, outFmt)
Devuelve el valor hash del dato de entrada.
- val: Valor a hashear.
- algo: Algoritmo a aplicar. Puede ser:
SHA-1
,SHA-224
,SHA3-224
,SHA-256
,SHA3-256
,SHA-384
,SHA3-384
,
SHA-512
,SHA3-512
,SHAKE128
oSHAKE256
- inFmt: Formato de entrada. Valores posibles:
HEX
,TEXT
,B64
,
BYTES
,ARRAYBUFFER
oUINT8ARRAY
- outFmt: Formato de salida. Valores posibles:
B64
,HEX
,BYTES
,
ARRAYBUFFER
oUINT8ARRAY
smartReplace (str, before, after)
Reemplaza una cadena manteniendo el estilo de mayúsculas/minúsculas.
- str: Cadena de origen.
- before: Cadena a buscar.
- after: Cadena que se usará como reemplazo.
strReverse (str)
Invierte una cadena dada.
- str: Cadena a invertir
# | entrada | salida | |
---|---|---|---|
1 | foo | -> | oof |
2 | bar | -> | rab |
Ejemplos
Podemos crear una función para convertir una columna de temperatura de Fahrenheit a Celsius:
Donde $val
representa el valor del campo en la tabla.
Entrada → Salida:
# | entrada | salida | |
---|---|---|---|
1 | 85 | -> | 29.444444444444446 |
2 | 50 | -> | 10 |
También podemos usar funciones de JavaScript:
Entrada → Salida:
# | entrada | salida | |
---|---|---|---|
1 | 85 | -> | 29.44 |
2 | 50 | -> | 10.00 |