@ne1410s/codl 0.1.174 → 0.1.176

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.
Files changed (101) hide show
  1. package/README.md +3 -3
  2. package/dist/decorate/interception.d.ts +3 -2
  3. package/dist/decorate/interception.d.ts.map +1 -0
  4. package/dist/decorate/interception.js +50 -0
  5. package/dist/decorate/interception.js.map +1 -0
  6. package/dist/decorate/metadata.d.ts +2 -1
  7. package/dist/decorate/metadata.d.ts.map +1 -0
  8. package/dist/decorate/metadata.js +33 -0
  9. package/dist/decorate/metadata.js.map +1 -0
  10. package/dist/decorate/type.d.ts +2 -1
  11. package/dist/decorate/type.d.ts.map +1 -0
  12. package/dist/decorate/type.js +22 -0
  13. package/dist/decorate/type.js.map +1 -0
  14. package/dist/decorate/validation.d.ts +2 -1
  15. package/dist/decorate/validation.d.ts.map +1 -0
  16. package/dist/decorate/validation.js +147 -0
  17. package/dist/decorate/validation.js.map +1 -0
  18. package/dist/index.d.ts +8 -7
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +8 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/mdkeys.d.ts +1 -0
  23. package/dist/mdkeys.d.ts.map +1 -0
  24. package/dist/mdkeys.js +23 -0
  25. package/dist/mdkeys.js.map +1 -0
  26. package/dist/reflect/metadata.d.ts +2 -1
  27. package/dist/reflect/metadata.d.ts.map +1 -0
  28. package/dist/reflect/metadata.js +33 -0
  29. package/dist/reflect/metadata.js.map +1 -0
  30. package/dist/reflect/type/models.d.ts +1 -0
  31. package/dist/reflect/type/models.d.ts.map +1 -0
  32. package/dist/reflect/type/models.js +2 -0
  33. package/dist/reflect/type/models.js.map +1 -0
  34. package/dist/reflect/type/parsers/boolean.d.ts +3 -2
  35. package/dist/reflect/type/parsers/boolean.d.ts.map +1 -0
  36. package/dist/reflect/type/parsers/boolean.js +8 -0
  37. package/dist/reflect/type/parsers/boolean.js.map +1 -0
  38. package/dist/reflect/type/parsers/date.d.ts +3 -2
  39. package/dist/reflect/type/parsers/date.d.ts.map +1 -0
  40. package/dist/reflect/type/parsers/date.js +10 -0
  41. package/dist/reflect/type/parsers/date.js.map +1 -0
  42. package/dist/reflect/type/parsers/integer.d.ts +3 -2
  43. package/dist/reflect/type/parsers/integer.d.ts.map +1 -0
  44. package/dist/reflect/type/parsers/integer.js +6 -0
  45. package/dist/reflect/type/parsers/integer.js.map +1 -0
  46. package/dist/reflect/type/parsers/number.d.ts +3 -2
  47. package/dist/reflect/type/parsers/number.d.ts.map +1 -0
  48. package/dist/reflect/type/parsers/number.js +6 -0
  49. package/dist/reflect/type/parsers/number.js.map +1 -0
  50. package/dist/reflect/type/type.d.ts +3 -2
  51. package/dist/reflect/type/type.d.ts.map +1 -0
  52. package/dist/reflect/type/type.js +43 -0
  53. package/dist/reflect/type/type.js.map +1 -0
  54. package/dist/reflect/validation/models.d.ts +2 -1
  55. package/dist/reflect/validation/models.d.ts.map +1 -0
  56. package/dist/reflect/validation/models.js +2 -0
  57. package/dist/reflect/validation/models.js.map +1 -0
  58. package/dist/reflect/validation/validation.d.ts +3 -2
  59. package/dist/reflect/validation/validation.d.ts.map +1 -0
  60. package/dist/reflect/validation/validation.js +179 -0
  61. package/dist/reflect/validation/validation.js.map +1 -0
  62. package/dist/reflect/validation/validators/custom.d.ts +2 -1
  63. package/dist/reflect/validation/validators/custom.d.ts.map +1 -0
  64. package/dist/reflect/validation/validators/custom.js +19 -0
  65. package/dist/reflect/validation/validators/custom.js.map +1 -0
  66. package/dist/reflect/validation/validators/forbidden.d.ts +2 -1
  67. package/dist/reflect/validation/validators/forbidden.d.ts.map +1 -0
  68. package/dist/reflect/validation/validators/forbidden.js +18 -0
  69. package/dist/reflect/validation/validators/forbidden.js.map +1 -0
  70. package/dist/reflect/validation/validators/length-range.d.ts +2 -1
  71. package/dist/reflect/validation/validators/length-range.d.ts.map +1 -0
  72. package/dist/reflect/validation/validators/length-range.js +30 -0
  73. package/dist/reflect/validation/validators/length-range.js.map +1 -0
  74. package/dist/reflect/validation/validators/options.d.ts +2 -1
  75. package/dist/reflect/validation/validators/options.d.ts.map +1 -0
  76. package/dist/reflect/validation/validators/options.js +21 -0
  77. package/dist/reflect/validation/validators/options.js.map +1 -0
  78. package/dist/reflect/validation/validators/range.d.ts +2 -1
  79. package/dist/reflect/validation/validators/range.d.ts.map +1 -0
  80. package/dist/reflect/validation/validators/range.js +37 -0
  81. package/dist/reflect/validation/validators/range.js.map +1 -0
  82. package/dist/reflect/validation/validators/regex.d.ts +2 -1
  83. package/dist/reflect/validation/validators/regex.d.ts.map +1 -0
  84. package/dist/reflect/validation/validators/regex.js +21 -0
  85. package/dist/reflect/validation/validators/regex.js.map +1 -0
  86. package/dist/reflect/validation/validators/required.d.ts +2 -1
  87. package/dist/reflect/validation/validators/required.d.ts.map +1 -0
  88. package/dist/reflect/validation/validators/required.js +18 -0
  89. package/dist/reflect/validation/validators/required.js.map +1 -0
  90. package/dist/reflect/validation/validators/type.d.ts +2 -1
  91. package/dist/reflect/validation/validators/type.d.ts.map +1 -0
  92. package/dist/reflect/validation/validators/type.js +22 -0
  93. package/dist/reflect/validation/validators/type.js.map +1 -0
  94. package/dist/types.d.ts +1 -0
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +6 -0
  97. package/dist/types.js.map +1 -0
  98. package/package.json +56 -52
  99. package/dist/ne14_codl.cjs.min.js +0 -807
  100. package/dist/ne14_codl.esm.min.js +0 -799
  101. package/dist/ne14_codl.umd.min.js +0 -811
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # @ne1410s/codl
2
-
3
- Indulge your apps with codl: a component model library
1
+ # @ne1410s/codl
2
+
3
+ Indulge your apps with codl: a component model library
@@ -1,10 +1,10 @@
1
- import { Ctor, FunctionDecorator, TypedPropertyDecorator } from '../types';
1
+ import type { Ctor, FunctionDecorator, TypedPropertyDecorator } from '../types.js';
2
2
  export declare abstract class Interception {
3
3
  /**
4
4
  * Calls a custom function each with new instance created.
5
5
  * @param fn A custom function.
6
6
  */
7
- static readonly init: <T>(fn: (o: any) => void) => (c: Ctor<T>) => Ctor<any>;
7
+ static readonly init: <T>(fn: (o: any) => void) => (c: Ctor<T>) => Ctor<T>;
8
8
  /**
9
9
  * Provides an initial / default value.
10
10
  * @param val The initial value.
@@ -24,3 +24,4 @@ export declare abstract class Interception {
24
24
  static readonly output: <T>(fn: (val: T, args: any[], o: any) => T) => FunctionDecorator;
25
25
  private static readonly expose;
26
26
  }
27
+ //# sourceMappingURL=interception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interception.d.ts","sourceRoot":"","sources":["../../src/decorate/interception.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEnF,8BAAsB,YAAY;IAChC;;;OAGG;IACH,gBAAuB,IAAI,GACxB,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,SACpB,IAAI,CAAC,CAAC,CAAC,aACkB;IAE/B;;;OAGG;IACH,gBAAuB,OAAO,GAAI,CAAC,OAAO,CAAC,KAAG,sBAAsB,CAAC,CAAC,CAAC,CAIrE;IAEF;;;;OAIG;IACH,gBAAuB,KAAK,OAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG,KAAG,iBAAiB,CAIlF;IAEF;;;;OAIG;IACH,gBAAuB,MAAM,GAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,KAAG,iBAAiB,CAQ5F;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAS5B;CACH"}
@@ -0,0 +1,50 @@
1
+ export class Interception {
2
+ /**
3
+ * Calls a custom function each with new instance created.
4
+ * @param fn A custom function.
5
+ */
6
+ static { this.init = (fn) => (c) => Interception.expose(c, fn); }
7
+ /**
8
+ * Provides an initial / default value.
9
+ * @param val The initial value.
10
+ */
11
+ static { this.initial = (val) => {
12
+ return (target, key) => {
13
+ target[key] = val;
14
+ };
15
+ }; }
16
+ /**
17
+ * Intercepts the input of a function, preventing its execution.
18
+ * @param fn A custom function.
19
+ * @returns The result of the custom function.
20
+ */
21
+ static { this.input = (fn) => {
22
+ return (trg, key, desc) => {
23
+ desc.value = (...args) => fn(args, trg);
24
+ };
25
+ }; }
26
+ /**
27
+ * Intercepts the output of a function, after it is executed.
28
+ * @param fn A custom function.
29
+ * @returns The result of the custom function.
30
+ */
31
+ static { this.output = (fn) => {
32
+ return (trg, key, desc) => {
33
+ const origFn = desc.value;
34
+ desc.value = (...args) => {
35
+ const origVal = origFn.apply(trg, args);
36
+ return fn(origVal, args, trg);
37
+ };
38
+ };
39
+ }; }
40
+ static { this.expose = (ctor, fn) => {
41
+ function retVal(...args) {
42
+ const instance = Reflect.construct(ctor, args);
43
+ fn(instance);
44
+ return instance;
45
+ }
46
+ retVal.prototype = ctor.prototype;
47
+ return retVal;
48
+ }; }
49
+ }
50
+ //# sourceMappingURL=interception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interception.js","sourceRoot":"","sources":["../../src/decorate/interception.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,YAAY;IAChC;;;OAGG;aACoB,SAAI,GACzB,CAAI,EAAoB,EAAE,EAAE,CAC5B,CAAC,CAAU,EAAE,EAAE,CACb,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/B;;;OAGG;aACoB,YAAO,GAAG,CAAI,GAAM,EAA6B,EAAE;QACxE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YACpB,MAAc,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF;;;;OAIG;aACoB,UAAK,GAAG,CAAC,EAAgC,EAAqB,EAAE;QACrF,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF;;;;OAIG;aACoB,WAAM,GAAG,CAAI,EAAsC,EAAqB,EAAE;QAC/F,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;gBAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAChC,CAAC,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;aAEsB,WAAM,GAAG,CAAI,IAAa,EAAE,EAAkB,EAAW,EAAE;QACjF,SAAS,MAAM,CAAY,GAAG,IAAW;YACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAM,CAAC;YACpD,EAAE,CAAC,QAAQ,CAAC,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,OAAO,MAA4B,CAAC;IACtC,CAAC,CAAC;CACH"}
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { TypedPropertyDecorator, Ctor } from '../types';
2
+ import type { TypedPropertyDecorator, Ctor } from '../types.js';
3
3
  /** Decorators for metadata purposes. */
