@zajno/common 2.1.0 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zajno/common",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "description": "Zajno's re-usable utilities for JS/TS projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3,20 +3,22 @@ export declare enum ValidationErrors {
3
3
  None = 0,
4
4
  ShouldBeNonEmpty = 1,
5
5
  ShouldBeEqualTo = 2,
6
- InvalidNameFormat = 3,
7
- InvalidEmailFormat = 4,
8
- InvalidPasswordFormat = 5,
9
- OnlyEnglishLetters = 6,
10
- InvalidPhoneFormat = 7,
11
- InvalidCreditCardFormat = 8,
12
- InvalidCreditCardExpiryDateFormat = 9,
13
- InvalidCreditCardCvvFormat = 10,
14
- OnlyDigit = 11,
15
- EmailIsInUse = 12,
16
- FirstName = 13,
17
- LastName = 14,
18
- Website = 15,
19
- Linkedin = 16
6
+ InvalidFormat = 3,
7
+ Inconsistent = 4,
8
+ InvalidNameFormat = 5,
9
+ InvalidEmailFormat = 6,
10
+ InvalidPasswordFormat = 7,
11
+ OnlyEnglishLetters = 8,
12
+ InvalidPhoneFormat = 9,
13
+ InvalidCreditCardFormat = 10,
14
+ InvalidCreditCardExpiryDateFormat = 11,
15
+ InvalidCreditCardCvvFormat = 12,
16
+ OnlyDigit = 13,
17
+ EmailIsInUse = 14,
18
+ FirstName = 15,
19
+ LastName = 16,
20
+ Website = 17,
21
+ Linkedin = 18
20
22
  }
