fenextjs-validator
Advanced tools
Comparing version 1.0.1 to 1.0.2
@@ -0,19 +1,95 @@ | ||
/** | ||
* Clase que proporciona validación de datos en TypeScript/JavaScript. | ||
* @template T - Tipo de los datos a validar. | ||
*/ | ||
export declare class FenextjsValidatorClass<T = any> { | ||
#private; | ||
/** | ||
* Método para definir la validación "isEqual". | ||
* Establece la regla de que los datos deben ser iguales al valor especificado. | ||
* @param d - Valor a comparar con los datos. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isEqual(d: T): this; | ||
/** | ||
* Método para habilitar la validación "isRequired". | ||
* Establece la regla de que los datos deben estar presentes y no ser nulos o indefinidos. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isRequired(): this; | ||
/** | ||
* Método para habilitar la validación "isBoolean". | ||
* Establece la regla de que los datos deben ser de tipo booleano. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isBoolean(): this; | ||
isNumber(): this; | ||
/** | ||
* Método para habilitar la validación "isString". | ||
* Establece la regla de que los datos deben ser de tipo cadena (string). | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isString(): this; | ||
/** | ||
* Método para habilitar la validación "isDate". | ||
* Establece la regla de que los datos deben ser de tipo Date (fecha). | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isDate(): this; | ||
/** | ||
* Método para habilitar la validación "isObject". | ||
* Establece la regla de que los datos deben ser de tipo objeto. | ||
* @param obj - Objeto con las reglas de validación para cada propiedad del objeto. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isObject(obj: { | ||
[id: string]: FenextjsValidatorClass; | ||
}): this; | ||
/** | ||
* Método para habilitar la validación "isArray". | ||
* Establece la regla de que los datos deben ser un array. | ||
* @param item - Instancia de FenextjsValidatorClass que define las reglas de validación para cada elemento del array. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isArray(item: FenextjsValidatorClass): this; | ||
/** | ||
* Método para habilitar la validación "isMin". | ||
* Establece la regla de que los datos deben ser mayores que un valor específico. | ||
* @param min - Valor mínimo que los datos deben superar. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isMin(min: number | Date): this; | ||
/** | ||
* 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. | ||
* @param min - Valor mínimo que los datos deben superar o igualar. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isMinOrEqual(min: number | Date): this; | ||
/** | ||
* Método para habilitar la validación "isMax". | ||
* Establece la regla de que los datos deben ser menores que un valor específico. | ||
* @param max - Valor máximo que los datos deben ser menores que él. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isMax(max: number | Date): this; | ||
/** | ||
* 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. | ||
* @param max - Valor máximo que los datos deben ser menores o igual que él. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isMaxOrEqual(max: number | Date): this; | ||
/** | ||
* Método para validar los datos proporcionados según las reglas establecidas. | ||
* Ejecuta todas las reglas de validación habilitadas previamente para los datos. | ||
* @param d - Datos que se deben validar. | ||
* @returns True si los datos cumplen con todas las reglas de validación; de lo contrario, devuelve el error que indica la regla de validación que falló. | ||
*/ | ||
onValidate(d: T): unknown; | ||
} | ||
/** | ||
* Función para crear una instancia de la clase FenextjsValidatorClass y obtener un validador. | ||
* @returns Una nueva instancia de la clase FenextjsValidatorClass que se utilizará para definir reglas de validación y validar datos. | ||
*/ | ||
export declare const FenextjsValidator: () => FenextjsValidatorClass<any>; |
230
cjs/index.js
@@ -5,21 +5,51 @@ "use strict"; | ||
const fenextjs_error_1 = require("fenextjs-error"); | ||
/** | ||
* Clase que proporciona validación de datos en TypeScript/JavaScript. | ||
* @template T - Tipo de los datos a validar. | ||
*/ | ||
class FenextjsValidatorClass { | ||
/** Propiedad privada que almacena los datos a validar. */ | ||
#data; | ||
// Propiedades privadas para definir diferentes reglas de validación. | ||
// Cada propiedad es un tipo de validación específico. | ||
/** Bandera que indica si se debe aplicar la validación "isEqual". */ | ||
#equal = false; | ||
/** Valor con el que se compararán los datos en la validación "isEqual". */ | ||
#equalValue = undefined; | ||
/** Bandera que indica si se debe aplicar la validación "isRequired". */ | ||
#required = false; | ||
/** Bandera que indica si los datos deben ser un booleano en la validación "isBoolean". */ | ||
#boolean = false; | ||
/** Bandera que indica si los datos deben ser un número en la validación "isNumber". */ | ||
#number = false; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isString". */ | ||
#string = false; | ||
/** Bandera que indica si los datos deben ser una fecha en la validación "isDate". */ | ||
#date = false; | ||
/** Bandera que indica si los datos deben ser un objeto en la validación "isObject". */ | ||
#object = false; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isObject". */ | ||
#objectValue = undefined; | ||
/** Bandera que indica si los datos deben ser un array en la validación "isArray". */ | ||
#array = false; | ||
/** Valor que contiene las reglas de validación para cada elemento del array en la validación "isArray". */ | ||
#arrayValue = undefined; | ||
/** Bandera que indica si los datos deben ser mayor que un valor específico en la validación "isMin". */ | ||
#min = false; | ||
/** Bandera que indica si los datos deben ser mayor o igual que un valor específico en la validación "isMinOrEqual". */ | ||
#minOrEqual = false; | ||
/** Valor con el que se compararán los datos en las validaciones "isMin" y "isMinOrEqual". */ | ||
#minValue = undefined; | ||
/** Bandera que indica si los datos deben ser menor que un valor específico en la validación "isMax". */ | ||
#max = false; | ||
/** Bandera que indica si los datos deben ser menor o igual que un valor específico en la validación "isMaxOrEqual". */ | ||
#maxOrEqual = false; | ||
/** Valor con el que se compararán los datos en las validaciones "isMax" y "isMaxOrEqual". */ | ||
#maxValue = undefined; | ||
/** | ||
* Método para definir la validación "isEqual". | ||
* Establece la regla de que los datos deben ser iguales al valor especificado. | ||
* @param d - Valor a comparar con los datos. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isEqual(d) { | ||
@@ -30,6 +60,16 @@ this.#equal = true; | ||
} | ||
/** | ||
* Método privado que valida la regla "isEqual". | ||
* Verifica si los datos son iguales al valor especificado en la regla de validación "isEqual". | ||
* @throws {ErrorInputInvalid} Si los datos no son iguales al valor especificado. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
* @private | ||
*/ | ||
#onEqual() { | ||
// Si la validación "isEqual" no está habilitada, no se hace nada. | ||
if (!this.#equal) { | ||
return; | ||
} | ||
// Compara el valor almacenado en #equalValue con los datos a validar (#data). | ||
// Si no son iguales, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#equalValue !== this.#data) { | ||
@@ -40,2 +80,7 @@ throw new fenextjs_error_1.ErrorInputInvalid(); | ||
} | ||
/** | ||
* Método para habilitar la validación "isRequired". | ||
* Establece la regla de que los datos deben estar presentes y no ser nulos o indefinidos. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isRequired() { | ||
@@ -45,6 +90,15 @@ this.#required = true; | ||
} | ||
/** | ||
* Método privado que valida la regla "isRequired". | ||
* Verifica si los datos cumplen con la regla de ser requeridos (estar presentes y no ser nulos o indefinidos). | ||
* @throws {ErrorInputRequired} Si los datos son nulos, indefinidos o una cadena vacía. | ||
* @private | ||
*/ | ||
#onRequered() { | ||
// Si la validación "isRequired" no está habilitada, no se hace nada. | ||
if (!this.#required) { | ||
return; | ||
} | ||
// Comprueba si los datos son nulos, indefinidos o una cadena vacía. | ||
// Si se cumple alguna de estas condiciones, lanza un ErrorInputRequired para indicar que la validación falló. | ||
if (this.#data === null || | ||
@@ -56,2 +110,7 @@ this.#data == undefined || | ||
} | ||
/** | ||
* Método para habilitar la validación "isBoolean". | ||
* Establece la regla de que los datos deben ser de tipo booleano. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isBoolean() { | ||
@@ -61,10 +120,23 @@ this.#boolean = true; | ||
} | ||
/** | ||
* Método privado que valida la regla "isBoolean". | ||
* Verifica si los datos cumplen con la regla de ser de tipo booleano. | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo booleano. | ||
* @private | ||
*/ | ||
#onBoolean() { | ||
// Si la validación "isBoolean" no está habilitada, no se hace nada. | ||
if (!this.#boolean) { | ||
return; | ||
} | ||
if (typeof this.#data != "boolean") { | ||
// Comprueba si los datos no son de tipo booleano. | ||
// Si no son de tipo booleano, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (typeof this.#data !== "boolean") { | ||
throw new fenextjs_error_1.ErrorInputInvalid(); | ||
} | ||
} | ||
} /** | ||
* Método para habilitar la validación "isNumber". | ||
* Establece la regla de que los datos deben ser de tipo número. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isNumber() { | ||
@@ -74,10 +146,24 @@ this.#number = true; | ||
} | ||
/** | ||
* Método privado que valida la regla "isNumber". | ||
* Verifica si los datos cumplen con la regla de ser de tipo número. | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo número. | ||
* @private | ||
*/ | ||
#onNumber() { | ||
// Si la validación "isNumber" no está habilitada, no se hace nada. | ||
if (!this.#number) { | ||
return; | ||
} | ||
if (typeof this.#data != "number") { | ||
// Comprueba si los datos no son de tipo número. | ||
// Si no son de tipo número, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (typeof this.#data !== "number") { | ||
throw new fenextjs_error_1.ErrorInputInvalid(); | ||
} | ||
} | ||
/** | ||
* Método para habilitar la validación "isString". | ||
* Establece la regla de que los datos deben ser de tipo cadena (string). | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isString() { | ||
@@ -87,10 +173,24 @@ this.#string = true; | ||
} | ||
/** | ||
* Método privado que valida la regla "isString". | ||
* Verifica si los datos cumplen con la regla de ser de tipo cadena (string). | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo cadena (string). | ||
* @private | ||
*/ | ||
#onString() { | ||
// Si la validación "isString" no está habilitada, no se hace nada. | ||
if (!this.#string) { | ||
return; | ||
} | ||
if (typeof this.#data != "string") { | ||
// Comprueba si los datos no son de tipo cadena (string). | ||
// Si no son de tipo cadena (string), lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (typeof this.#data !== "string") { | ||
throw new fenextjs_error_1.ErrorInputInvalid(); | ||
} | ||
} | ||
/** | ||
* Método para habilitar la validación "isDate". | ||
* Establece la regla de que los datos deben ser de tipo Date (fecha). | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isDate() { | ||
@@ -100,6 +200,15 @@ this.#date = true; | ||
} | ||
/** | ||
* Método privado que valida la regla "isDate". | ||
* Verifica si los datos cumplen con la regla de ser de tipo Date (fecha). | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo Date (fecha). | ||
* @private | ||
*/ | ||
#onDate() { | ||
// Si la validación "isDate" no está habilitada, no se hace nada. | ||
if (!this.#date) { | ||
return; | ||
} | ||
// Comprueba si los datos no son de tipo Date (fecha). | ||
// Si no son de tipo Date (fecha), lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (!(this.#data instanceof Date)) { | ||
@@ -109,2 +218,8 @@ throw new fenextjs_error_1.ErrorInputInvalid(); | ||
} | ||
/** | ||
* Método para habilitar la validación "isObject". | ||
* Establece la regla de que los datos deben ser de tipo objeto. | ||
* @param obj - Objeto con las reglas de validación para cada propiedad del objeto. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isObject(obj) { | ||
@@ -115,10 +230,21 @@ this.#object = true; | ||
} | ||
/** | ||
* Método privado que valida la regla "isObject". | ||
* Verifica si los datos cumplen con la regla de ser de tipo objeto y aplica las reglas de validación para cada propiedad del objeto. | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo objeto o alguna propiedad no cumple con las reglas de validación. | ||
* @private | ||
*/ | ||
#onObject() { | ||
// Si la validación "isObject" no está habilitada o no se proporcionaron reglas de validación (#objectValue), no se hace nada. | ||
if (!this.#object || !this.#objectValue) { | ||
return; | ||
} | ||
if (typeof this.#data != "object") { | ||
// Comprueba si los datos no son de tipo objeto. | ||
// Si no son de tipo objeto, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (typeof this.#data !== "object") { | ||
throw new fenextjs_error_1.ErrorInputInvalid(); | ||
} | ||
// Obtiene las claves (propiedades) del objeto con las reglas de validación (#objectValue). | ||
const keys = Object.keys(this.#objectValue); | ||
// Itera sobre cada propiedad del objeto y aplica las reglas de validación correspondientes. | ||
for (let i = 0; i < keys.length; i++) { | ||
@@ -128,2 +254,3 @@ const key = keys[i]; | ||
const r = validator.onValidate(this.#data?.[key]); | ||
// Si alguna propiedad no cumple con las reglas de validación, se lanza el error devuelto por la validación. | ||
if (r !== true) { | ||
@@ -134,2 +261,8 @@ throw r; | ||
} | ||
/** | ||
* Método para habilitar la validación "isArray". | ||
* Establece la regla de que los datos deben ser un array. | ||
* @param item - Instancia de FenextjsValidatorClass que define las reglas de validación para cada elemento del array. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isArray(item) { | ||
@@ -140,9 +273,19 @@ this.#array = true; | ||
} | ||
/** | ||
* Método privado que valida la regla "isArray". | ||
* Verifica si los datos cumplen con la regla de ser un array y aplica las reglas de validación para cada elemento del array. | ||
* @throws {ErrorInputInvalid} Si los datos no son un array o alguno de los elementos no cumple con las reglas de validación. | ||
* @private | ||
*/ | ||
#onArray() { | ||
// Si la validación "isArray" no está habilitada o no se proporcionó una regla de validación para los elementos del array (#arrayValue), no se hace nada. | ||
if (!this.#array || !this.#arrayValue) { | ||
return; | ||
} | ||
// Comprueba si los datos no son un array. | ||
// Si no son un array, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (!Array.isArray(this.#data)) { | ||
throw new fenextjs_error_1.ErrorInputInvalid(); | ||
} | ||
// Itera sobre cada elemento del array y aplica las reglas de validación definidas en #arrayValue. | ||
for (let i = 0; i < this.#data.length; i++) { | ||
@@ -152,2 +295,3 @@ const item = this.#data[i]; | ||
const r = validator.onValidate(item); | ||
// Si algún elemento no cumple con las reglas de validación, se lanza el error devuelto por la validación. | ||
if (r !== true) { | ||
@@ -158,2 +302,8 @@ throw r; | ||
} | ||
/** | ||
* Método para habilitar la validación "isMin". | ||
* Establece la regla de que los datos deben ser mayores que un valor específico. | ||
* @param min - Valor mínimo que los datos deben superar. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isMin(min) { | ||
@@ -164,2 +314,8 @@ this.#min = true; | ||
} | ||
/** | ||
* 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. | ||
* @param min - Valor mínimo que los datos deben superar o igualar. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isMinOrEqual(min) { | ||
@@ -170,16 +326,25 @@ this.#minOrEqual = true; | ||
} | ||
/** | ||
* Método privado que valida las reglas "isMin" y "isMinOrEqual". | ||
* Verifica si los datos cumplen con las reglas de ser mayores que un valor mínimo o mayores/iguales al valor mínimo. | ||
* @throws {ErrorInputInvalid} Si los datos no cumplen con las reglas de validación. | ||
* @private | ||
*/ | ||
#onMin() { | ||
// Variable para almacenar el valor numérico o longitud (si el objeto es un array o cadena) de los datos. | ||
let minValidate = undefined; | ||
// Determina el valor numérico o la longitud según el tipo de dato para realizar la comparación con el valor mínimo (#minValue). | ||
if (Array.isArray(this.#data)) { | ||
minValidate = this.#data.length; | ||
} | ||
if (typeof this.#data == "number") { | ||
else if (typeof this.#data === "number") { | ||
minValidate = this.#data; | ||
} | ||
if (typeof this.#data == "string") { | ||
else if (typeof this.#data === "string") { | ||
minValidate = this.#data.length; | ||
} | ||
if (this.#data instanceof Date) { | ||
else if (this.#data instanceof Date) { | ||
minValidate = this.#data.getTime(); | ||
} | ||
// Obtiene el valor mínimo (#minValue) para realizar la comparación. | ||
let nMinValue = this.#minValue; | ||
@@ -189,2 +354,4 @@ if (nMinValue instanceof Date) { | ||
} | ||
// Verifica si se habilitó la regla "isMin" y si los datos no superan el valor mínimo (#minValue). | ||
// Si no se cumple, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#min && | ||
@@ -194,2 +361,4 @@ !(minValidate && nMinValue && minValidate > nMinValue)) { | ||
} | ||
// Verifica si se habilitó la regla "isMinOrEqual" y si los datos no superan o igualan el valor mínimo (#minValue). | ||
// Si no se cumple, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#minOrEqual && | ||
@@ -200,2 +369,8 @@ !(minValidate && nMinValue && minValidate >= nMinValue)) { | ||
} | ||
/** | ||
* Método para habilitar la validación "isMax". | ||
* Establece la regla de que los datos deben ser menores que un valor específico. | ||
* @param max - Valor máximo que los datos deben ser menores que él. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isMax(max) { | ||
@@ -206,2 +381,8 @@ this.#max = true; | ||
} | ||
/** | ||
* 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. | ||
* @param max - Valor máximo que los datos deben ser menores o igual que él. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isMaxOrEqual(max) { | ||
@@ -212,16 +393,25 @@ this.#maxOrEqual = true; | ||
} | ||
/** | ||
* Método privado que valida las reglas "isMax" y "isMaxOrEqual". | ||
* Verifica si los datos cumplen con las reglas de ser menores que un valor máximo o menores/iguales al valor máximo. | ||
* @throws {ErrorInputInvalid} Si los datos no cumplen con las reglas de validación. | ||
* @private | ||
*/ | ||
#onMax() { | ||
// Variable para almacenar el valor numérico o longitud (si el objeto es un array o cadena) de los datos. | ||
let maxValidate = undefined; | ||
// Determina el valor numérico o la longitud según el tipo de dato para realizar la comparación con el valor máximo (#maxValue). | ||
if (Array.isArray(this.#data)) { | ||
maxValidate = this.#data.length; | ||
} | ||
if (typeof this.#data == "number") { | ||
else if (typeof this.#data === "number") { | ||
maxValidate = this.#data; | ||
} | ||
if (typeof this.#data == "string") { | ||
else if (typeof this.#data === "string") { | ||
maxValidate = this.#data.length; | ||
} | ||
if (this.#data instanceof Date) { | ||
else if (this.#data instanceof Date) { | ||
maxValidate = this.#data.getTime(); | ||
} | ||
// Obtiene el valor máximo (#maxValue) para realizar la comparación. | ||
let nMaxValue = this.#maxValue; | ||
@@ -231,2 +421,4 @@ if (nMaxValue instanceof Date) { | ||
} | ||
// Verifica si se habilitó la regla "isMax" y si los datos no son menores que el valor máximo (#maxValue). | ||
// Si no se cumple, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#max && | ||
@@ -236,2 +428,4 @@ !(maxValidate && nMaxValue && maxValidate < nMaxValue)) { | ||
} | ||
// Verifica si se habilitó la regla "isMaxOrEqual" y si los datos no son menores o iguales al valor máximo (#maxValue). | ||
// Si no se cumple, lanza un ErrorInputInvalid para indicar que la validación falló. | ||
if (this.#maxOrEqual && | ||
@@ -242,5 +436,13 @@ !(maxValidate && nMaxValue && maxValidate <= nMaxValue)) { | ||
} | ||
/** | ||
* Método para validar los datos proporcionados según las reglas establecidas. | ||
* Ejecuta todas las reglas de validación habilitadas previamente para los datos. | ||
* @param d - Datos que se deben validar. | ||
* @returns True si los datos cumplen con todas las reglas de validación; de lo contrario, devuelve el error que indica la regla de validación que falló. | ||
*/ | ||
onValidate(d) { | ||
try { | ||
// Asigna los datos proporcionados para su validación. | ||
this.#data = d; | ||
// Ejecuta todas las reglas de validación habilitadas para los datos. | ||
this.#onEqual(); | ||
@@ -256,5 +458,7 @@ this.#onRequered(); | ||
this.#onMax(); | ||
// Si todas las reglas de validación se cumplen, retorna true para indicar que los datos son válidos. | ||
return true; | ||
} | ||
catch (error) { | ||
// Si alguna regla de validación falla, captura el error y lo devuelve para indicar qué regla falló. | ||
return error; | ||
@@ -265,4 +469,8 @@ } | ||
exports.FenextjsValidatorClass = FenextjsValidatorClass; | ||
/** | ||
* Función para crear una instancia de la clase FenextjsValidatorClass y obtener un validador. | ||
* @returns Una nueva instancia de la clase FenextjsValidatorClass que se utilizará para definir reglas de validación y validar datos. | ||
*/ | ||
const FenextjsValidator = () => new FenextjsValidatorClass(); | ||
exports.FenextjsValidator = FenextjsValidator; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "fenextjs-validator", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"description": "", | ||
@@ -9,2 +9,3 @@ "main": "./cjs/index.js", | ||
"scripts": { | ||
"md":"npm run build:cjs && npx jsdoc2md ./cjs/index.js > r.md", | ||
"test": "npm run build:cjs && node ./cjs/test.js", | ||
@@ -26,3 +27,3 @@ "build": "npm run build:esm && npm run build:cjs", | ||
"type": "git", | ||
"url": "git+https://gitlab.com/franciscoblancojn/fenextjs-hook.git" | ||
"url": "git+https://gitlab.com/franciscoblancojn/fenextjs-validator.git" | ||
}, | ||
@@ -37,5 +38,5 @@ "keywords": [ | ||
"bugs": { | ||
"url": "https://gitlab.com/franciscoblancojn/fenextjs-hook/issues" | ||
"url": "https://gitlab.com/franciscoblancojn/fenextjs-validator/issues" | ||
}, | ||
"homepage": "https://gitlab.com/franciscoblancojn/fenextjs-hook#readme", | ||
"homepage": "https://gitlab.com/franciscoblancojn/fenextjs-validator#readme", | ||
"dependencies": { | ||
@@ -56,2 +57,3 @@ "fenextjs-error": "^1.0.3", | ||
"eslint": "8.45.0", | ||
"jsdoc-to-markdown": "^8.0.0", | ||
"prettier": "^3.0.0", | ||
@@ -58,0 +60,0 @@ "ts-loader": "^9.4.4", |
272
README.md
# fenextjs-error | ||
## Classes | ||
<dl> | ||
<dt><a href="#FenextjsValidatorClass">FenextjsValidatorClass</a></dt> | ||
<dd><p>Clase que proporciona validación de datos en TypeScript/JavaScript.</p> | ||
</dd> | ||
</dl> | ||
## Functions | ||
<dl> | ||
<dt><a href="#FenextjsValidator">FenextjsValidator()</a> ⇒</dt> | ||
<dd><p>Función para crear una instancia de la clase FenextjsValidatorClass y obtener un validador.</p> | ||
</dd> | ||
</dl> | ||
<a name="FenextjsValidatorClass"></a> | ||
## FenextjsValidatorClass | ||
Clase que proporciona validación de datos en TypeScript/JavaScript. | ||
**Kind**: global class | ||
- [FenextjsValidatorClass](#FenextjsValidatorClass) | ||
- [.isEqual(d)](#FenextjsValidatorClass+isEqual) ⇒ | ||
- [.isRequired()](#FenextjsValidatorClass+isRequired) ⇒ | ||
- [.isBoolean()](#FenextjsValidatorClass+isBoolean) ⇒ | ||
- [.isNumber()](#FenextjsValidatorClass+isNumber) ⇒ | ||
- [.isString()](#FenextjsValidatorClass+isString) ⇒ | ||
- [.isDate()](#FenextjsValidatorClass+isDate) ⇒ | ||
- [.isObject(obj)](#FenextjsValidatorClass+isObject) ⇒ | ||
- [.isArray(item)](#FenextjsValidatorClass+isArray) ⇒ | ||
- [.isMin(min)](#FenextjsValidatorClass+isMin) ⇒ | ||
- [.isMinOrEqual(min)](#FenextjsValidatorClass+isMinOrEqual) ⇒ | ||
- [.isMax(max)](#FenextjsValidatorClass+isMax) ⇒ | ||
- [.isMaxOrEqual(max)](#FenextjsValidatorClass+isMaxOrEqual) ⇒ | ||
- [.onValidate(d)](#FenextjsValidatorClass+onValidate) ⇒ | ||
<a name="FenextjsValidatorClass+isEqual"></a> | ||
### fenextjsValidatorClass.isEqual(d) ⇒ | ||
Método para definir la validación "isEqual". | ||
Establece la regla de que los datos deben ser iguales al valor especificado. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
| Param | Description | | ||
| ----- | ------------------------------- | | ||
| d | Valor a comparar con los datos. | | ||
<a name="FenextjsValidatorClass+isRequired"></a> | ||
### fenextjsValidatorClass.isRequired() ⇒ | ||
Método para habilitar la validación "isRequired". | ||
Establece la regla de que los datos deben estar presentes y no ser nulos o indefinidos. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
<a name="FenextjsValidatorClass+isBoolean"></a> | ||
### fenextjsValidatorClass.isBoolean() ⇒ | ||
Método para habilitar la validación "isBoolean". | ||
Establece la regla de que los datos deben ser de tipo booleano. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
<a name="FenextjsValidatorClass+isNumber"></a> | ||
### fenextjsValidatorClass.isNumber() ⇒ | ||
Método para habilitar la validación "isNumber". | ||
Establece la regla de que los datos deben ser de tipo número. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
<a name="FenextjsValidatorClass+isString"></a> | ||
### fenextjsValidatorClass.isString() ⇒ | ||
Método para habilitar la validación "isString". | ||
Establece la regla de que los datos deben ser de tipo cadena (string). | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
<a name="FenextjsValidatorClass+isDate"></a> | ||
### fenextjsValidatorClass.isDate() ⇒ | ||
Método para habilitar la validación "isDate". | ||
Establece la regla de que los datos deben ser de tipo Date (fecha). | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
<a name="FenextjsValidatorClass+isObject"></a> | ||
### fenextjsValidatorClass.isObject(obj) ⇒ | ||
Método para habilitar la validación "isObject". | ||
Establece la regla de que los datos deben ser de tipo objeto. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
| Param | Description | | ||
| ----- | ------------------------------------------------------------------- | | ||
| obj | Objeto con las reglas de validación para cada propiedad del objeto. | | ||
<a name="FenextjsValidatorClass+isArray"></a> | ||
### fenextjsValidatorClass.isArray(item) ⇒ | ||
Método para habilitar la validación "isArray". | ||
Establece la regla de que los datos deben ser un array. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
| Param | Description | | ||
| ----- | ----------------------------------------------------------------------------------------------------- | | ||
| item | Instancia de FenextjsValidatorClass que define las reglas de validación para cada elemento del array. | | ||
<a name="FenextjsValidatorClass+isMin"></a> | ||
### fenextjsValidatorClass.isMin(min) ⇒ | ||
Método para habilitar la validación "isMin". | ||
Establece la regla de que los datos deben ser mayores que un valor específico. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
| Param | Description | | ||
| ----- | ----------------------------------------- | | ||
| min | Valor mínimo que los datos deben superar. | | ||
<a name="FenextjsValidatorClass+isMinOrEqual"></a> | ||
### fenextjsValidatorClass.isMinOrEqual(min) ⇒ | ||
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. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
| Param | Description | | ||
| ----- | --------------------------------------------------- | | ||
| min | Valor mínimo que los datos deben superar o igualar. | | ||
<a name="FenextjsValidatorClass+isMax"></a> | ||
### fenextjsValidatorClass.isMax(max) ⇒ | ||
Método para habilitar la validación "isMax". | ||
Establece la regla de que los datos deben ser menores que un valor específico. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
| Param | Description | | ||
| ----- | ---------------------------------------------------- | | ||
| max | Valor máximo que los datos deben ser menores que él. | | ||
<a name="FenextjsValidatorClass+isMaxOrEqual"></a> | ||
### fenextjsValidatorClass.isMaxOrEqual(max) ⇒ | ||
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. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: Instancia de FenextjsValidatorClass. | ||
| Param | Description | | ||
| ----- | ------------------------------------------------------------ | | ||
| max | Valor máximo que los datos deben ser menores o igual que él. | | ||
<a name="FenextjsValidatorClass+onValidate"></a> | ||
### fenextjsValidatorClass.onValidate(d) ⇒ | ||
Método para validar los datos proporcionados según las reglas establecidas. | ||
Ejecuta todas las reglas de validación habilitadas previamente para los datos. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: True si los datos cumplen con todas las reglas de validación; de lo contrario, devuelve el error que indica la regla de validación que falló. | ||
| Param | Description | | ||
| ----- | --------------------------- | | ||
| d | Datos que se deben validar. | | ||
<a name="FenextjsValidator"></a> | ||
## FenextjsValidator() ⇒ | ||
Función para crear una instancia de la clase FenextjsValidatorClass y obtener un validador. | ||
**Kind**: global function | ||
**Returns**: Una nueva instancia de la clase FenextjsValidatorClass que se utilizará para definir reglas de validación y validar datos. | ||
## Example | ||
```ts | ||
// Importar la función FenextjsValidator | ||
import { FenextjsValidator } from "fenextjs-validator"; | ||
// Crear un validador y establecer la regla "isRequired" | ||
const r = FenextjsValidator().isRequired().onValidate("a"); | ||
console.log(r); // Imprimir el resultado de la validación (true si es válido, ErrorInputRequired si no lo es) | ||
// Crear otro validador y establecer la regla "isBoolean" | ||
const r2 = FenextjsValidator().isBoolean().onValidate(false); | ||
console.log(r2); | ||
// Crear otro validador y establecer la regla "isEqual" con el valor "aaaa" | ||
const r3 = FenextjsValidator().isEqual("aaaa").onValidate("aaaa"); | ||
console.log(r3); | ||
// Crear otro validador y establecer la regla "isNumber" | ||
const r4 = FenextjsValidator().isNumber().onValidate(2); | ||
console.log(r4); | ||
// Crear otro validador y establecer la regla "isString" | ||
const r5 = FenextjsValidator().isString().onValidate(""); | ||
console.log(r5); | ||
// Crear otro validador y establecer la regla "isObject" con una regla de validación para la propiedad "a" | ||
const r6 = FenextjsValidator() | ||
.isObject({ | ||
a: FenextjsValidator().isString().isEqual("aa"), | ||
}) | ||
.onValidate({ | ||
a: "aa", | ||
}); | ||
console.log(r6); | ||
// Crear otro validador y establecer la regla "isArray" con una regla de validación para los elementos del array | ||
const r7 = FenextjsValidator() | ||
.isArray(FenextjsValidator().isString().isEqual("aa")) | ||
.onValidate(["aa", "aa"]); | ||
console.log(r7); | ||
// Crear otro validador y establecer la regla "isString" y "isMin" (longitud mínima 3 caracteres) | ||
const r8 = FenextjsValidator().isString().isMin(3).onValidate("aaaaa"); | ||
console.log(r8); | ||
// Crear otro validador y establecer la regla "isString" y "isMinOrEqual" (longitud mínima 3 caracteres o igual) | ||
const r9 = FenextjsValidator().isString().isMinOrEqual(3).onValidate("aaa"); | ||
console.log(r9); | ||
// Crear otro validador y establecer la regla "isNumber" y "isMax" (valor máximo 3) | ||
const r10 = FenextjsValidator().isNumber().isMax(3).onValidate(2); | ||
console.log(r10); | ||
// Crear otro validador y establecer la regla "isString" y "isMaxOrEqual" (longitud máxima 3 caracteres o igual) | ||
const r11 = FenextjsValidator().isString().isMaxOrEqual(3).onValidate("aaa"); | ||
console.log(r11); | ||
// Crear otro validador y establecer la regla "isDate" y "isMax" (fecha máxima: 100) | ||
const r12 = FenextjsValidator() | ||
.isDate() | ||
.isMax(new Date(100)) | ||
.onValidate(new Date(99)); | ||
console.log(r12); | ||
``` | ||
## Developer | ||
@@ -14,2 +284,2 @@ | ||
- [Gitlab](https://gitlab.com/franciscoblancojn/fenextjs-hook) | ||
- [Gitlab](https://gitlab.com/franciscoblancojn/fenextjs-validator) |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
47799
581
285
0
12