4
4
  export declare abstract class Metadata {
5
5
  /**
@@ -26,3 +26,4 @@ export declare abstract class Metadata {
26
26
  /** Associates a child's prototype data on the parent in which it appears. */
27
27
  static readonly model: <T extends Object>(ctor: Ctor<T>) => TypedPropertyDecorator<T | T[]>;
28
28
  }
29
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/decorate/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGhE,wCAAwC;AACxC,8BAAsB,QAAQ;IAC5B;;;OAGG;IACH,gBAAuB,WAAW,QAAS,MAAM;;;MAE/C;IAEF;;;OAGG;IACH,gBAAuB,WAAW,QAAS,MAAM;;;MAE/C;IAEF;;;OAGG;IACH,gBAAuB,MAAM,GAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,KAAG,sBAAsB,CAAC,CAAC,CAAC,CAEpF;IAEF,6EAA6E;IAC7E,gBAAuB,KAAK,GAAI,CAAC,SAAS,MAAM,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAG,sBAAsB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAI/F;CACH"}
@@ -0,0 +1,33 @@
1
+ import 'reflect-metadata';
2
+ import { MetadataKey } from '../mdkeys.js';
3
+ /** Decorators for metadata purposes. */
4
+ export class Metadata {
5
+ /**
6
+ * Associates a display name with the member to which it is applied.
7
+ * @param val The name.
8
+ */
9
+ static { this.displayName = (val) => {
10
+ return Reflect.metadata(MetadataKey.DISPLAY_NAME, val);
11
+ }; }
12
+ /**
13
+ * Associates a description with the member to which it is applied.
14
+ * @param val The description.
15
+ */
16
+ static { this.description = (val) => {
17
+ return Reflect.metadata(MetadataKey.DESCRIPTION, val);
18
+ }; }
19
+ /**
20
+ * Associates a format function with the member to which it is applied.
21
+ * @param fn The format function.
22
+ */
23
+ static { this.format = (fn) => {
24
+ return Reflect.metadata(MetadataKey.FORMAT, fn);
25
+ }; }
26
+ /** Associates a child's prototype data on the parent in which it appears. */
27
+ static { this.model = (ctor) => {
28
+ return (trg, key) => {
29
+ Reflect.defineMetadata(`${MetadataKey.MODEL}:${key.toString()}`, ctor, trg);
30
+ };
31
+ }; }
32
+ }
33
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/decorate/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,wCAAwC;AACxC,MAAM,OAAgB,QAAQ;IAC5B;;;OAGG;aACoB,gBAAW,GAAG,CAAC,GAAW,EAAE,EAAE;QACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF;;;OAGG;aACoB,gBAAW,GAAG,CAAC,GAAW,EAAE,EAAE;QACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF;;;OAGG;aACoB,WAAM,GAAG,CAAI,EAAsB,EAA6B,EAAE;QACvF,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,6EAA6E;aACtD,UAAK,GAAG,CAAmB,IAAa,EAAmC,EAAE;QAClG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAClB,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9E,CAAC,CAAC;IACJ,CAAC,CAAC;CACH"}
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { TypedPropertyDecorator } from '../types';
2
+ import type { TypedPropertyDecorator } from '../types.js';
3
3
  /** Decorators for type purposes. */
