@zajno/common 2.1.1 → 2.1.2
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/package.json +1 -1
- package/validation/helpers.d.ts +3 -1
- package/validation/helpers.d.ts.map +1 -1
- package/validation/helpers.js +19 -1
- package/validation/helpers.js.map +1 -1
- package/validation/throwers.d.ts +14 -0
- package/validation/throwers.d.ts.map +1 -0
- package/validation/throwers.js +29 -0
- package/validation/throwers.js.map +1 -0
- package/validation/types.d.ts +4 -0
- package/validation/types.d.ts.map +1 -1
package/package.json
CHANGED
package/validation/helpers.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ValidationErrors } from './ValidationErrors';
|
|
2
|
-
import { ValidationConfig, ValidationResults, ValidatorFunction, ValidatorFunctionAsync } from './types';
|
|
2
|
+
import { ValidationConfig, ValidationResults, ValidationVoid, ValidatorFunction, ValidatorFunctionAsync } from './types';
|
|
3
3
|
export declare function createShouldBeEqualTo<T = string>(getter: () => T): ValidatorFunction<T>;
|
|
4
4
|
export declare function throwNotOk(result: ValidationErrors, message?: string): void;
|
|
5
5
|
export declare function validateObject<T, TErrors = ValidationErrors>(obj: T, validators: ValidationConfig<T, TErrors>, onlyTruethy?: boolean, context?: T): ValidationResults<T, TErrors>;
|
|
6
6
|
export declare function combineValidators<T = string, TErrors = ValidationErrors, TContext = any>(...validators: ValidatorFunction<T, TErrors, TContext>[]): (val: T, ctx?: TContext) => ValidationErrors.None | TErrors;
|
|
7
7
|
export declare function combineValidatorsAsync<T = string, TErrors = ValidationErrors, TContext = any>(...validators: ValidatorFunctionAsync<T, TErrors, TContext>[]): Promise<(val: T, ctx?: TContext) => Promise<ValidationErrors.None | TErrors>>;
|
|
8
|
+
export declare function IsSomeInvalid(validatables: ReadonlyArray<ValidationVoid>, stopOnFail?: boolean): Promise<boolean>;
|
|
9
|
+
export declare function getFirstValidationError(...validatables: ValidationVoid[]): Promise<string>;
|
|
8
10
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACH,gBAAgB,EAEhB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACzB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAEvF;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,SAAqB,QAIhF;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,gBAAgB,EACxD,GAAG,EAAE,CAAC,EACN,UAAU,EAAE,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,EACxC,WAAW,UAAQ,EACnB,OAAO,CAAC,EAAE,CAAC,GACZ,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAuB/B;AAED,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SACjI,CAAC,QAAQ,QAAQ,qCAUjC;AAED,wBAAsB,sBAAsB,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE,sBAAsB,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,iBAC3I,CAAC,QAAQ,QAAQ,+CAUvC;AAED,wBAAsB,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,UAAU,UAAO,oBAOjG;AAED,wBAAsB,uBAAuB,CAAC,GAAG,YAAY,EAAE,cAAc,EAAE,mBAO9E"}
|
package/validation/helpers.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.combineValidatorsAsync = exports.combineValidators = exports.validateObject = exports.throwNotOk = exports.createShouldBeEqualTo = void 0;
|
|
3
|
+
exports.getFirstValidationError = exports.IsSomeInvalid = exports.combineValidatorsAsync = exports.combineValidators = exports.validateObject = exports.throwNotOk = exports.createShouldBeEqualTo = void 0;
|
|
4
|
+
const arrays_1 = require("../async/arrays");
|
|
4
5
|
const ValidationErrors_1 = require("./ValidationErrors");
|
|
5
6
|
const types_1 = require("./types");
|
|
6
7
|
function createShouldBeEqualTo(getter) {
|
|
@@ -57,4 +58,21 @@ async function combineValidatorsAsync(...validators) {
|
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
60
|
exports.combineValidatorsAsync = combineValidatorsAsync;
|
|
61
|
+
async function IsSomeInvalid(validatables, stopOnFail = true) {
|
|
62
|
+
if (stopOnFail) {
|
|
63
|
+
return (0, arrays_1.someAsync)(validatables, async (v) => !(await v.validate()));
|
|
64
|
+
}
|
|
65
|
+
const results = await Promise.all(validatables.map(v => v.validate()));
|
|
66
|
+
return results.some(r => !r);
|
|
67
|
+
}
|
|
68
|
+
exports.IsSomeInvalid = IsSomeInvalid;
|
|
69
|
+
async function getFirstValidationError(...validatables) {
|
|
70
|
+
for (const v of validatables) {
|
|
71
|
+
if (!(await v.validate())) {
|
|
72
|
+
return v.error;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
exports.getFirstValidationError = getFirstValidationError;
|
|
60
78
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** A validation method that is not tied to ValidationErrors but instead should just throw an Error with error messages */
|
|
2
|
+
export type ValidationThrower<T> = (value: T) => Promise<void> | void;
|
|
3
|
+
export declare namespace ValidationThrower {
|
|
4
|
+
function isValid<T>(value: T, validator: ValidationThrower<T>): Promise<boolean>;
|
|
5
|
+
}
|
|
6
|
+
export interface ValidationGenericLike<T> {
|
|
7
|
+
validate(value: T): Promise<unknown>;
|
|
8
|
+
}
|
|
9
|
+
export type ValidatorsSchema = Record<string, ValidationGenericLike<any>>;
|
|
10
|
+
export type ValidatorThrowers<T extends ValidatorsSchema> = {
|
|
11
|
+
[P in (string & keyof T)]: T[P] extends ValidationGenericLike<infer K> ? ValidationThrower<K> : never;
|
|
12
|
+
};
|
|
13
|
+
export declare function createThrowers<T extends ValidatorsSchema>(validators: T): ValidatorThrowers<T>;
|
|
14
|
+
//# sourceMappingURL=throwers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throwers.d.ts","sourceRoot":"","sources":["../../src/validation/throwers.ts"],"names":[],"mappings":"AAEA,0HAA0H;AAC1H,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEtE,yBAAiB,iBAAiB,CAAC;IAC/B,SAAsB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5F;CACJ;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1E,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,IAAI;KACvD,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK;CACxG,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,EAAE,UAAU,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAW9F"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createThrowers = exports.ValidationThrower = void 0;
|
|
4
|
+
var ValidationThrower;
|
|
5
|
+
(function (ValidationThrower) {
|
|
6
|
+
async function isValid(value, validator) {
|
|
7
|
+
try {
|
|
8
|
+
await validator(value);
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
ValidationThrower.isValid = isValid;
|
|
16
|
+
})(ValidationThrower || (exports.ValidationThrower = ValidationThrower = {}));
|
|
17
|
+
function createThrowers(validators) {
|
|
18
|
+
return Object.entries(validators).reduce((acc, [key, validator]) => {
|
|
19
|
+
const kk = key;
|
|
20
|
+
if ('validate' in validator) {
|
|
21
|
+
acc[kk] = (async (v) => {
|
|
22
|
+
await validator.validate(v);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return acc;
|
|
26
|
+
}, {});
|
|
27
|
+
}
|
|
28
|
+
exports.createThrowers = createThrowers;
|
|
29
|
+
//# sourceMappingURL=throwers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throwers.js","sourceRoot":"","sources":["../../src/validation/throwers.ts"],"names":[],"mappings":";;;AAKA,IAAiB,iBAAiB,CASjC;AATD,WAAiB,iBAAiB;IACvB,KAAK,UAAU,OAAO,CAAI,KAAQ,EAAE,SAA+B;QACtE,IAAI;YACA,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAPqB,yBAAO,UAO5B,CAAA;AACL,CAAC,EATgB,iBAAiB,iCAAjB,iBAAiB,QASjC;AAYD,SAAgB,cAAc,CAA6B,UAAa;IACpE,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;QAC/D,MAAM,EAAE,GAAG,GAAyB,CAAC;QACrC,IAAI,UAAU,IAAI,SAAS,EAAE;YACzB,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;gBACjB,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC,CAAQ,CAAC;SACb;QAED,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAA0B,CAAC,CAAC;AACnC,CAAC;AAXD,wCAWC"}
|
package/validation/types.d.ts
CHANGED
|
@@ -12,4 +12,8 @@ export declare class ValidationError<TErrors = ValidationErrors> extends Error {
|
|
|
12
12
|
readonly code: TErrors;
|
|
13
13
|
constructor(message: string, code: TErrors);
|
|
14
14
|
}
|
|
15
|
+
export interface ValidationVoid {
|
|
16
|
+
readonly error?: string;
|
|
17
|
+
validate(): Promise<boolean>;
|
|
18
|
+
}
|
|
15
19
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validation/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC;AAC5H,MAAM,MAAM,sBAAsB,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE1I,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,OAAO,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;CAAE,CAAC;AACpG,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,OAAO,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;AAE5E,qBAAa,eAAe,CAAC,OAAO,GAAG,gBAAgB,CAAE,SAAQ,KAAK;IAClE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAQ;gBAElB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;CAI7C"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/validation/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC;AAC5H,MAAM,MAAM,sBAAsB,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,GAAG,gBAAgB,EAAE,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE1I,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,OAAO,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;CAAE,CAAC;AACpG,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,OAAO,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO;CAAE,CAAC;AAEzE,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;AAE5E,qBAAa,eAAe,CAAC,OAAO,GAAG,gBAAgB,CAAE,SAAQ,KAAK;IAClE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAQ;gBAElB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;CAI7C;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAChC"}
|