fenextjs-validator
Version:
945 lines • 38.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {
id: "FenextjsValidator",
name: "FenextjsValidator",
description: "Clase para validar datos de entrada, proporcionando métodos para verificar requerimientos, longitudes, y tipos específicos de validaciones.",
useImport: true,
useBreadcrumb: false,
functions: [
{
id: "isEqual",
name: "isEqual",
description: "Método para definir la validación 'isEqual'. Establece la regla de que los datos deben ser iguales al valor especificado.",
useImport: false,
props: [
{
id: "d",
type: "T[] | T",
require: true,
description: "Valor o lista de valores con los que se compararán los datos a validar.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de igualdad",
content: `const validator = FenextjsValidator();
validator.isEqual('value1');
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isEqual('value1', 'Los valores no son iguales');
`,
},
],
},
{
id: "isRequired",
name: "isRequired",
description: "Método para habilitar la validación 'isRequired'. Establece la regla de que los datos deben estar presentes y no ser nulos o indefinidos.",
useImport: false,
props: [
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de requerimiento",
content: `const validator = FenextjsValidator();
validator.isRequired();
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isRequired('Los datos son obligatorios');
`,
},
],
},
{
id: "isBoolean",
name: "isBoolean",
description: "Método para habilitar la validación 'isBoolean'. Establece la regla de que los datos deben ser de tipo booleano.",
useImport: false,
props: [
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de tipo booleano",
content: `const validator = FenextjsValidator();
validator.isBoolean();
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isBoolean('Debe ser un valor booleano');
`,
},
],
},
{
id: "isNumber",
name: "isNumber",
description: "Método para habilitar la validación 'isNumber'. Establece la regla de que los datos deben ser de tipo número.",
useImport: false,
props: [
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de tipo número",
content: `const validator = FenextjsValidator();
validator.isNumber();
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isNumber('Debe ser un número');
`,
},
],
},
{
id: "isString",
name: "isString",
description: "Método para habilitar la validación 'isString'. Establece la regla de que los datos deben ser de tipo cadena (string).",
useImport: false,
props: [
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de tipo cadena",
content: `const validator = FenextjsValidator();
validator.isString();
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isString('Debe ser una cadena');
`,
},
],
},
{
id: "isLength",
name: "isLength",
description: "Método para habilitar la validación de longitud. Establece la regla de que los datos deben tener una longitud específica.",
useImport: false,
props: [
{
id: "length",
type: "number",
require: true,
description: "La longitud que deben tener los datos para que la validación sea válida.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de longitud",
content: `const validator = FenextjsValidator();
validator.isLength(5);
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isLength(5, 'La longitud debe ser 5');
`,
},
],
},
{
id: "isDate",
name: "isDate",
description: "Método para habilitar la validación 'isDate'. Establece la regla de que los datos deben ser de tipo Date (fecha).",
useImport: false,
props: [
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de tipo fecha",
content: `const validator = FenextjsValidator();
validator.isDate();
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isDate('Debe ser una fecha válida');
`,
},
],
},
{
id: "isObject",
name: "isObject",
description: "Método para habilitar la validación 'isObject'. Establece la regla de que los datos deben ser de tipo objeto.",
useImport: false,
props: [
{
id: "obj",
type: "{ [id in keyof T]?: FenextjsValidatorClass } | undefined",
require: true,
description: "Objeto con las reglas de validación para cada propiedad del objeto.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de tipo objeto",
content: `const validator = FenextjsValidator();
validator.isObject({
propertyName: FenextjsValidator().isString(),
});
`,
},
{
text: "Definir validación con reglas de propiedades y mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isObject({
propertyName: FenextjsValidator().isString('Debe ser una cadena'),
}, 'El objeto no es válido');
`,
},
],
},
{
id: "isArray",
name: "isArray",
description: "Método para habilitar la validación 'isArray'. Establece la regla de que los datos deben ser un array.",
useImport: false,
props: [
{
id: "item",
type: "FenextjsValidatorClass | undefined",
require: false,
description: "Instancia de FenextjsValidatorClass que define las reglas de validación para cada elemento del array.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de tipo array",
content: `const validator = FenextjsValidator();
validator.isArray();
`,
},
{
text: "Definir validación de array con reglas para sus elementos",
content: `const validator = FenextjsValidator();
validator.isArray(FenextjsValidator().isString());
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isArray(
FenextjsValidator().isString('Cada elemento debe ser una cadena')
);
`,
},
],
},
{
id: "isMin",
name: "isMin",
description: "Método para habilitar la validación 'isMin'. Establece la regla de que los datos deben ser mayores que un valor específico.",
useImport: false,
props: [
{
id: "min",
type: "number | Date",
require: true,
description: "Valor mínimo que los datos deben superar para que la validación sea válida.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de valor mínimo",
content: `const validator = FenextjsValidator();
validator.isMin(10);
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isMin(10, 'El valor debe ser mayor que 10');
`,
},
{
text: "Definir validación con valor mínimo de fecha",
content: `const validator = FenextjsValidator();
validator.isMin(new Date('2024-01-01'));
`,
},
],
},
{
id: "isMinOrEqual",
name: "isMinOrEqual",
description: "Método para habilitar la validación 'isMinOrEqual'. Establece la regla de que los datos deben ser mayores o iguales que un valor específico.",
useImport: false,
props: [
{
id: "min",
type: "number | Date",
require: true,
description: "Valor mínimo que los datos deben superar o igualar para que la validación sea válida.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de valor mínimo o igual",
content: `const validator = FenextjsValidator();
validator.isMinOrEqual(10);
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isMinOrEqual(10, 'El valor debe ser mayor o igual a 10');
`,
},
{
text: "Definir validación con valor mínimo o igual de fecha",
content: `const validator = FenextjsValidator();
validator.isMinOrEqual(new Date('2024-01-01'));
`,
},
],
},
{
id: "isMax",
name: "isMax",
description: "Método para habilitar la validación 'isMax'. Establece la regla de que los datos deben ser menores que un valor específico.",
useImport: false,
props: [
{
id: "max",
type: "number | Date",
require: true,
description: "Valor máximo que los datos deben ser menores que él para que la validación sea válida.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de valor máximo",
content: `const validator = FenextjsValidator();
validator.isMax(100);
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isMax(100, 'El valor debe ser menor que 100');
`,
},
{
text: "Definir validación con valor máximo de fecha",
content: `const validator = FenextjsValidator();
validator.isMax(new Date('2024-01-01'));
`,
},
],
},
{
id: "isMaxOrEqual",
name: "isMaxOrEqual",
description: "Método para habilitar la validación 'isMaxOrEqual'. Establece la regla de que los datos deben ser menores o iguales que un valor específico.",
useImport: false,
props: [
{
id: "max",
type: "number | Date",
require: true,
description: "Valor máximo que los datos deben ser menores o iguales que él para que la validación sea válida.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de valor máximo o igual",
content: `const validator = FenextjsValidator();
validator.isMaxOrEqual(100);
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isMaxOrEqual(100, 'El valor debe ser menor o igual que 100');
`,
},
{
text: "Definir validación con valor máximo o igual de fecha",
content: `const validator = FenextjsValidator();
validator.isMaxOrEqual(new Date('2024-01-01'));
`,
},
],
},
{
id: "isCompareRef",
name: "isCompareRef",
description: "Método para habilitar la comparación de valores de referencia. Establece la regla de que los datos deben ser iguales a otro valor de referencia almacenado en la instancia.",
useImport: false,
props: [
{
id: "refKey",
type: "string",
require: true,
description: "La clave que identifica el valor de referencia almacenado en la instancia para la comparación.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se mostrará si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Definir validación de comparación con valor de referencia",
content: `const validator = FenextjsValidator();
validator.isCompareRef('myRefKey');
`,
},
{
text: "Definir validación con mensaje de error personalizado",
content: `const validator = FenextjsValidator();
validator.isCompareRef('myRefKey', 'Los valores no coinciden');
`,
},
],
},
{
id: "isWhen",
name: "isWhen",
description: "Método para habilitar la validación 'isWhen'. Establece la regla de comparación cuando se cumpla una condición específica.",
useImport: false,
props: [
{
id: "data",
type: "FenextjsValidatorClassIsWhenProps",
require: true,
description: "Objeto que contiene las reglas de validación a aplicar cuando la condición especificada sea verdadera. La estructura de 'FenextjsValidatorClassIsWhenProps' incluye los campos 'key', 'is', 'then', 'otherwise', y opcionalmente 'dataIsCurrent'.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia de la clase para permitir el encadenamiento de métodos.",
},
],
extras: [
{
id: "condiciones",
title: "Condiciones en 'isWhen'",
description: "El método 'isWhen' permite aplicar validaciones condicionales basadas en los valores de las propiedades. A continuación se describen las posibles condiciones y el comportamiento de cada una:",
tableItems: [
{
Condición: "key",
Descripción: "El campo 'key' es el nombre de la propiedad a evaluar. Se usará para determinar si la validación debe aplicarse a esa propiedad.",
},
{
Condición: "is",
Descripción: "La propiedad 'is' contiene una instancia de 'FenextjsValidatorClass' que define las reglas de validación para aplicar cuando se cumpla la condición.",
},
{
Condición: "then",
Descripción: "La propiedad 'then' contiene una instancia de 'FenextjsValidatorClass' que define las reglas de validación a aplicar si la condición es verdadera.",
},
{
Condición: "otherwise",
Descripción: "La propiedad 'otherwise' contiene una instancia de 'FenextjsValidatorClass' que define las reglas de validación a aplicar si la condición es falsa. Este campo es opcional.",
},
{
Condición: "dataIsCurrent",
Descripción: "La propiedad 'dataIsCurrent' es un valor booleano opcional que indica si se debe comparar la propiedad con los datos actuales. Si no se establece, se asumirá como 'false'.",
},
],
},
],
useExample: [
{
text: "Definir validación 'isWhen' con una condición",
content: `const validator = FenextjsValidator();
validator.isWhen({
key: 'age',
is: validator.isNumber(),
then: validator.isMin(18)
});`,
},
{
text: "Definir validación 'isWhen' con condiciones múltiples y alternativa",
content: `const validator = FenextjsValidator();
validator.isWhen({
key: 'age',
is: validator.isNumber(),
then: validator.isMin(18),
otherwise: validator.isMax(65)
});
validator.isWhen({
key: 'name',
is: validator.isString(),
then: validator.isLength(3)
});`,
},
],
},
{
id: "isRegex",
name: "isRegex",
description: "Método para habilitar la validación 'isRegex'. Establece la regla de que los datos deben coincidir con una expresión regular especificada.",
useImport: false,
props: [
{
id: "data",
type: "RegExp",
require: true,
description: "Expresión regular con la que los datos deben coincidir para que la validación sea éxitosa.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se muestra si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Habilitar validación 'isRegex'",
content: `const validator = FenextjsValidator();
validator.isRegex(/^[a-zA-Z0-9]+$/, 'El valor debe contener solo caracteres alfanuméricos');`,
},
],
},
{
id: "isEmail",
name: "isEmail",
description: "Método para habilitar la validación 'isEmail'. Establece la regla de que los datos deben ser un correo electrónico válido.",
useImport: false,
props: [
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se muestra si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Habilitar validación 'isEmail'",
content: `const validator = FenextjsValidator();
validator.isEmail('Por favor, ingresa un correo electrónico válido');`,
},
],
},
{
id: "isCustom",
name: "isCustom",
description: "Método para habilitar la validación 'onCustom'. Establece la regla de que los datos deben cumplir con una validación personalizada definida por una función.",
useImport: false,
props: [
{
id: "data",
type: "(data: T, parent?: FenextjsValidatorClass) => true | ErrorFenextjs",
require: true,
description: "Función que define la validación personalizada. Si la validación falla, debe retornar un error de tipo ErrorFenextjs.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se muestra si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Habilitar validación 'isCustom'",
content: `const validator = FenextjsValidator();
validator.isCustom((data) => {
if (data.length < 5) return new ErrorFenextjs('El valor es demasiado corto');
return true;
}, 'Error en validación personalizada');`,
},
],
},
{
id: "isOr",
name: "isOr",
description: "Método para definir la validación 'isOr'. Establece la regla de que los datos deben cumplir al menos una validación de las proporcionadas.",
useImport: false,
props: [
{
id: "d",
type: "FenextjsValidatorClass[]",
require: true,
description: "Lista de instancias de FenextjsValidatorClass que representan las validaciones a comparar con los datos.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se muestra si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Habilitar validación 'isOr'",
content: `const validator = FenextjsValidator();
const validator1 = FenextjsValidator().isRequired();
const validator2 = FenextjsValidator().isEmail();
validator.isOr([validator1, validator2], 'Debe ser un valor requerido o un email válido');`,
},
],
},
{
id: "isEnum",
name: "isEnum",
description: "Método para habilitar la validación 'isEnum'. Establece la regla de que los datos deben coincidir con uno de los valores especificados en un objeto enumerado.",
useImport: false,
props: [
{
id: "data",
type: "object",
require: true,
description: "Objeto que define los valores permitidos para la validación. Los datos deben coincidir con uno de estos valores.",
},
{
id: "msg",
type: "string",
require: false,
description: "Mensaje de error personalizado que se muestra si la validación falla.",
},
],
returns: [
{
id: "this",
type: "FenextjsValidatorClass",
description: "Devuelve la instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos.",
},
],
useExample: [
{
text: "Habilitar validación 'isEnum'",
content: `const validator = FenextjsValidator();
enum enumValues {
'VALUE_1'= 'VALUE_1',
'VALUE_2'= 'VALUE_2'
};
validator.isEnum(enumValues, 'El valor debe estar en el enum especificado');`,
},
],
},
//-------------------------------
{
id: "onValidate",
name: "onValidate",
description: "Método para validar los datos proporcionados según las reglas establecidas. Ejecuta todas las reglas de validación habilitadas previamente para los datos.",
useImport: false,
props: [
{
id: "d",
type: "T",
require: true,
description: "Datos que se deben validar, los cuales serán evaluados contra las reglas de validación previamente habilitadas.",
},
],
returns: [
{
id: "true",
type: "boolean",
description: "Devuelve 'true' si los datos cumplen con todas las reglas de validación habilitadas.",
},
{
id: "ErrorFenextjs",
type: "ErrorFenextjs",
description: "Si alguna regla de validación falla, retorna el error que indica qué regla de validación falló.",
},
],
useExample: [
{
text: "Validación de datos con las reglas habilitadas",
content: `const validator = FenextjsValidator();
const data = { name: 'Juan', age: 30 };
const result = validator.onValidate(data)
if (result === true) {
console.log('Datos válidos');
} else {
console.log('Error de validación:', result);
}`,
},
],
},
//-------------------------------
{
id: "getObjectValidator",
name: "getObjectValidator",
description: "Método para obtener la validación 'isObject'. Devuelve el objeto con las reglas de validación definidas para las propiedades del objeto.",
useImport: false,
props: [],
returns: [
{
id: "objectValue",
type: "{ [id in keyof T]?: FenextjsValidatorClass } | undefined",
description: "Devuelve el objeto con las reglas de validación para cada propiedad si 'isObject' está habilitado, o undefined si no lo está.",
},
],
useExample: [
{
text: "Obtener las reglas de validación del objeto",
content: `const validator = FenextjsValidator();
const objectValidator = validator.getObjectValidator();
console.log(objectValidator);`,
},
],
},
{
id: "getArrayValue",
name: "getArrayValue",
description: "Método público para obtener el valor de validación de array. Devuelve las reglas de validación definidas para los elementos del array.",
useImport: false,
props: [],
returns: [
{
id: "arrayValue",
type: "FenextjsValidatorClassIsWhenProps | undefined",
description: "Devuelve el valor de validación del array si está habilitada, o undefined si no lo está.",
},
],
useExample: [
{
text: "Obtener el valor de validación de array",
content: `const validator = FenextjsValidator();
const arrayValidator = validator.getArrayValue();
console.log(arrayValidator);`,
},
],
},
{
id: "getWhenValue",
name: "getWhenValue",
useImport: false,
description: "Método público para obtener el valor de validación de 'when'. Devuelve las condiciones definidas para la validación 'isWhen'.",
returns: [
{
id: "this.whenValue",
type: "FenextjsValidatorClassIsWhenProps[] | undefined",
description: "Devuelve el valor de 'when' como un array de objetos de tipo 'FenextjsValidatorClassIsWhenProps', o 'undefined' si no se ha definido.",
},
],
useExample: [
{
text: "Obtener valor de validación 'when'",
content: `const whenValue = validator.getWhenValue();`,
},
],
},
],
};
//# sourceMappingURL=_.doc.js.map