4
4
  export declare abstract class Type {
5
5
  static readonly boolean: TypedPropertyDecorator<boolean | number | string | Array<boolean | number | string>>;
@@ -7,3 +7,4 @@ export declare abstract class Type {
7
7
  static readonly integer: TypedPropertyDecorator<number | string | Array<number | string>>;
8
8
  static readonly number: TypedPropertyDecorator<number | string | Array<number | string>>;
9
9
  }
10
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/decorate/type.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAG1D,oCAAoC;AACpC,8BAAsB,IAAI;IACxB,gBAAuB,OAAO,EAAE,sBAAsB,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAIhH;IAEJ,gBAAuB,IAAI,EAAE,sBAAsB,CAAC,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAGvF;IAEF,gBAAuB,OAAO,EAAE,sBAAsB,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAG9F;IAEF,gBAAuB,MAAM,EAAE,sBAAsB,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAG7F;CACH"}
@@ -0,0 +1,22 @@
1
+ import 'reflect-metadata';
2
+ import { ValidationKey } from '../mdkeys.js';
3
+ /** Decorators for type purposes. */
4
+ export class Type {
5
+ static { this.boolean = (trg, key) => {
6
+ Reflect.defineMetadata(`${ValidationKey.TYPE}:${key.toString()}`, key, trg);
7
+ Reflect.defineMetadata(ValidationKey.TYPE, 'boolean', trg, key);
8
+ }; }
9
+ static { this.date = (trg, key) => {
10
+ Reflect.defineMetadata(`${ValidationKey.TYPE}:${key.toString()}`, key, trg);
11
+ Reflect.defineMetadata(ValidationKey.TYPE, 'date', trg, key);
12
+ }; }
13
+ static { this.integer = (trg, key) => {
14
+ Reflect.defineMetadata(`${ValidationKey.TYPE}:${key.toString()}`, key, trg);
15
+ Reflect.defineMetadata(ValidationKey.TYPE, 'integer', trg, key);
16
+ }; }
17
+ static { this.number = (trg, key) => {
18
+ Reflect.defineMetadata(`${ValidationKey.TYPE}:${key.toString()}`, key, trg);
19
+ Reflect.defineMetadata(ValidationKey.TYPE, 'number', trg, key);
20
+ }; }
21
+ }
22
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/decorate/type.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,oCAAoC;AACpC,MAAM,OAAgB,IAAI;aACD,YAAO,GAC5B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5E,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC,CAAC;aAEmB,SAAI,GAAiE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvG,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5E,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC;aAEqB,YAAO,GAAqE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9G,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5E,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC,CAAC;aAEqB,WAAM,GAAqE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC7G,OAAO,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5E,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC,CAAC;CACH"}
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { TypedPropertyDecorator, CustomValidator } from '../types';
2
+ import type { TypedPropertyDecorator, CustomValidator } from '../types.js';
3
3
  /** Decorators for validation purposes. */
4
4
  export declare abstract class Validation {
5
5
  /**
@@ -69,3 +69,4 @@ export declare abstract class Validation {
69
69
  */
70
70
  static readonly custom: <T>(fn: CustomValidator) => TypedPropertyDecorator<T>;
71
71
  }
72
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/decorate/validation.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG3E,0CAA0C;AAC1C,8BAAsB,UAAU;IAC9B;;;OAGG;IACH,gBAAuB,QAAQ,EAAE,iBAAiB,CAGhD;IAEF;;;OAGG;IACH,gBAAuB,SAAS,EAAE,iBAAiB,CAGjD;IAEF;;;;;OAKG;IACH,gBAAuB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAK3F;IAEF;;;;;OAKG;IACH,gBAAuB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAK3F;IAEF;;;;;OAKG;IACH,gBAAuB,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,sBAAsB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAc1G;IAEF;;;;;OAKG;IACH,gBAAuB,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,sBAAsB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAc1G;IAEF;;;;;OAKG;IACH,gBAAuB,KAAK,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,EACpD,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,KACN,sBAAsB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAc3C;IAEF;;;;;OAKG;IACH,gBAAuB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,iBAAiB,CAKzE;IAEF;;;OAGG;IACH,gBAAuB,OAAO,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EAClE,GAAG,IAAI,EAAE,CAAC,EAAE,KACT,sBAAsB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAK3C;IAEF;;;;;;;OAOG;IACH,gBAAuB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,eAAe,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAKlF;CACH"}
@@ -0,0 +1,147 @@
1
+ import 'reflect-metadata';
2
+ import { ValidationKey } from '../mdkeys.js';
3
+ /** Decorators for validation purposes. */
4
+ export class Validation {
5
+ /**
6
+ * Makes a property required. 'Unprovided' values (null, undefined, '') are
7
+ * invalid, as is NaN. Anything else is valid (including: 0, 0n, false).
8
+ */
9
+ static { this.required = (trg, key) => {
10
+ Reflect.defineMetadata(`${ValidationKey.REQUIRED}:${key.toString()}`, key, trg);
11
+ Reflect.defineMetadata(ValidationKey.REQUIRED, true, trg, key);
12
+ }; }
13
+ /**
14
+ * Makes a property forbidden. 'Unprovided' values (null, undefined, '') are
15
+ * valid. Anything else is considered invalid (including: 0, 0n, false).
16
+ */
17
+ static { this.forbidden = (trg, key) => {
18
+ Reflect.defineMetadata(`${ValidationKey.FORBIDDEN}:${key.toString()}`, key, trg);
19
+ Reflect.defineMetadata(ValidationKey.FORBIDDEN, true, trg, key);
20
+ }; }
21
+ /**
22
+ * Associates a string or array with a minimum length. 'Unprovided' values
23
+ * (null, undefined, '') are not tested hence valid. Otherwise the string
24
+ * length must not be less than the bound supplied.
25
+ * @param lBound The minimum length.
26
+ */
27
+ static { this.minLength = (lBound) => {
28
+ return (trg, key) => {
29
+ Reflect.defineMetadata(`${ValidationKey.MIN_LENGTH}:${key.toString()}`, key, trg);
30
+ Reflect.defineMetadata(ValidationKey.MIN_LENGTH, lBound, trg, key);
31
+ };
32
+ }; }
33
+ /**
34
+ * Associates a string or array with a maximum length. 'Unprovided' values
35
+ * (null, undefined, '') are not tested hence valid. Otherwise the string
36
+ * length must not exceed the upper bound supplied.
37
+ * @param uBound The maximum length.
38
+ */
39
+ static { this.maxLength = (uBound) => {
40
+ return (trg, key) => {
41
+ Reflect.defineMetadata(`${ValidationKey.MAX_LENGTH}:${key.toString()}`, key, trg);
42
+ Reflect.defineMetadata(ValidationKey.MAX_LENGTH, uBound, trg, key);
43
+ };
44
+ }; }
45
+ /**
46
+ * Associates a property with a minimum value. 'Unprovided' values (null,
47
+ * undefined, '') are not tested hence valid. Otherwise the value must not be
48
+ * less than the lower bound supplied to be valid.
49
+ * @param lBound The minimum value.
50
+ */
51
+ static { this.min = (lBound) => {
52
+ let typekey;
53
+ if (lBound instanceof Date)
54
+ typekey = 'date';
55
+ else if (typeof lBound === 'number')
56
+ typekey = 'number';
57
+ else
58
+ throw new TypeError('Unable to infer type key from: ' + lBound);
59
+ return (trg, key) => {
60
+ Reflect.defineMetadata(`${ValidationKey.TYPE}:${key.toString()}`, key, trg);
61
+ Reflect.defineMetadata(`${ValidationKey.MIN}:${key.toString()}`, key, trg);
62
+ Reflect.defineMetadata(ValidationKey.TYPE, typekey, trg, key);
63
+ Reflect.defineMetadata(ValidationKey.MIN, lBound, trg, key);
64
+ };
65
+ }; }
66
+ /**
67
+ * Associates a number or date property with a maximum value. 'Unprovided'
68
+ * values (null, undefined, '') are not tested hence valid. Otherwise the
69
+ * value must not exceed the upper bound supplied to be valid.
70
+ * @param uBound The maximum value.
71
+ */
72
+ static { this.max = (uBound) => {
73
+ let typekey;
74
+ if (uBound instanceof Date)
75
+ typekey = 'date';
76
+ else if (typeof uBound === 'number')
77
+ typekey = 'number';
78
+ else
79
+ throw new TypeError('Unable to infer type key from: ' + uBound);
80
+ return (trg, key) => {
81
+ Reflect.defineMetadata(`${ValidationKey.TYPE}:${key.toString()}`, key, trg);
82
+ Reflect.defineMetadata(`${ValidationKey.MAX}:${key.toString()}`, key, trg);
83
+ Reflect.defineMetadata(ValidationKey.TYPE, typekey, trg, key);
84
+ Reflect.defineMetadata(ValidationKey.MAX, uBound, trg, key);
85
+ };
86
+ }; }
87
+ /**
88
+ * Associates a property with minimum and maximum values. 'Unprovided' values
89
+ * (null, undefined, '') are not tested hence valid. Otherwise the value must
90
+ * be (inclusively) between the lower and upper bounds.
91
+ * @param lBound The minimum value.
92
+ */
93
+ static { this.range = (lBound, uBound) => {
94
+ let typekey;
95
+ if (lBound instanceof Date)
96
+ typekey = 'date';
97
+ else if (typeof lBound === 'number')
98
+ typekey = 'number';
99
+ else
100
+ throw new TypeError('Unable to infer type key from: ' + lBound);
101
+ return (trg, key) => {
102
+ Reflect.defineMetadata(`${ValidationKey.TYPE}:${key.toString()}`, key, trg);
103
+ Reflect.defineMetadata(`${ValidationKey.MIN}:${key.toString()}`, key, trg);
104
+ Reflect.defineMetadata(`${ValidationKey.MAX}:${key.toString()}`, key, trg);
105
+ Reflect.defineMetadata(ValidationKey.TYPE, typekey, trg, key);
106
+ Reflect.defineMetadata(ValidationKey.MIN, lBound, trg, key);
107
+ Reflect.defineMetadata(ValidationKey.MAX, uBound, trg, key);
108
+ };
109
+ }; }
110
+ /**
111
+ * Associates a property with a pattern. 'Unprovided' values (null, undefined,
112
+ * '') are not tested hence valid. Otherwise the result of .toString() must
113
+ * match the regex supplied to be valid.
114
+ * @param regex The validation pattern.
115
+ */
116
+ static { this.regex = (regex) => {
117
+ return (trg, key) => {
118
+ Reflect.defineMetadata(`${ValidationKey.REGEX}:${key.toString()}`, key, trg);
119
+ Reflect.defineMetadata(ValidationKey.REGEX, regex, trg, key);
120
+ };
121
+ }; }
122
+ /**
123
+ * Associates a property with a predefined set of allowed values. Primitive
124
+ * types, enums and arrays thereof are all supported.
125
+ */
126
+ static { this.options = (...opts) => {
127
+ return (trg, key) => {
128
+ Reflect.defineMetadata(`${ValidationKey.OPTIONS}:${key.toString()}`, key, trg);
129
+ Reflect.defineMetadata(ValidationKey.OPTIONS, opts, trg, key);
130
+ };
131
+ }; }
132
+ /**
133
+ * Associates a property with a custom validator. Unlike most other validation
134
+ * decorators, ALL values will be tested (rather than being skipped if it was
135
+ * deemed 'unprovided') - the decision is not taken on the caller's behalf. If
136
+ * the function returns false, the value is deemed invalid and a generic error
137
+ * is used. Else if it returns a string, this string is used as the message,
138
+ * with null or empty strings taken to indicate that the value is valid).
139
+ */
140
+ static { this.custom = (fn) => {
141
+ return (trg, key) => {
142
+ Reflect.defineMetadata(`${ValidationKey.CUSTOM}:${key.toString()}`, key, trg);
143
+ Reflect.defineMetadata(ValidationKey.CUSTOM, fn, trg, key);
144
+ };
145
+ }; }
146
+ }
147
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/decorate/validation.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- export * from './types';
2
- export * from './decorate/interception';
3
- export * from './decorate/metadata';
4
- export * from './decorate/type';
5
- export * from './decorate/validation';
6
- export * from './reflect/metadata';
7
- export * from './reflect/validation/validation';
1
+ export * from './types.js';
2
+ export * from './decorate/interception.js';
3
+ export * from './decorate/metadata.js';
4
+ export * from './decorate/type.js';
5
+ export * from './decorate/validation.js';
6
+ export * from './reflect/metadata.js';
7
+ export * from './reflect/validation/validation.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAE3B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from './types.js';
2
+ export * from './decorate/interception.js';
3
+ export * from './decorate/metadata.js';
4
+ export * from './decorate/type.js';
5
+ export * from './decorate/validation.js';
6
+ export * from './reflect/metadata.js';
7
+ export * from './reflect/validation/validation.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAE3B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC"}
package/dist/mdkeys.d.ts CHANGED
@@ -18,3 +18,4 @@ export declare enum ValidationKey {
18
18
  OPTIONS = "ne-codl:validation:options",
19
19
  CUSTOM = "ne-codl:validation:custom"
20
20
  }
21
+ //# sourceMappingURL=mdkeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdkeys.d.ts","sourceRoot":"","sources":["../src/mdkeys.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,oBAAY,WAAW;IACrB,YAAY,kCAAkC;IAC9C,WAAW,iCAAiC;IAC5C,MAAM,4BAA4B;IAClC,KAAK,2BAA2B;CACjC;AAED,uBAAuB;AACvB,oBAAY,aAAa;IACvB,QAAQ,gCAAgC;IACxC,SAAS,iCAAiC;IAC1C,UAAU,kCAAkC;IAC5C,UAAU,kCAAkC;IAC5C,GAAG,2BAA2B;IAC9B,GAAG,2BAA2B;IAC9B,KAAK,6BAA6B;IAClC,IAAI,4BAA4B;IAChC,OAAO,+BAA+B;IACtC,MAAM,8BAA8B;CACrC"}
package/dist/mdkeys.js ADDED
@@ -0,0 +1,23 @@
1
+ /** Metadata keys. */
2
+ export var MetadataKey;
3
+ (function (MetadataKey) {
4
+ MetadataKey["DISPLAY_NAME"] = "ne-codl:metadata:display-name";
5
+ MetadataKey["DESCRIPTION"] = "ne-codl:metadata:description";
6
+ MetadataKey["FORMAT"] = "ne-codl:metadata:format";
7
+ MetadataKey["MODEL"] = "ne-codl:metadata:model";
8
+ })(MetadataKey || (MetadataKey = {}));
9
+ /** Validation keys. */
10
+ export var ValidationKey;
11
+ (function (ValidationKey) {
12
+ ValidationKey["REQUIRED"] = "ne-codl:validation:required";
13
+ ValidationKey["FORBIDDEN"] = "ne-codl:validation:forbidden";
14
+ ValidationKey["MIN_LENGTH"] = "ne-codl:validation:min-length";
15
+ ValidationKey["MAX_LENGTH"] = "ne-codl:validation:max-length";
16
+ ValidationKey["MIN"] = "ne-codl:validation:min";
17
+ ValidationKey["MAX"] = "ne-codl:validation:max";
18
+ ValidationKey["REGEX"] = "ne-codl:validation:regex";
19
+ ValidationKey["TYPE"] = "ne-codl:validation:type";
20
+ ValidationKey["OPTIONS"] = "ne-codl:validation:options";
21
+ ValidationKey["CUSTOM"] = "ne-codl:validation:custom";
22
+ })(ValidationKey || (ValidationKey = {}));
23
+ //# sourceMappingURL=mdkeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdkeys.js","sourceRoot":"","sources":["../src/mdkeys.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,6DAA8C,CAAA;IAC9C,2DAA4C,CAAA;IAC5C,iDAAkC,CAAA;IAClC,+CAAgC,CAAA;AAClC,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,uBAAuB;AACvB,MAAM,CAAN,IAAY,aAWX;AAXD,WAAY,aAAa;IACvB,yDAAwC,CAAA;IACxC,2DAA0C,CAAA;IAC1C,6DAA4C,CAAA;IAC5C,6DAA4C,CAAA;IAC5C,+CAA8B,CAAA;IAC9B,+CAA8B,CAAA;IAC9B,mDAAkC,CAAA;IAClC,iDAAgC,CAAA;IAChC,uDAAsC,CAAA;IACtC,qDAAoC,CAAA;AACtC,CAAC,EAXW,aAAa,KAAb,aAAa,QAWxB"}
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { RecordKey } from '../types';
2
+ import type { RecordKey } from '../types.js';
3
3
  export declare abstract class ReflectMetadata {
4
4
  /**
5
5
  * Retrieves the display name if provided (else the property key).
@@ -22,3 +22,4 @@ export declare abstract class ReflectMetadata {
22
22
  */
23
23
  static readonly getFormatted: (target: Object, key: RecordKey, other?: unknown) => string;
24
24
  }
25
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/reflect/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,8BAAsB,eAAe;IACnC;;;;OAIG;IACH,gBAAuB,cAAc,WAAY,MAAM,OAAO,SAAS,KAAG,MAAM,CAE9E;IAEF;;;;OAIG;IACH,gBAAuB,cAAc,WAAY,MAAM,OAAO,SAAS,KAAG,MAAM,CAE9E;IAEF;;;;;;OAMG;IACH,gBAAuB,YAAY,WAAY,MAAM,OAAO,SAAS,UAAU,OAAO,KAAG,MAAM,CAI7F;CACH"}
@@ -0,0 +1,33 @@
1
+ import 'reflect-metadata';
2
+ import { MetadataKey } from '../mdkeys.js';
3
+ export class ReflectMetadata {
4
+ /**
5
+ * Retrieves the display name if provided (else the property key).
6
+ * @param target The parent object.
7
+ * @param key The property key.
8
+ */
9
+ static { this.getDisplayName = (target, key) => {
10
+ return Reflect.getMetadata(MetadataKey.DISPLAY_NAME, target, key) || key;
11
+ }; }
12
+ /**
13
+ * Retrieves the description.
14
+ * @param target The parent object.
15
+ * @param key The property key.
16
+ */
17
+ static { this.getDescription = (target, key) => {
18
+ return Reflect.getMetadata(MetadataKey.DESCRIPTION, target, key);
19
+ }; }
20
+ /**
21
+ * Retrieves the formatted value if format provided (else the raw value).
22
+ * @param target The parent object.
23
+ * @param key The property key.
24
+ * @param other If supplied, the formatter is applied to this value, rather
25
+ * than that of the property.
26
+ */
27
+ static { this.getFormatted = (target, key, other) => {
28
+ const fn = Reflect.getMetadata(MetadataKey.FORMAT, target, key);
29
+ const value = other != null ? other : target[key];
30
+ return fn ? fn(value) : value;
31
+ }; }
32
+ }
33
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/reflect/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,OAAgB,eAAe;IACnC;;;;OAIG;aACoB,mBAAc,GAAG,CAAC,MAAc,EAAE,GAAc,EAAU,EAAE;QACjF,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;IAC3E,CAAC,CAAC;IAEF;;;;OAIG;aACoB,mBAAc,GAAG,CAAC,MAAc,EAAE,GAAc,EAAU,EAAE;QACjF,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF;;;;;;OAMG;aACoB,iBAAY,GAAG,CAAC,MAAc,EAAE,GAAc,EAAE,KAAe,EAAU,EAAE;QAChG,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,MAAc,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChC,CAAC,CAAC;CACH"}
@@ -1 +1,2 @@
1
1
  export declare type Parser<T> = (obj: any) => T;
2
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/reflect/type/models.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/reflect/type/models.ts"],"names":[],"mappings":""}
@@ -1,2 +1,3 @@
1
- import { Parser } from '../models';
2
- export declare const BooleanParser: Parser<boolean>;
1
+ import type { Parser } from '../models.js';
2
+ export declare const BooleanParser: Parser<boolean | undefined>;
3
+ //# sourceMappingURL=boolean.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../../../src/reflect/type/parsers/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAIrD,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const BooleanParser = (obj) => {
2
+ const str = `${obj}`.toLowerCase();
3
+ if (['1', 'true'].indexOf(str) !== -1)
4
+ return true;
5
+ if (['0', 'false'].indexOf(str) !== -1)
6
+ return false;
7
+ };
8
+ //# sourceMappingURL=boolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../src/reflect/type/parsers/boolean.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAgC,CAAC,GAAG,EAAE,EAAE;IAChE,MAAM,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;AACvD,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
- import { Parser } from '../models';
2
- export declare const DateParser: Parser<Date>;
1
+ import type { Parser } from '../models.js';
2
+ export declare const DateParser: Parser<Date | undefined>;
3
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../../src/reflect/type/parsers/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,IAAI,GAAG,SAAS,CAM/C,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const DateParser = (obj) => {
2
+ if (obj instanceof Date)
3
+ return obj;
4
+ if (typeof obj === 'string') {
5
+ const test = new Date(obj);
6
+ if (!isNaN(test.getTime()))
7
+ return test;
8
+ }
9
+ };
10
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../src/reflect/type/parsers/date.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAA6B,CAAC,GAAG,EAAE,EAAE;IAC1D,IAAI,GAAG,YAAY,IAAI;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IAC1C,CAAC;AACH,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
- import { Parser } from '../models';
2
- export declare const IntegerParser: Parser<number>;
1
+ import type { Parser } from '../models.js';
2
+ export declare const IntegerParser: Parser<number | undefined>;
3
+ //# sourceMappingURL=integer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer.d.ts","sourceRoot":"","sources":["../../../../src/reflect/type/parsers/integer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAGpD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export const IntegerParser = (obj) => {
2
+ const asInt = parseInt(`${obj}`, 10);
3
+ if (!isNaN(asInt) && asInt.toFixed(8) === parseFloat(`${obj}`).toFixed(8))
4
+ return asInt;
5
+ };
6
+ //# sourceMappingURL=integer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer.js","sourceRoot":"","sources":["../../../../src/reflect/type/parsers/integer.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAA+B,CAAC,GAAG,EAAE,EAAE;IAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;AAC1F,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
- import { Parser } from '../models';
2
- export declare const NumberParser: Parser<number>;
1
+ import type { Parser } from '../models.js';
2
+ export declare const NumberParser: Parser<number | undefined>;
3
+ //# sourceMappingURL=number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../../src/reflect/type/parsers/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAGnD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export const NumberParser = (obj) => {
2
+ const test = parseFloat(`${obj}`);
3
+ if (!isNaN(test))
4
+ return test;
5
+ };
6
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../../src/reflect/type/parsers/number.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAA+B,CAAC,GAAG,EAAE,EAAE;IAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;AAChC,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import 'reflect-metadata';
2
- import { RecordKey } from '../../types';
3
- import { Parser } from './models';
2
+ import { type RecordKey } from '../../types.js';
3
+ import type { Parser } from './models.js';
4
4
  export declare abstract class ReflectType {
5
5
  /**
6
6
  * Parses provided according to its meta type. If no type found, the original
@@ -15,3 +15,4 @@ export declare abstract class ReflectType {
15
15
  /** Gets parser for supported meta types. */
16
16
  static getParser(type: string): Parser<any>;
17
17
  }
18
+ //# sourceMappingURL=type.d.ts.map