21
23
  export declare namespace ValidationErrors {
22
24
  const Helper: EnumHelper<ValidationErrors>;
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationErrors.d.ts","sourceRoot":"","sources":["../../src/validation/ValidationErrors.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,4BAA4B,CAAC;AAEpD,oBAAY,gBAAgB;IACxB,IAAI,IAAI;IACR,gBAAgB,IAAA;IAChB,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,kBAAkB,IAAA;IAClB,qBAAqB,IAAA;IACrB,kBAAkB,IAAA;IAClB,kBAAkB,IAAA;IAClB,uBAAuB,IAAA;IACvB,iCAAiC,IAAA;IACjC,0BAA0B,KAAA;IAC1B,SAAS,KAAA;IAET,YAAY,KAAA;IACZ,SAAS,KAAA;IACT,QAAQ,KAAA;IACR,OAAO,KAAA;IACP,QAAQ,KAAA;CACX;AAED,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,MAAM,8BAAqD,CAAC;CAC5E"}
1
+ {"version":3,"file":"ValidationErrors.d.ts","sourceRoot":"","sources":["../../src/validation/ValidationErrors.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,4BAA4B,CAAC;AAEpD,oBAAY,gBAAgB;IACxB,IAAI,IAAI;IAGR,gBAAgB,IAAA;IAChB,eAAe,IAAA;IACf,aAAa,IAAA;IACb,YAAY,IAAA;IAGZ,iBAAiB,IAAA;IACjB,kBAAkB,IAAA;IAClB,qBAAqB,IAAA;IACrB,kBAAkB,IAAA;IAClB,kBAAkB,IAAA;IAClB,uBAAuB,KAAA;IACvB,iCAAiC,KAAA;IACjC,0BAA0B,KAAA;IAC1B,SAAS,KAAA;IAGT,YAAY,KAAA;IACZ,SAAS,KAAA;IACT,QAAQ,KAAA;IACR,OAAO,KAAA;IACP,QAAQ,KAAA;CACX;AAED,yBAAiB,gBAAgB,CAAC;IACvB,MAAM,MAAM,8BAAqD,CAAC;CAC5E"}
@@ -6,22 +6,27 @@ const enum_1 = tslib_1.__importDefault(require("../structures/helpers/enum"));
6
6
  var ValidationErrors;
7
7
  (function (ValidationErrors) {
8
8
  ValidationErrors[ValidationErrors["None"] = 0] = "None";
9
+ // generic
9
10
  ValidationErrors[ValidationErrors["ShouldBeNonEmpty"] = 1] = "ShouldBeNonEmpty";
10
11
  ValidationErrors[ValidationErrors["ShouldBeEqualTo"] = 2] = "ShouldBeEqualTo";
11
- ValidationErrors[ValidationErrors["InvalidNameFormat"] = 3] = "InvalidNameFormat";
12
- ValidationErrors[ValidationErrors["InvalidEmailFormat"] = 4] = "InvalidEmailFormat";
13
- ValidationErrors[ValidationErrors["InvalidPasswordFormat"] = 5] = "InvalidPasswordFormat";
14
- ValidationErrors[ValidationErrors["OnlyEnglishLetters"] = 6] = "OnlyEnglishLetters";
15
- ValidationErrors[ValidationErrors["InvalidPhoneFormat"] = 7] = "InvalidPhoneFormat";
16
- ValidationErrors[ValidationErrors["InvalidCreditCardFormat"] = 8] = "InvalidCreditCardFormat";
17
- ValidationErrors[ValidationErrors["InvalidCreditCardExpiryDateFormat"] = 9] = "InvalidCreditCardExpiryDateFormat";
18
- ValidationErrors[ValidationErrors["InvalidCreditCardCvvFormat"] = 10] = "InvalidCreditCardCvvFormat";
19
- ValidationErrors[ValidationErrors["OnlyDigit"] = 11] = "OnlyDigit";
20
- ValidationErrors[ValidationErrors["EmailIsInUse"] = 12] = "EmailIsInUse";
21
- ValidationErrors[ValidationErrors["FirstName"] = 13] = "FirstName";
22
- ValidationErrors[ValidationErrors["LastName"] = 14] = "LastName";
23
- ValidationErrors[ValidationErrors["Website"] = 15] = "Website";
24
- ValidationErrors[ValidationErrors["Linkedin"] = 16] = "Linkedin";
12
+ ValidationErrors[ValidationErrors["InvalidFormat"] = 3] = "InvalidFormat";
13
+ ValidationErrors[ValidationErrors["Inconsistent"] = 4] = "Inconsistent";
14
+ // specific to fields & data
15
+ ValidationErrors[ValidationErrors["InvalidNameFormat"] = 5] = "InvalidNameFormat";
16
+ ValidationErrors[ValidationErrors["InvalidEmailFormat"] = 6] = "InvalidEmailFormat";
17
+ ValidationErrors[ValidationErrors["InvalidPasswordFormat"] = 7] = "InvalidPasswordFormat";
18
+ ValidationErrors[ValidationErrors["OnlyEnglishLetters"] = 8] = "OnlyEnglishLetters";
19
+ ValidationErrors[ValidationErrors["InvalidPhoneFormat"] = 9] = "InvalidPhoneFormat";
20
+ ValidationErrors[ValidationErrors["InvalidCreditCardFormat"] = 10] = "InvalidCreditCardFormat";
21
+ ValidationErrors[ValidationErrors["InvalidCreditCardExpiryDateFormat"] = 11] = "InvalidCreditCardExpiryDateFormat";
22
+ ValidationErrors[ValidationErrors["InvalidCreditCardCvvFormat"] = 12] = "InvalidCreditCardCvvFormat";
23
+ ValidationErrors[ValidationErrors["OnlyDigit"] = 13] = "OnlyDigit";
24
+ // business logic
25
+ ValidationErrors[ValidationErrors["EmailIsInUse"] = 14] = "EmailIsInUse";
26
+ ValidationErrors[ValidationErrors["FirstName"] = 15] = "FirstName";
27
+ ValidationErrors[ValidationErrors["LastName"] = 16] = "LastName";
28
+ ValidationErrors[ValidationErrors["Website"] = 17] = "Website";
29
+ ValidationErrors[ValidationErrors["Linkedin"] = 18] = "Linkedin";
25
30
  })(ValidationErrors || (exports.ValidationErrors = ValidationErrors = {}));
26
31
  (function (ValidationErrors) {
27
32
  ValidationErrors.Helper = new enum_1.default(ValidationErrors);
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationErrors.js","sourceRoot":"","sources":["../../src/validation/ValidationErrors.ts"],"names":[],"mappings":";;;;AAAA,8EAAoD;AAEpD,IAAY,gBAmBX;AAnBD,WAAY,gBAAgB;IACxB,uDAAQ,CAAA;IACR,+EAAgB,CAAA;IAChB,6EAAe,CAAA;IACf,iFAAiB,CAAA;IACjB,mFAAkB,CAAA;IAClB,yFAAqB,CAAA;IACrB,mFAAkB,CAAA;IAClB,mFAAkB,CAAA;IAClB,6FAAuB,CAAA;IACvB,iHAAiC,CAAA;IACjC,oGAA0B,CAAA;IAC1B,kEAAS,CAAA;IAET,wEAAY,CAAA;IACZ,kEAAS,CAAA;IACT,gEAAQ,CAAA;IACR,8DAAO,CAAA;IACP,gEAAQ,CAAA;AACZ,CAAC,EAnBW,gBAAgB,gCAAhB,gBAAgB,QAmB3B;AAED,WAAiB,gBAAgB;IAChB,uBAAM,GAAG,IAAI,cAAU,CAAmB,gBAAgB,CAAC,CAAC;AAC7E,CAAC,EAFgB,gBAAgB,gCAAhB,gBAAgB,QAEhC"}
1
+ {"version":3,"file":"ValidationErrors.js","sourceRoot":"","sources":["../../src/validation/ValidationErrors.ts"],"names":[],"mappings":";;;;AAAA,8EAAoD;AAEpD,IAAY,gBA0BX;AA1BD,WAAY,gBAAgB;IACxB,uDAAQ,CAAA;IAER,UAAU;IACV,+EAAgB,CAAA;IAChB,6EAAe,CAAA;IACf,yEAAa,CAAA;IACb,uEAAY,CAAA;IAEZ,4BAA4B;IAC5B,iFAAiB,CAAA;IACjB,mFAAkB,CAAA;IAClB,yFAAqB,CAAA;IACrB,mFAAkB,CAAA;IAClB,mFAAkB,CAAA;IAClB,8FAAuB,CAAA;IACvB,kHAAiC,CAAA;IACjC,oGAA0B,CAAA;IAC1B,kEAAS,CAAA;IAET,iBAAiB;IACjB,wEAAY,CAAA;IACZ,kEAAS,CAAA;IACT,gEAAQ,CAAA;IACR,8DAAO,CAAA;IACP,gEAAQ,CAAA;AACZ,CAAC,EA1BW,gBAAgB,gCAAhB,gBAAgB,QA0B3B;AAED,WAAiB,gBAAgB;IAChB,uBAAM,GAAG,IAAI,cAAU,CAAmB,gBAAgB,CAAC,CAAC;AAC7E,CAAC,EAFgB,gBAAgB,gCAAhB,gBAAgB,QAEhC"}
@@ -1,6 +1,10 @@
1
1
  import { ValidationErrors } from './ValidationErrors';
2
- import { ValidationConfig, ValidationResults, ValidatorFunction } 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
+ export declare function combineValidators<T = string, TErrors = ValidationErrors, TContext = any>(...validators: ValidatorFunction<T, TErrors, TContext>[]): (val: T, ctx?: TContext) => ValidationErrors.None | TErrors;
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>;
6
10
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACH,gBAAgB,EAEhB,iBAAiB,EACjB,iBAAiB,EACpB,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"}
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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- 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) {
@@ -33,4 +34,45 @@ function validateObject(obj, validators, onlyTruethy = false, context) {
33
34
  return res;
34
35
  }
35
36
  exports.validateObject = validateObject;
37
+ function combineValidators(...validators) {
38
+ return (val, ctx) => {
39
+ for (const validator of validators) {
40
+ const err = validator(val, ctx);
41
+ if (err) {
42
+ return err;
43
+ }
44
+ }
45
+ return ValidationErrors_1.ValidationErrors.None;
46
+ };
47
+ }
48
+ exports.combineValidators = combineValidators;
49
+ async function combineValidatorsAsync(...validators) {
50
+ return async (val, ctx) => {
51
+ for (const validator of validators) {
52
+ const err = await validator(val, ctx);
53
+ if (err) {
54
+ return err;
55
+ }
56
+ }
57
+ return ValidationErrors_1.ValidationErrors.None;
58
+ };
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;
36
78
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/validation/helpers.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AACtD,mCAKiB;AAEjB,SAAgB,qBAAqB,CAAa,MAAe;IAC7D,OAAO,CAAC,GAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,eAAe,CAAC;AACnG,CAAC;AAFD,sDAEC;AAED,SAAgB,UAAU,CAAC,MAAwB,EAAE,OAAO,GAAG,kBAAkB;IAC7E,IAAI,MAAM,EAAE;QACR,MAAM,IAAI,uBAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAC9C;AACL,CAAC;AAJD,gCAIC;AAED,SAAgB,cAAc,CAC1B,GAAM,EACN,UAAwC,EACxC,WAAW,GAAG,KAAK,EACnB,OAAW;IAGX,MAAM,GAAG,GAAkC,EAAG,CAAC;IAE/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACzB,MAAM,EAAE,GAAG,CAAY,CAAC;QACxB,MAAM,SAAS,GAAgD,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO;SACV;QAED,MAAM,CAAC,GAAG,GAAG,CAAC,CAAY,CAAC,CAAC;QAC5B,IAAI,WAAW,IAAI,CAAC,CAAC,EAAE;YACnB,OAAO;SACV;QAED,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;QACzC,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;SACjB;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACf,CAAC;AA5BD,wCA4BC"}
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"}
@@ -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"}
@@ -26,5 +26,6 @@ export declare const Validators: {
26
26
  creditCardCvv: (val: string) => ValidationErrors.None | ValidationErrors.InvalidCreditCardCvvFormat;
27
27
  website: (val: string) => ValidationErrors.None | ValidationErrors.Website;
28
28
  linkedin: (val: string) => ValidationErrors.None | ValidationErrors.Linkedin;
29
+ regex: (regex: RegExp) => (val: string) => ValidationErrors.None | ValidationErrors.InvalidFormat;
29
30
  };
30
31
  //# sourceMappingURL=validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAuB7B,CAAC;AAEF,eAAO,MAAM,UAAU;;;;oBAOH,MAAM;uBACH,MAAM;iBACZ,MAAM;oBACH,MAAM;qBACL,MAAM;4BACC,MAAM;gCAKF,MAAM;yBAKb,MAAM;mBAEZ,MAAM;oBACL,MAAM;CACzB,CAAC"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;CAuB7B,CAAC;AAEF,eAAO,MAAM,UAAU;;;;oBAOH,MAAM;uBACH,MAAM;iBACZ,MAAM;oBACH,MAAM;qBACL,MAAM;4BACC,MAAM;gCAKF,MAAM;yBAKb,MAAM;mBAEZ,MAAM;oBACL,MAAM;mBAEP,MAAM,WAAY,MAAM;CAC1C,CAAC"}
@@ -47,5 +47,6 @@ exports.Validators = {
47
47
  creditCardCvv: (val) => (exports.ValidatorsRegExps.cvv.test(val) && val.length >= 3 && val.length <= 4) ? ValidationErrors_1.ValidationErrors.None : ValidationErrors_1.ValidationErrors.InvalidCreditCardCvvFormat,
48
48
  website: (val) => exports.ValidatorsRegExps.website.test(val) ? ValidationErrors_1.ValidationErrors.None : ValidationErrors_1.ValidationErrors.Website,
49
49
  linkedin: (val) => exports.ValidatorsRegExps.linkedin.test(val) ? ValidationErrors_1.ValidationErrors.None : ValidationErrors_1.ValidationErrors.Linkedin,
50
+ regex: (regex) => ((val) => regex.test(val) ? ValidationErrors_1.ValidationErrors.None : ValidationErrors_1.ValidationErrors.InvalidFormat),
50
51
  };
51
52
  //# sourceMappingURL=validators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":";;;;AAAA,sEAAsC;AACtC,yDAAsD;AAEzC,QAAA,iBAAiB,GAAG;IAC7B,wCAAwC;IACxC,6CAA6C;IAC7C,IAAI,EAAE,qCAAqC;IAC3C,cAAc,EAAE,iBAAiB;IACjC,KAAK,EAAE,kEAAkE;IAEzE,+CAA+C;IAC/C,mCAAmC;IACnC,sDAAsD;IACtD,mDAAmD;IACnD,QAAQ,EAAE,kDAAkD;IAE5D,WAAW,EAAE,aAAa;IAE1B,qCAAqC;IACrC,SAAS,EAAE,OAAO;IAClB,gBAAgB,EAAE,OAAO;IACzB,cAAc,EAAE,OAAO;IACvB,GAAG,EAAE,OAAO;IACZ,6CAA6C;IAC7C,OAAO,EAAE,2FAA2F;IACpG,QAAQ,EAAE,wDAAwD;CACrE,CAAC;AAEW,QAAA,UAAU,GAAG;IAEtB,QAAQ,EAAE,CAAa,GAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,gBAAgB;IAEjG,SAAS,EAAE,CAAa,GAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,SAAS;IAC3F,QAAQ,EAAE,CAAa,GAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,QAAQ;IAEzF,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,iBAAiB;IAC/H,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,kBAAkB;IACtI,KAAK,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,kBAAkB;IACvH,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,qBAAqB;IAChI,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,SAAS;IACtH,gBAAgB,EAAE,CAAC,GAAW,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,yBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,oBAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC3H,OAAO,KAAK,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,uBAAuB,CAAC;IACpF,CAAC;IACD,oBAAoB,EAAE,CAAC,GAAW,EAAE,EAAE;QAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,CAAC,yBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACzF,OAAO,KAAK,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,iCAAiC,CAAC;IAC9F,CAAC;IACD,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAC3B,CAAC,yBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,0BAA0B;IACjJ,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,OAAO;IAChH,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAgB,CAAC,QAAQ;CACtH,CAAC"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/validation/validators.ts"],"names":[],"mappings":"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"}