@local901/validator 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +6 -3
- package/index.js +6 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/types/util/AndValidator.d.ts +13 -0
- package/types/util/AndValidator.js +33 -0
- package/types/util/AndValidator.js.map +1 -0
- package/types/util/OrValidator.d.ts +3 -3
- package/types/util/OrValidator.js.map +1 -1
package/index.d.ts
CHANGED
|
@@ -3,12 +3,13 @@ import { type NumberValidationOptions } from "./types/number/NumberValidator";
|
|
|
3
3
|
import { type FieldValidators, type ObjectValidationOptions } from "./types/object/ObjectValidator";
|
|
4
4
|
import { type StringValidationOptions } from "./types/string/StringValidator";
|
|
5
5
|
import { Validator } from "./Validator";
|
|
6
|
-
import { type
|
|
6
|
+
import { type OrValidatorTypes } from "./types/util/OrValidator";
|
|
7
7
|
import { type ArrayValidatorOptions } from "./types/object/ArrayValidator";
|
|
8
8
|
import { type EnumLike } from "./types/object/EnumValidator";
|
|
9
9
|
import { type TupleValidators, type TupleValidatorTypes } from "./types/object/TupleValidator";
|
|
10
10
|
import { type ConstructorType, type InstanceofValidationOptions } from "./types/util/InstanceofValidator";
|
|
11
11
|
import { type RecordFieldValidator, type RecordKeyValidator } from "./types/object/RecordValidator";
|
|
12
|
+
import { type AndValidatorTypes } from "./types/util/AndValidator.js";
|
|
12
13
|
export { Validator } from "./Validator";
|
|
13
14
|
export { ErrorType, type ErrorValue } from "./errors/ErrorType";
|
|
14
15
|
export { ValidationError, type ErrorFields } from "./errors/ValidationError";
|
|
@@ -19,7 +20,7 @@ export declare class v {
|
|
|
19
20
|
static array<T>(item: Validator<T>, options?: ArrayValidatorOptions): Validator<T[]>;
|
|
20
21
|
static enum<T extends EnumLike>(enumInstance: T): Validator<T[keyof T]>;
|
|
21
22
|
static object<T extends object>(fields: FieldValidators<T>, options?: ObjectValidationOptions): Validator<T>;
|
|
22
|
-
static record<T extends unknown, K = string | number | symbol>(field: Validator<T>, key?: Validator<K>): Validator<T
|
|
23
|
+
static record<T extends unknown, K extends string | number | symbol = string | number | symbol>(field: Validator<T>, key?: Validator<K>): Validator<Record<K, T>>;
|
|
23
24
|
static record<T extends Record<string | number | symbol, unknown>>(field: RecordFieldValidator<T>, key?: RecordKeyValidator<T>): Validator<T>;
|
|
24
25
|
static tuple<T extends ReadonlyArray<Validator>>(...validators: T): Validator<TupleValidatorTypes<T>>;
|
|
25
26
|
static tuple<T extends ReadonlyArray<unknown>>(...validators: TupleValidators<T>): Validator<T>;
|
|
@@ -29,6 +30,8 @@ export declare class v {
|
|
|
29
30
|
static optional<T>(val: Validator<Exclude<T, undefined | null>>, type?: undefined): Validator<T | undefined | null>;
|
|
30
31
|
static optional<T>(val: Validator<Exclude<T, undefined | null>>, type: "undefined"): Validator<T | undefined>;
|
|
31
32
|
static optional<T>(val: Validator<Exclude<T, undefined | null>>, type: "null"): Validator<T | null>;
|
|
32
|
-
static or<T
|
|
33
|
+
static or<T extends ReadonlyArray<Validator>>(...validators: T): Validator<OrValidatorTypes<T>>;
|
|
34
|
+
static and<T extends ReadonlyArray<Validator>>(...validators: T): Validator<AndValidatorTypes<T>>;
|
|
35
|
+
static and<T extends unknown>(...validators: readonly Validator<Partial<T>>[]): Validator<T>;
|
|
33
36
|
static validateOrThrow<T>(validator: Validator<T>, input: unknown): asserts input is T;
|
|
34
37
|
}
|
package/index.js
CHANGED
|
@@ -14,6 +14,7 @@ const EnumValidator_1 = require("./types/object/EnumValidator");
|
|
|
14
14
|
const TupleValidator_1 = require("./types/object/TupleValidator");
|
|
15
15
|
const InstanceofValidator_1 = require("./types/util/InstanceofValidator");
|
|
16
16
|
const RecordValidator_1 = require("./types/object/RecordValidator");
|
|
17
|
+
const AndValidator_js_1 = require("./types/util/AndValidator.js");
|
|
17
18
|
var Validator_1 = require("./Validator");
|
|
18
19
|
Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return Validator_1.Validator; } });
|
|
19
20
|
var ErrorType_1 = require("./errors/ErrorType");
|
|
@@ -62,9 +63,13 @@ class v {
|
|
|
62
63
|
static optional(val, type) {
|
|
63
64
|
return new OptionalValidator_1.OptionalValidator(val, { only: type });
|
|
64
65
|
}
|
|
65
|
-
static or(validators)
|
|
66
|
+
// public static or<T extends unknown>(...validators: readonly Validator<T>[]): Validator<T>;
|
|
67
|
+
static or(...validators) {
|
|
66
68
|
return new OrValidator_1.OrValidator(validators);
|
|
67
69
|
}
|
|
70
|
+
static and(...validators) {
|
|
71
|
+
return new AndValidator_js_1.AndValidator(validators);
|
|
72
|
+
}
|
|
68
73
|
static validateOrThrow(validator, input) {
|
|
69
74
|
const validationResult = validator.validateReturn(input);
|
|
70
75
|
if (!validator.validateResult(input, validationResult)) {
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oEAAiE;AACjE,8DAAsF;AACtF,oEAA+F;AAC/F,oEAAqH;AACrH,sEAAmE;AACnE,oEAA+F;AAE/F,4DAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,oEAAiE;AACjE,8DAAsF;AACtF,oEAA+F;AAC/F,oEAAqH;AACrH,sEAAmE;AACnE,oEAA+F;AAE/F,4DAAyD;AACzD,0DAA8E;AAC9E,kEAA2F;AAC3F,gEAA4E;AAC5E,kEAA+G;AAC/G,0EAA+H;AAC/H,oEAAqH;AACrH,kEAAoF;AAEpF,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,gDAAgE;AAAvD,sGAAA,SAAS,OAAA;AAClB,4DAA6E;AAApE,kHAAA,eAAe,OAAA;AAExB,MAAa,CAAC;IACV,UAAU;IACH,MAAM,CAAC,OAAO;QACjB,OAAO,IAAI,mCAAgB,EAAE,CAAC;IAClC,CAAC;IAED,UAAU;IACH,MAAM,CAAC,GAAG,CAAC,OAA8B;QAC5C,OAAO,IAAI,2BAAY,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACM,MAAM,CAAC,MAAM,CAAC,OAAiC;QAClD,OAAO,IAAI,iCAAe,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,UAAU;IACH,MAAM,CAAC,KAAK,CAAI,IAAkB,EAAE,OAA+B;QACtE,OAAO,IAAI,+BAAc,CAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IACM,MAAM,CAAC,IAAI,CAAqB,YAAe;QAClD,OAAO,IAAI,6BAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IACM,MAAM,CAAC,MAAM,CAAmB,MAA0B,EAAE,OAAiC;QAChG,OAAO,IAAI,iCAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAGM,MAAM,CAAC,MAAM,CAAsD,KAA8B,EAAE,GAA2B;QACjI,OAAO,IAAI,iCAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IAGM,MAAM,CAAC,KAAK,CAAmC,GAAG,UAA8B;QACnF,OAAO,IAAI,+BAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU;IACH,MAAM,CAAC,MAAM,CAA4B,OAAiC;QAC7E,OAAO,IAAI,iCAAe,CAAI,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,UAAU;IACH,MAAM,CAAC,GAAG;QACb,OAAO,IAAI,2BAAY,EAAK,CAAC;IACjC,CAAC;IACM,MAAM,CAAC,UAAU,CAAI,QAA4B,EAAE,OAAwC;QAC9F,OAAO,IAAI,yCAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAIM,MAAM,CAAC,QAAQ,CAAI,GAA4C,EAAE,IAA2B;QAC/F,OAAO,IAAI,qCAAiB,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,6FAA6F;IACtF,MAAM,CAAC,EAAE,CAAoB,GAAG,UAAmC;QACtE,OAAO,IAAI,yBAAW,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAIM,MAAM,CAAC,GAAG,CAAoB,GAAG,UAAmC;QACvE,OAAO,IAAI,8BAAY,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,eAAe,CAAI,SAAuB,EAAE,KAAc;QACpE,MAAM,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACrD,MAAM,gBAAgB,CAAC;QAC3B,CAAC;IACL,CAAC;CACJ;AAvED,cAuEC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ValidationError } from "../../errors/ValidationError";
|
|
2
|
+
import { Validator, type ValidatorConfig } from "../../Validator";
|
|
3
|
+
type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
|
|
4
|
+
export type AndValidatorTypes<T extends readonly Validator[]> = UnionToIntersection<T[number] extends Validator<infer U> ? U : never>;
|
|
5
|
+
export declare class AndValidator<T> extends Validator<T> {
|
|
6
|
+
readonly validators: readonly Validator<T>[];
|
|
7
|
+
type: string;
|
|
8
|
+
constructor(validators: readonly Validator<T>[]);
|
|
9
|
+
validateReturn(input: unknown): ValidationError<T> | null;
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
protected config(): Omit<ValidatorConfig, "type">;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AndValidator = void 0;
|
|
4
|
+
const ErrorType_1 = require("../../errors/ErrorType");
|
|
5
|
+
const Validator_1 = require("../../Validator");
|
|
6
|
+
class AndValidator extends Validator_1.Validator {
|
|
7
|
+
validators;
|
|
8
|
+
type = "allof";
|
|
9
|
+
constructor(validators) {
|
|
10
|
+
super();
|
|
11
|
+
this.validators = validators;
|
|
12
|
+
}
|
|
13
|
+
validateReturn(input) {
|
|
14
|
+
const errors = {};
|
|
15
|
+
let i = 0;
|
|
16
|
+
for (const validator of this.validators) {
|
|
17
|
+
const result = validator.validateReturn(input);
|
|
18
|
+
if (result !== null) {
|
|
19
|
+
errors[i] = result;
|
|
20
|
+
}
|
|
21
|
+
i++;
|
|
22
|
+
}
|
|
23
|
+
return this.createError(ErrorType_1.ErrorType.INCORRECT_TYPE, "Has to match all of the types.", errors);
|
|
24
|
+
}
|
|
25
|
+
/** @inheritdoc */
|
|
26
|
+
config() {
|
|
27
|
+
return {
|
|
28
|
+
items: this.validators.map((validator) => validator.getConfig()),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.AndValidator = AndValidator;
|
|
33
|
+
//# sourceMappingURL=AndValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AndValidator.js","sourceRoot":"","sources":["../../../src/types/util/AndValidator.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AAEnD,+CAAkE;AAQlE,MAAa,YAAgB,SAAQ,qBAAY;IAGV;IAFnB,IAAI,GAAG,OAAO,CAAC;IAE/B,YAAmC,UAAmC;QAClE,KAAK,EAAE,CAAC;QADuB,eAAU,GAAV,UAAU,CAAyB;IAEtE,CAAC;IAEe,cAAc,CAAC,KAAc;QACzC,MAAM,MAAM,GAAuC,EAAE,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;YACvB,CAAC;YACD,CAAC,EAAE,CAAA;QACP,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,qBAAS,CAAC,cAAc,EAAE,gCAAgC,EAAE,MAAM,CAAC,CAAC;IAChG,CAAC;IAED,kBAAkB;IACC,MAAM;QACrB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACnE,CAAC;IACN,CAAC;CACJ;AA1BD,oCA0BC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { ValidationError } from "../../errors/ValidationError";
|
|
2
2
|
import { Validator, type ValidatorConfig } from "../../Validator";
|
|
3
|
-
export type
|
|
3
|
+
export type OrValidatorTypes<T extends readonly Validator[]> = T[number] extends Validator<infer U> ? U : never;
|
|
4
4
|
export declare class OrValidator<T> extends Validator<T> {
|
|
5
|
-
readonly validators:
|
|
5
|
+
readonly validators: readonly Validator<T>[];
|
|
6
6
|
type: string;
|
|
7
|
-
constructor(validators:
|
|
7
|
+
constructor(validators: readonly Validator<T>[]);
|
|
8
8
|
validateReturn(input: unknown): ValidationError<T> | null;
|
|
9
9
|
/** @inheritdoc */
|
|
10
10
|
protected config(): Omit<ValidatorConfig, "type">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrValidator.js","sourceRoot":"","sources":["../../../src/types/util/OrValidator.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AAEnD,+CAAkE;AAIlE,MAAa,WAAe,SAAQ,qBAAY;IAGT;IAFnB,IAAI,GAAG,OAAO,CAAC;IAE/B,YAAmC,
|
|
1
|
+
{"version":3,"file":"OrValidator.js","sourceRoot":"","sources":["../../../src/types/util/OrValidator.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AAEnD,+CAAkE;AAIlE,MAAa,WAAe,SAAQ,qBAAY;IAGT;IAFnB,IAAI,GAAG,OAAO,CAAC;IAE/B,YAAmC,UAAmC;QAClE,KAAK,EAAE,CAAC;QADuB,eAAU,GAAV,UAAU,CAAyB;IAEtE,CAAC;IAEe,cAAc,CAAC,KAAc;QACzC,MAAM,MAAM,GAAuC,EAAE,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,qBAAS,CAAC,cAAc,EAAE,yCAAyC,EAAE,MAAM,CAAC,CAAC;IACzG,CAAC;IAED,kBAAkB;IACC,MAAM;QACrB,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;SACnE,CAAC;IACN,CAAC;CACJ;AA1BD,kCA0BC"}
|