fenextjs-validator
Advanced tools
Comparing version 1.0.8 to 1.0.9
@@ -125,2 +125,12 @@ import { ErrorFenextjs } from "fenextjs-error/cjs/Fenextjs"; | ||
/** | ||
* Método para habilitar la validación "isWhen". | ||
* Establece la regla de que los comparacion cuando sea correcto la validacion. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isWhen(data: { | ||
key: string; | ||
is: FenextjsValidatorClass; | ||
then: FenextjsValidatorClass; | ||
}): this; | ||
/** | ||
* Método para validar los datos proporcionados según las reglas establecidas. | ||
@@ -127,0 +137,0 @@ * Ejecuta todas las reglas de validación habilitadas previamente para los datos. |
@@ -48,2 +48,10 @@ "use strict"; | ||
#objectValue = undefined; | ||
/** Bandera que indica si los datos deben ser una cadena en la validación "isWhen". */ | ||
#when = false; | ||
/** Key que contiene la clave para validacion de "isWhen" */ | ||
#whenKey = undefined; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isWhen" en key. */ | ||
#whenIs = undefined; | ||
/** Valor que contiene las reglas de validación para cada propiedad del objeto en la validación "isWhen" en key. */ | ||
#whenThen = undefined; | ||
/** Bandera que indica si los datos deben ser un array en la validación "isArray". */ | ||
@@ -356,2 +364,6 @@ #array = false; | ||
validator.#setParent(this); | ||
} | ||
for (let i = 0; i < keys.length; i++) { | ||
const key = keys[i]; | ||
const validator = this.#objectValue[key]; | ||
const r = validator.onValidate(this.#data?.[key]); | ||
@@ -595,2 +607,41 @@ // Si alguna propiedad no cumple con las reglas de validación, se lanza el error devuelto por la validación. | ||
/** | ||
* Método para habilitar la validación "isWhen". | ||
* Establece la regla de que los comparacion cuando sea correcto la validacion. | ||
* @returns Instancia de FenextjsValidatorClass. | ||
*/ | ||
isWhen(data) { | ||
this.#when = true; | ||
this.#whenKey = data.key; | ||
this.#whenIs = data.is; | ||
this.#whenThen = data.then; | ||
return this; | ||
} | ||
/** | ||
* Método privado que valida la regla "onWhen". | ||
* Verifica si los datos cumplen con whenIs y when Key para adicionar la la validacion whenThen. | ||
* @throws {ErrorInputInvalid} Si los datos no son de tipo Date (fecha). | ||
* @private | ||
*/ | ||
#onWhen() { | ||
// Si la validación "isWhen" no está habilitada, no se hace nada. | ||
if (!this.#when) { | ||
return; | ||
} | ||
// Si la validación "parent" no existe, no se hace nada. | ||
if (!this.#parent) { | ||
return; | ||
} | ||
// Si la validación de datos necesarios no existen, no se hace nada. | ||
if (!this.#whenIs || !this.#whenKey || !this.#whenThen) { | ||
return; | ||
} | ||
// Si whenIs es corrento ejecuta la validacion | ||
if (this.#whenIs.onValidate(this.#parent.#data[this.#whenKey]) === true) { | ||
const result = this.#whenThen.onValidate(this.#data); | ||
if (result !== true) { | ||
throw result; | ||
} | ||
} | ||
} | ||
/** | ||
* Método para validar los datos proporcionados según las reglas establecidas. | ||
@@ -606,2 +657,3 @@ * Ejecuta todas las reglas de validación habilitadas previamente para los datos. | ||
// Ejecuta todas las reglas de validación habilitadas para los datos. | ||
this.#onWhen(); | ||
this.#onEqual(); | ||
@@ -608,0 +660,0 @@ this.#onRequered(); |
@@ -169,7 +169,25 @@ "use strict"; | ||
console.log(ValidateIsCompareRef); | ||
// Ejemplo: Crear un validador usando when | ||
const ValidateWhen = (0, _1.FenextjsValidator)() | ||
.setName("ValidateWhen") | ||
.isObject({ | ||
a: (0, _1.FenextjsValidator)() | ||
.setName("ValidateWhen.a") | ||
.isWhen({ | ||
key: "b", | ||
is: (0, _1.FenextjsValidator)().isEqual("bbb"), | ||
then: (0, _1.FenextjsValidator)().setName("ValidateWhen.a").isMin(201), | ||
}), | ||
b: (0, _1.FenextjsValidator)().setName("ValidateWhen.b"), | ||
}) | ||
.onValidate({ | ||
a: 200, | ||
b: "bbb", | ||
}); | ||
console.log(ValidateWhen); | ||
// En este caso, el resultado de la validación será un objeto de tipo ErrorInputInvalid. | ||
// Esto indica que el objeto proporcionado para la validación no cumple con todas las reglas definidas en la estructura de datos ValidateIsCompareRefInteface. | ||
// Nota: Si el valor proporcionado en "onValidate()" hubiera sido un objeto con valores "keyA" == "keyB", | ||
// Esto indica que el objeto proporcionado para la validación no cumple con todas las reglas definidas en la estructura de datos ValidateWhen. | ||
// Nota: Si el valor proporcionado en "onValidate()" hubiera sido un objeto con a > 201 y b !="bbb", | ||
// la validación no habría sido fallida, y el resultado habría sido "true" | ||
// que indica que los valores de "keyA" y "keyB" son iguales. | ||
// que indica que los valores de a se validan xq b = "bbb" y la validacion de a falla | ||
//# sourceMappingURL=test.js.map |
{ | ||
"name": "fenextjs-validator", | ||
"version": "1.0.8", | ||
"version": "1.0.9", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "./cjs/index.js", |
325
README.md
# Fenextjs-validator | ||
## 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(props)</a> ⇒ <code><a href="#FenextjsValidatorClass">FenextjsValidatorClass</a></code></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) | ||
- [new FenextjsValidatorClass(props)](#new_FenextjsValidatorClass_new) | ||
- _instance_ | ||
- [.setName(name)](#FenextjsValidatorClass+setName) ⇒ [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
- [.isEqual(d)](#FenextjsValidatorClass+isEqual) ⇒ | ||
- [.isRequired()](#FenextjsValidatorClass+isRequired) ⇒ | ||
- [.isBoolean()](#FenextjsValidatorClass+isBoolean) ⇒ | ||
- [.isNumber()](#FenextjsValidatorClass+isNumber) ⇒ | ||
- [.isString()](#FenextjsValidatorClass+isString) ⇒ | ||
- [.isLength(length)](#FenextjsValidatorClass+isLength) ⇒ [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
- [.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) ⇒ | ||
- [.isCompareRef(refKey)](#FenextjsValidatorClass+isCompareRef) ⇒ [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
- [.onValidate(d)](#FenextjsValidatorClass+onValidate) ⇒ | ||
- _static_ | ||
- [.FenextjsValidatorClass](#FenextjsValidatorClass.FenextjsValidatorClass) : <code>string</code> \| <code>undefined</code> | ||
- [.FenextjsValidatorClass](#FenextjsValidatorClass.FenextjsValidatorClass) : <code>string</code> | ||
- [.FenextjsValidatorClass](#FenextjsValidatorClass.FenextjsValidatorClass) : [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
<a name="new_FenextjsValidatorClass_new"></a> | ||
### new FenextjsValidatorClass(props) | ||
Constructor de la clase FenextjsValidatorClass. | ||
| Param | Type | Description | | ||
| ----- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | ||
| props | <code>FenextjsValidatorClassConstructorProps</code> | Opcional. Propiedades que se pueden pasar al constructor. Un objeto que contiene las propiedades del constructor. Por ejemplo, puede contener la propiedad "name". | | ||
<a name="FenextjsValidatorClass+setName"></a> | ||
### fenextjsValidatorClass.setName(name) ⇒ [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
Método para establecer el nombre asociado a la instancia de FenextjsValidatorClass. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) - - La instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos. | ||
| Param | Type | Description | | ||
| ----- | ------------------- | -------------------------------------------------------------------------- | | ||
| name | <code>string</code> | El nombre a establecer para la instancia actual de FenextjsValidatorClass. | | ||
<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+isLength"></a> | ||
### fenextjsValidatorClass.isLength(length) ⇒ [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
Método para habilitar la validación de longitud. | ||
Establece la regla de que los datos deben tener una longitud específica. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) - - La instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos. | ||
| Param | Type | Description | | ||
| ------ | ------------------- | ------------------------------------------------------------------------ | | ||
| length | <code>number</code> | La longitud que deben tener los datos para que la validación sea válida. | | ||
<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+isCompareRef"></a> | ||
### fenextjsValidatorClass.isCompareRef(refKey) ⇒ [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
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. | ||
**Kind**: instance method of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
**Returns**: [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) - - La instancia actual de la clase FenextjsValidatorClass, lo que permite el encadenamiento de métodos. | ||
| Param | Type | Description | | ||
| ------ | ------------------- | ---------------------------------------------------------------------------------------------- | | ||
| refKey | <code>string</code> | La clave que identifica el valor de referencia almacenado en la instancia para la comparación. | | ||
<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="FenextjsValidatorClass.FenextjsValidatorClass"></a> | ||
### FenextjsValidatorClass.FenextjsValidatorClass : <code>string</code> \| <code>undefined</code> | ||
Nombre asociado a la instancia de FenextjsValidatorClass. | ||
**Kind**: static property of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
<a name="FenextjsValidatorClass.FenextjsValidatorClass"></a> | ||
### FenextjsValidatorClass.FenextjsValidatorClass : <code>string</code> | ||
Nombre asociado a la instancia de FenextjsValidatorClass. | ||
**Kind**: static property of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
<a name="FenextjsValidatorClass.FenextjsValidatorClass"></a> | ||
### FenextjsValidatorClass.FenextjsValidatorClass : [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
El padre de la instancia actual de FenextjsValidatorClass. | ||
**Kind**: static property of [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
<a name="FenextjsValidator"></a> | ||
## FenextjsValidator(props) ⇒ [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) | ||
Función para crear una instancia de la clase FenextjsValidatorClass y obtener un validador. | ||
**Kind**: global function | ||
**Returns**: [<code>FenextjsValidatorClass</code>](#FenextjsValidatorClass) - - Una nueva instancia de la clase FenextjsValidatorClass que se utilizará para definir reglas de validación y validar datos. | ||
| Param | Type | Description | | ||
| ----- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| props | <code>FenextjsValidatorClassConstructorProps</code> | Opcional. Propiedades que se pueden pasar al constructor de FenextjsValidatorClass. Un objeto que contiene las propiedades del constructor de la clase FenextjsValidatorClass. Por ejemplo, puede contener la propiedad "name". | | ||
## Import | ||
@@ -575,2 +285,37 @@ | ||
#### Ejemplo: Crear un validador usando when | ||
```ts | ||
// Definir la interfaz que describe la estructura de datos para la validación | ||
interface ValidateWhenInterface { | ||
a: number; | ||
b: string; | ||
} | ||
const ValidateWhen = FenextjsValidator<ValidateWhenInterface>() | ||
.setName("ValidateWhen") | ||
.isObject({ | ||
a: FenextjsValidator() | ||
.setName("ValidateWhen.a") | ||
.isWhen({ | ||
key: "b", | ||
is: FenextjsValidator().isEqual("bbb"), | ||
then: FenextjsValidator().setName("ValidateWhen.a").isMin(201), | ||
}), | ||
b: FenextjsValidator().setName("ValidateWhen.b"), | ||
}) | ||
.onValidate({ | ||
a: 200, | ||
b: "bbb", | ||
}); | ||
console.log(ValidateWhen); | ||
// En este caso, el resultado de la validación será un objeto de tipo ErrorInputInvalid. | ||
// Esto indica que el objeto proporcionado para la validación no cumple con todas las reglas definidas en la estructura de datos ValidateWhen. | ||
// Nota: Si el valor proporcionado en "onValidate()" hubiera sido un objeto con a > 201 y b !="bbb", | ||
// la validación no habría sido fallida, y el resultado habría sido "true" | ||
// que indica que los valores de a se validan xq b = "bbb" y la validacion de a falla | ||
``` | ||
## Developer | ||
@@ -577,0 +322,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
1030
89782
331