xanv 1.1.3 → 1.1.5

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 (88) hide show
  1. package/XanvType.d.ts +12 -12
  2. package/XanvType.js +53 -53
  3. package/XanvType.js.map +1 -1
  4. package/XanvType.mjs +53 -53
  5. package/XanvType.mjs.map +1 -1
  6. package/index.d.ts +23 -23
  7. package/index.js +16 -16
  8. package/index.js.map +1 -1
  9. package/index.mjs +16 -16
  10. package/index.mjs.map +1 -1
  11. package/package.json +1 -1
  12. package/readme.md +199 -199
  13. package/types/Any.d.ts +3 -3
  14. package/types/Any.js +5 -5
  15. package/types/Any.js.map +1 -1
  16. package/types/Any.mjs +5 -5
  17. package/types/Any.mjs.map +1 -1
  18. package/types/Array.d.ts +8 -8
  19. package/types/Array.js +79 -79
  20. package/types/Array.js.map +1 -1
  21. package/types/Array.mjs +79 -79
  22. package/types/Array.mjs.map +1 -1
  23. package/types/Boolean.d.ts +2 -2
  24. package/types/Boolean.js +6 -6
  25. package/types/Boolean.js.map +1 -1
  26. package/types/Boolean.mjs +6 -6
  27. package/types/Boolean.mjs.map +1 -1
  28. package/types/Date.d.ts +2 -2
  29. package/types/Date.js +6 -6
  30. package/types/Date.js.map +1 -1
  31. package/types/Date.mjs +6 -6
  32. package/types/Date.mjs.map +1 -1
  33. package/types/Enum.d.ts +4 -4
  34. package/types/Enum.js +16 -16
  35. package/types/Enum.js.map +1 -1
  36. package/types/Enum.mjs +16 -16
  37. package/types/Enum.mjs.map +1 -1
  38. package/types/File.d.ts +8 -8
  39. package/types/File.js +51 -51
  40. package/types/File.js.map +1 -1
  41. package/types/File.mjs +51 -51
  42. package/types/File.mjs.map +1 -1
  43. package/types/Json.d.ts +3 -3
  44. package/types/Json.js +10 -10
  45. package/types/Json.js.map +1 -1
  46. package/types/Json.mjs +10 -10
  47. package/types/Json.mjs.map +1 -1
  48. package/types/Map.d.ts +5 -5
  49. package/types/Map.js +22 -22
  50. package/types/Map.js.map +1 -1
  51. package/types/Map.mjs +22 -22
  52. package/types/Map.mjs.map +1 -1
  53. package/types/Number.d.ts +10 -10
  54. package/types/Number.js +66 -66
  55. package/types/Number.js.map +1 -1
  56. package/types/Number.mjs +66 -66
  57. package/types/Number.mjs.map +1 -1
  58. package/types/Object.d.ts +4 -4
  59. package/types/Object.js +25 -25
  60. package/types/Object.js.map +1 -1
  61. package/types/Object.mjs +25 -25
  62. package/types/Object.mjs.map +1 -1
  63. package/types/Record.d.ts +6 -6
  64. package/types/Record.js +23 -23
  65. package/types/Record.js.map +1 -1
  66. package/types/Record.mjs +23 -23
  67. package/types/Record.mjs.map +1 -1
  68. package/types/Set.d.ts +6 -6
  69. package/types/Set.js +32 -32
  70. package/types/Set.js.map +1 -1
  71. package/types/Set.mjs +32 -32
  72. package/types/Set.mjs.map +1 -1
  73. package/types/String.d.ts +12 -12
  74. package/types/String.js +86 -86
  75. package/types/String.js.map +1 -1
  76. package/types/String.mjs +86 -86
  77. package/types/String.mjs.map +1 -1
  78. package/types/Tuple.d.ts +4 -4
  79. package/types/Tuple.js +22 -22
  80. package/types/Tuple.js.map +1 -1
  81. package/types/Tuple.mjs +22 -22
  82. package/types/Tuple.mjs.map +1 -1
  83. package/types/Union.d.ts +4 -4
  84. package/types/Union.js +27 -27
  85. package/types/Union.js.map +1 -1
  86. package/types/Union.mjs +27 -27
  87. package/types/Union.mjs.map +1 -1
  88. package/types.d.ts +6 -6
package/XanvType.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  import { XVCheckCallback, XanvTransformCallback } from './types.js';
2
2
 
3
- declare abstract class XanvType<Value> {
4
- private checkes;
5
- private transforms;
6
- readonly meta: Record<string, any>;
7
- protected abstract check(value: any): any;
8
- protected set(methodName: string, check: XVCheckCallback<Value>, args?: any): this;
9
- clone(): any;
10
- optional(): this;
11
- default(value: Value | (() => Value)): this;
12
- nullable(): this;
13
- transform(cb: XanvTransformCallback<Value>): void;
14
- parse(value: any): Value | undefined | null;
3
+ declare abstract class XanvType<Value> {
4
+ private checkes;
5
+ private transforms;
6
+ readonly meta: Record<string, any>;
7
+ protected abstract check(value: any): any;
8
+ protected set(methodName: string, check: XVCheckCallback<Value>, args?: any): this;
9
+ clone(): any;
10
+ optional(): this;
11
+ default(value: Value | (() => Value)): this;
12
+ nullable(): this;
13
+ transform(cb: XanvTransformCallback<Value>): void;
14
+ parse(value: any): Value | undefined | null;
15
15
  }
16
16
 
17
17
  export { XanvType as default };
package/XanvType.js CHANGED
@@ -1,54 +1,54 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});class XanvType {
2
- constructor() {
3
- this.checkes = new Map();
4
- this.transforms = [];
5
- this.meta = {};
6
- }
7
- set(methodName, check, args = true) {
8
- const has = methodName in this;
9
- if (!has) {
10
- throw new Error(`Method ${methodName} does not exist on ${this.constructor.name}`);
11
- }
12
- this.checkes.set(methodName, check);
13
- this.meta[methodName] = args;
14
- return this;
15
- }
16
- clone() {
17
- const cloned = Object.create(this);
18
- cloned.checkes = new Map(this.checkes);
19
- cloned.meta = Object.assign({}, this.meta);
20
- cloned.transforms = [...this.transforms];
21
- return cloned;
22
- }
23
- optional() {
24
- return this.set('optional', () => { }, true);
25
- }
26
- default(value) {
27
- return this.set('default', () => { }, value);
28
- }
29
- nullable() {
30
- return this.set('nullable', () => { }, true);
31
- }
32
- transform(cb) {
33
- this.transforms.push(cb);
34
- }
35
- parse(value) {
36
- if (this.meta.default && value === undefined) {
37
- value = typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default;
38
- }
39
- if (this.meta.optional && value === undefined) {
40
- return value;
41
- }
42
- if (this.meta.nullable && value === null) {
43
- return value;
44
- }
45
- value = this.check(value) || value;
46
- for (const [, check] of Array.from(this.checkes.entries())) {
47
- check(value);
48
- }
49
- for (const transform of this.transforms) {
50
- value = transform(value);
51
- }
52
- return value;
53
- }
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});class XanvType {
2
+ constructor() {
3
+ this.checkes = new Map();
4
+ this.transforms = [];
5
+ this.meta = {};
6
+ }
7
+ set(methodName, check, args = true) {
8
+ const has = methodName in this;
9
+ if (!has) {
10
+ throw new Error(`Method ${methodName} does not exist on ${this.constructor.name}`);
11
+ }
12
+ this.checkes.set(methodName, check);
13
+ this.meta[methodName] = args;
14
+ return this;
15
+ }
16
+ clone() {
17
+ const cloned = Object.create(this);
18
+ cloned.checkes = new Map(this.checkes);
19
+ cloned.meta = Object.assign({}, this.meta);
20
+ cloned.transforms = [...this.transforms];
21
+ return cloned;
22
+ }
23
+ optional() {
24
+ return this.set('optional', () => { }, true);
25
+ }
26
+ default(value) {
27
+ return this.set('default', () => { }, value);
28
+ }
29
+ nullable() {
30
+ return this.set('nullable', () => { }, true);
31
+ }
32
+ transform(cb) {
33
+ this.transforms.push(cb);
34
+ }
35
+ parse(value) {
36
+ if (this.meta.default && (value === undefined || value === null)) {
37
+ value = typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default;
38
+ }
39
+ if (this.meta.optional && value === undefined) {
40
+ return value;
41
+ }
42
+ if (this.meta.nullable && value === null) {
43
+ return value;
44
+ }
45
+ value = this.check(value) || value;
46
+ for (const [, check] of Array.from(this.checkes.entries())) {
47
+ check(value);
48
+ }
49
+ for (const transform of this.transforms) {
50
+ value = transform(value);
51
+ }
52
+ return value;
53
+ }
54
54
  }exports.default=XanvType;//# sourceMappingURL=XanvType.js.map
package/XanvType.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"XanvType.js","sources":["../src/XanvType.ts"],"sourcesContent":["import { XanvTransformCallback, XVCheckCallback } from \"./types\";\r\n\r\nabstract class XanvType<Value> {\r\n private checkes = new Map<string, XVCheckCallback<Value>>();\r\n private transforms: XanvTransformCallback<Value>[] = []\r\n readonly meta: Record<string, any> = {}\r\n protected abstract check(value: any): any;\r\n\r\n protected set(methodName: string, check: XVCheckCallback<Value>, args: any = true) {\r\n const has = methodName in this\r\n if (!has) {\r\n throw new Error(`Method ${methodName} does not exist on ${this.constructor.name}`);\r\n }\r\n this.checkes.set(methodName, check);\r\n this.meta[methodName] = args\r\n return this\r\n }\r\n\r\n clone() {\r\n const cloned = Object.create(this);\r\n cloned.checkes = new Map(this.checkes);\r\n cloned.meta = { ...this.meta };\r\n cloned.transforms = [...this.transforms];\r\n return cloned;\r\n }\r\n\r\n optional() {\r\n return this.set('optional', () => { }, true);\r\n }\r\n\r\n default(value: Value | (() => Value)) {\r\n return this.set('default', () => { }, value);\r\n }\r\n\r\n nullable() {\r\n return this.set('nullable', () => { }, true);\r\n }\r\n\r\n transform(cb: XanvTransformCallback<Value>) {\r\n this.transforms.push(cb);\r\n }\r\n\r\n parse(value: any): Value | undefined | null {\r\n\r\n if (this.meta.default && value === undefined) {\r\n value = typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default\r\n }\r\n\r\n if (this.meta.optional && value === undefined) {\r\n return value;\r\n }\r\n\r\n if (this.meta.nullable && value === null) {\r\n return value;\r\n }\r\n\r\n value = this.check(value) || value;\r\n\r\n for (const [, check] of Array.from(this.checkes.entries())) {\r\n check(value);\r\n }\r\n\r\n for (const transform of this.transforms) {\r\n value = transform(value);\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n\r\nexport default XanvType;"],"names":[],"mappings":"sEAEA,MAAe,QAAQ,CAAA;AAAvB,IAAA,WAAA,GAAA;AACW,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;QACpD,IAAA,CAAA,UAAU,GAAmC,EAAE,CAAA;QAC9C,IAAA,CAAA,IAAI,GAAwB,EAAE,CAAA;IA+D1C,CAAC;AA5DY,IAAA,GAAG,CAAC,UAAkB,EAAE,KAA6B,EAAE,OAAY,IAAI,EAAA;AAC9E,QAAA,MAAM,GAAG,GAAG,UAAU,IAAI,IAAI,CAAA;QAC9B,IAAI,CAAC,GAAG,EAAE;AACP,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,OAAA,EAAU,UAAU,CAAA,mBAAA,EAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC,CAAC;AACrF,QAAA,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;AAC5B,QAAA,OAAO,IAAI,CAAA;IACd,CAAC;IAED,KAAK,GAAA;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,QAAA,MAAM,CAAC,IAAI,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,IAAI,CAAE,CAAC;QAC/B,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,QAAA,OAAO,MAAM,CAAC;IACjB,CAAC;IAED,QAAQ,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;AAED,IAAA,OAAO,CAAC,KAA4B,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAK,EAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,QAAQ,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;AAED,IAAA,SAAS,CAAC,EAAgC,EAAA;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;AAED,IAAA,KAAK,CAAC,KAAU,EAAA;QAEb,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,SAAS,EAAE;YAC3C,KAAK,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;AAC3F,QAAA,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AAC5C,YAAA,OAAO,KAAK,CAAC;AACf,QAAA,CAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACvC,YAAA,OAAO,KAAK,CAAC;AACf,QAAA,CAAA;QAED,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAEnC,QAAA,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;YACzD,KAAK,CAAC,KAAK,CAAC,CAAC;AACf,QAAA,CAAA;AAED,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3B,QAAA,CAAA;AAED,QAAA,OAAO,KAAK,CAAC;IAChB,CAAC;AACH"}
1
+ {"version":3,"file":"XanvType.js","sources":["../src/XanvType.ts"],"sourcesContent":["import { XanvTransformCallback, XVCheckCallback } from \"./types\";\n\nabstract class XanvType<Value> {\n private checkes = new Map<string, XVCheckCallback<Value>>();\n private transforms: XanvTransformCallback<Value>[] = []\n readonly meta: Record<string, any> = {}\n protected abstract check(value: any): any;\n\n protected set(methodName: string, check: XVCheckCallback<Value>, args: any = true) {\n const has = methodName in this\n if (!has) {\n throw new Error(`Method ${methodName} does not exist on ${this.constructor.name}`);\n }\n this.checkes.set(methodName, check);\n this.meta[methodName] = args\n return this\n }\n\n clone() {\n const cloned = Object.create(this);\n cloned.checkes = new Map(this.checkes);\n cloned.meta = { ...this.meta };\n cloned.transforms = [...this.transforms];\n return cloned;\n }\n\n optional() {\n return this.set('optional', () => { }, true);\n }\n\n default(value: Value | (() => Value)) {\n return this.set('default', () => { }, value);\n }\n\n nullable() {\n return this.set('nullable', () => { }, true);\n }\n\n transform(cb: XanvTransformCallback<Value>) {\n this.transforms.push(cb);\n }\n\n parse(value: any): Value | undefined | null {\n\n if (this.meta.default && (value === undefined || value === null)) {\n value = typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default\n }\n\n if (this.meta.optional && value === undefined) {\n return value;\n }\n\n if (this.meta.nullable && value === null) {\n return value;\n }\n\n value = this.check(value) || value;\n\n for (const [, check] of Array.from(this.checkes.entries())) {\n check(value);\n }\n\n for (const transform of this.transforms) {\n value = transform(value);\n }\n\n return value;\n }\n}\n\nexport default XanvType;"],"names":[],"mappings":"sEAEA,MAAe,QAAQ,CAAA;AAAvB,IAAA,WAAA,GAAA;AACW,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAAkC;QACnD,IAAA,CAAA,UAAU,GAAmC,EAAE;QAC9C,IAAA,CAAA,IAAI,GAAwB,EAAE;IA+D1C;AA5Da,IAAA,GAAG,CAAC,UAAkB,EAAE,KAA6B,EAAE,OAAY,IAAI,EAAA;AAC9E,QAAA,MAAM,GAAG,GAAG,UAAU,IAAI,IAAI;QAC9B,IAAI,CAAC,GAAG,EAAE;AACP,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,OAAA,EAAU,UAAU,CAAA,mBAAA,EAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC;AACpF,QAAA;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;AAC5B,QAAA,OAAO,IAAI;IACd;IAEA,KAAK,GAAA;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,QAAA,MAAM,CAAC,IAAI,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,IAAI,CAAE;QAC9B,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AACxC,QAAA,OAAO,MAAM;IAChB;IAEA,QAAQ,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC;IAC/C;AAEA,IAAA,OAAO,CAAC,KAA4B,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAK,EAAG,CAAC,EAAE,KAAK,CAAC;IAC/C;IAEA,QAAQ,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC;IAC/C;AAEA,IAAA,SAAS,CAAC,EAAgC,EAAA;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3B;AAEA,IAAA,KAAK,CAAC,KAAU,EAAA;AAEb,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;YAC/D,KAAK,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AAC3F,QAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AAC5C,YAAA,OAAO,KAAK;AACd,QAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACvC,YAAA,OAAO,KAAK;AACd,QAAA;QAED,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK;AAElC,QAAA,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;YACzD,KAAK,CAAC,KAAK,CAAC;AACd,QAAA;AAED,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAC1B,QAAA;AAED,QAAA,OAAO,KAAK;IACf;AACF"}
package/XanvType.mjs CHANGED
@@ -1,54 +1,54 @@
1
- class XanvType {
2
- constructor() {
3
- this.checkes = new Map();
4
- this.transforms = [];
5
- this.meta = {};
6
- }
7
- set(methodName, check, args = true) {
8
- const has = methodName in this;
9
- if (!has) {
10
- throw new Error(`Method ${methodName} does not exist on ${this.constructor.name}`);
11
- }
12
- this.checkes.set(methodName, check);
13
- this.meta[methodName] = args;
14
- return this;
15
- }
16
- clone() {
17
- const cloned = Object.create(this);
18
- cloned.checkes = new Map(this.checkes);
19
- cloned.meta = Object.assign({}, this.meta);
20
- cloned.transforms = [...this.transforms];
21
- return cloned;
22
- }
23
- optional() {
24
- return this.set('optional', () => { }, true);
25
- }
26
- default(value) {
27
- return this.set('default', () => { }, value);
28
- }
29
- nullable() {
30
- return this.set('nullable', () => { }, true);
31
- }
32
- transform(cb) {
33
- this.transforms.push(cb);
34
- }
35
- parse(value) {
36
- if (this.meta.default && value === undefined) {
37
- value = typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default;
38
- }
39
- if (this.meta.optional && value === undefined) {
40
- return value;
41
- }
42
- if (this.meta.nullable && value === null) {
43
- return value;
44
- }
45
- value = this.check(value) || value;
46
- for (const [, check] of Array.from(this.checkes.entries())) {
47
- check(value);
48
- }
49
- for (const transform of this.transforms) {
50
- value = transform(value);
51
- }
52
- return value;
53
- }
1
+ class XanvType {
2
+ constructor() {
3
+ this.checkes = new Map();
4
+ this.transforms = [];
5
+ this.meta = {};
6
+ }
7
+ set(methodName, check, args = true) {
8
+ const has = methodName in this;
9
+ if (!has) {
10
+ throw new Error(`Method ${methodName} does not exist on ${this.constructor.name}`);
11
+ }
12
+ this.checkes.set(methodName, check);
13
+ this.meta[methodName] = args;
14
+ return this;
15
+ }
16
+ clone() {
17
+ const cloned = Object.create(this);
18
+ cloned.checkes = new Map(this.checkes);
19
+ cloned.meta = Object.assign({}, this.meta);
20
+ cloned.transforms = [...this.transforms];
21
+ return cloned;
22
+ }
23
+ optional() {
24
+ return this.set('optional', () => { }, true);
25
+ }
26
+ default(value) {
27
+ return this.set('default', () => { }, value);
28
+ }
29
+ nullable() {
30
+ return this.set('nullable', () => { }, true);
31
+ }
32
+ transform(cb) {
33
+ this.transforms.push(cb);
34
+ }
35
+ parse(value) {
36
+ if (this.meta.default && (value === undefined || value === null)) {
37
+ value = typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default;
38
+ }
39
+ if (this.meta.optional && value === undefined) {
40
+ return value;
41
+ }
42
+ if (this.meta.nullable && value === null) {
43
+ return value;
44
+ }
45
+ value = this.check(value) || value;
46
+ for (const [, check] of Array.from(this.checkes.entries())) {
47
+ check(value);
48
+ }
49
+ for (const transform of this.transforms) {
50
+ value = transform(value);
51
+ }
52
+ return value;
53
+ }
54
54
  }export{XanvType as default};//# sourceMappingURL=XanvType.mjs.map
package/XanvType.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"XanvType.mjs","sources":["../src/XanvType.ts"],"sourcesContent":["import { XanvTransformCallback, XVCheckCallback } from \"./types\";\r\n\r\nabstract class XanvType<Value> {\r\n private checkes = new Map<string, XVCheckCallback<Value>>();\r\n private transforms: XanvTransformCallback<Value>[] = []\r\n readonly meta: Record<string, any> = {}\r\n protected abstract check(value: any): any;\r\n\r\n protected set(methodName: string, check: XVCheckCallback<Value>, args: any = true) {\r\n const has = methodName in this\r\n if (!has) {\r\n throw new Error(`Method ${methodName} does not exist on ${this.constructor.name}`);\r\n }\r\n this.checkes.set(methodName, check);\r\n this.meta[methodName] = args\r\n return this\r\n }\r\n\r\n clone() {\r\n const cloned = Object.create(this);\r\n cloned.checkes = new Map(this.checkes);\r\n cloned.meta = { ...this.meta };\r\n cloned.transforms = [...this.transforms];\r\n return cloned;\r\n }\r\n\r\n optional() {\r\n return this.set('optional', () => { }, true);\r\n }\r\n\r\n default(value: Value | (() => Value)) {\r\n return this.set('default', () => { }, value);\r\n }\r\n\r\n nullable() {\r\n return this.set('nullable', () => { }, true);\r\n }\r\n\r\n transform(cb: XanvTransformCallback<Value>) {\r\n this.transforms.push(cb);\r\n }\r\n\r\n parse(value: any): Value | undefined | null {\r\n\r\n if (this.meta.default && value === undefined) {\r\n value = typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default\r\n }\r\n\r\n if (this.meta.optional && value === undefined) {\r\n return value;\r\n }\r\n\r\n if (this.meta.nullable && value === null) {\r\n return value;\r\n }\r\n\r\n value = this.check(value) || value;\r\n\r\n for (const [, check] of Array.from(this.checkes.entries())) {\r\n check(value);\r\n }\r\n\r\n for (const transform of this.transforms) {\r\n value = transform(value);\r\n }\r\n\r\n return value;\r\n }\r\n}\r\n\r\nexport default XanvType;"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XanvType.mjs","sources":["../src/XanvType.ts"],"sourcesContent":["import { XanvTransformCallback, XVCheckCallback } from \"./types\";\n\nabstract class XanvType<Value> {\n private checkes = new Map<string, XVCheckCallback<Value>>();\n private transforms: XanvTransformCallback<Value>[] = []\n readonly meta: Record<string, any> = {}\n protected abstract check(value: any): any;\n\n protected set(methodName: string, check: XVCheckCallback<Value>, args: any = true) {\n const has = methodName in this\n if (!has) {\n throw new Error(`Method ${methodName} does not exist on ${this.constructor.name}`);\n }\n this.checkes.set(methodName, check);\n this.meta[methodName] = args\n return this\n }\n\n clone() {\n const cloned = Object.create(this);\n cloned.checkes = new Map(this.checkes);\n cloned.meta = { ...this.meta };\n cloned.transforms = [...this.transforms];\n return cloned;\n }\n\n optional() {\n return this.set('optional', () => { }, true);\n }\n\n default(value: Value | (() => Value)) {\n return this.set('default', () => { }, value);\n }\n\n nullable() {\n return this.set('nullable', () => { }, true);\n }\n\n transform(cb: XanvTransformCallback<Value>) {\n this.transforms.push(cb);\n }\n\n parse(value: any): Value | undefined | null {\n\n if (this.meta.default && (value === undefined || value === null)) {\n value = typeof this.meta.default === 'function' ? this.meta.default() : this.meta.default\n }\n\n if (this.meta.optional && value === undefined) {\n return value;\n }\n\n if (this.meta.nullable && value === null) {\n return value;\n }\n\n value = this.check(value) || value;\n\n for (const [, check] of Array.from(this.checkes.entries())) {\n check(value);\n }\n\n for (const transform of this.transforms) {\n value = transform(value);\n }\n\n return value;\n }\n}\n\nexport default XanvType;"],"names":[],"mappings":"AAEA,MAAe,QAAQ,CAAA;AAAvB,IAAA,WAAA,GAAA;AACW,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAAkC;QACnD,IAAA,CAAA,UAAU,GAAmC,EAAE;QAC9C,IAAA,CAAA,IAAI,GAAwB,EAAE;IA+D1C;AA5Da,IAAA,GAAG,CAAC,UAAkB,EAAE,KAA6B,EAAE,OAAY,IAAI,EAAA;AAC9E,QAAA,MAAM,GAAG,GAAG,UAAU,IAAI,IAAI;QAC9B,IAAI,CAAC,GAAG,EAAE;AACP,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,OAAA,EAAU,UAAU,CAAA,mBAAA,EAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC;AACpF,QAAA;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;AAC5B,QAAA,OAAO,IAAI;IACd;IAEA,KAAK,GAAA;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAClC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,QAAA,MAAM,CAAC,IAAI,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,IAAI,CAAE;QAC9B,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AACxC,QAAA,OAAO,MAAM;IAChB;IAEA,QAAQ,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC;IAC/C;AAEA,IAAA,OAAO,CAAC,KAA4B,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAK,EAAG,CAAC,EAAE,KAAK,CAAC;IAC/C;IAEA,QAAQ,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC;IAC/C;AAEA,IAAA,SAAS,CAAC,EAAgC,EAAA;AACvC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3B;AAEA,IAAA,KAAK,CAAC,KAAU,EAAA;AAEb,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;YAC/D,KAAK,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AAC3F,QAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AAC5C,YAAA,OAAO,KAAK;AACd,QAAA;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AACvC,YAAA,OAAO,KAAK;AACd,QAAA;QAED,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK;AAElC,QAAA,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE;YACzD,KAAK,CAAC,KAAK,CAAC;AACd,QAAA;AAED,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAC1B,QAAA;AAED,QAAA,OAAO,KAAK;IACf;AACF"}
package/index.d.ts CHANGED
@@ -17,29 +17,29 @@ import XVJson from './types/Json.js';
17
17
  import { XVInstanceType, XVEnumValues, XVObjectType } from './types.js';
18
18
  export { XVCheckCallback, XVObjectValueType } from './types.js';
19
19
 
20
- declare const xanv: {
21
- any: () => XVAny<any>;
22
- array: (type: XVInstanceType, length?: number) => XVArray<any>;
23
- boolean: () => XVBoolean;
24
- date: () => XVDate<Date>;
25
- enum: (values: XVEnumValues) => XVEnum<string | number>;
26
- file: () => XVFile<File | Blob>;
27
- map: (key: XVInstanceType, value: XVInstanceType) => XVMap<any, any>;
28
- number: (length?: number) => XVNumber<number>;
29
- object: (arg?: XVObjectType) => XVObject<any>;
30
- record: (key: XVInstanceType, value: XVInstanceType) => XVRecord<string, any>;
31
- set: (type: XVInstanceType) => XVSet<any>;
32
- string: (length?: number) => XVString<string>;
33
- tuple: (type: XVInstanceType[]) => XVTuple<any[]>;
34
- union: (type: XVInstanceType[]) => XVUnion<any>;
35
- json: () => XVJson;
36
- };
37
- type Infer<T> = T extends XanvType<infer U> ? U : T extends XVString ? string : T extends XVNumber ? number : T extends XVBoolean ? boolean : T extends XVDate ? Date : T extends XVAny ? any : T extends XVFile ? File | Blob : T extends XVEnum ? (string | number) : T extends XVArray ? any[] : T extends XVTuple ? any[] : T extends XVUnion ? any : T extends XVMap ? Map<any, any> : T extends XVSet ? Set<any> : T extends XVRecord ? Record<string, any> : T extends XVJson ? object : T extends XVObject ? (T extends {
38
- arg?: infer O;
39
- } ? {
40
- [K in keyof O]: Infer<O[K]>;
41
- } : any) : T extends object ? {
42
- [K in keyof T]: Infer<T[K]>;
20
+ declare const xanv: {
21
+ any: () => XVAny<any>;
22
+ array: (type: XVInstanceType, length?: number) => XVArray<any>;
23
+ boolean: () => XVBoolean;
24
+ date: () => XVDate<Date>;
25
+ enum: (values: XVEnumValues) => XVEnum<string | number>;
26
+ file: () => XVFile<File | Blob>;
27
+ map: (key: XVInstanceType, value: XVInstanceType) => XVMap<any, any>;
28
+ number: (length?: number) => XVNumber<number>;
29
+ object: (arg?: XVObjectType) => XVObject<any>;
30
+ record: (key: XVInstanceType, value: XVInstanceType) => XVRecord<string, any>;
31
+ set: (type: XVInstanceType) => XVSet<any>;
32
+ string: (length?: number) => XVString<string>;
33
+ tuple: (type: XVInstanceType[]) => XVTuple<any[]>;
34
+ union: (type: XVInstanceType[]) => XVUnion<any>;
35
+ json: () => XVJson;
36
+ };
37
+ type Infer<T> = T extends XanvType<infer U> ? U : T extends XVString ? string : T extends XVNumber ? number : T extends XVBoolean ? boolean : T extends XVDate ? Date : T extends XVAny ? any : T extends XVFile ? File | Blob : T extends XVEnum ? (string | number) : T extends XVArray ? any[] : T extends XVTuple ? any[] : T extends XVUnion ? any : T extends XVMap ? Map<any, any> : T extends XVSet ? Set<any> : T extends XVRecord ? Record<string, any> : T extends XVJson ? object : T extends XVObject ? (T extends {
38
+ arg?: infer O;
39
+ } ? {
40
+ [K in keyof O]: Infer<O[K]>;
41
+ } : any) : T extends object ? {
42
+ [K in keyof T]: Infer<T[K]>;
43
43
  } : any;
44
44
 
45
45
  export { XVAny, XVArray, XVBoolean, XVDate, XVEnum, XVEnumValues, XVFile, XVInstanceType, XVJson, XVMap, XVNumber, XVObject, XVObjectType, XVRecord, XVSet, XVString, XVTuple, XVUnion, XanvType, xanv };
package/index.js CHANGED
@@ -1,17 +1,17 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var XanvType=require('./XanvType.js'),Any=require('./types/Any.js'),Array=require('./types/Array.js'),Boolean=require('./types/Boolean.js'),Date=require('./types/Date.js'),Enum=require('./types/Enum.js'),File=require('./types/File.js'),Map=require('./types/Map.js'),Number=require('./types/Number.js'),Object$1=require('./types/Object.js'),Record=require('./types/Record.js'),Set=require('./types/Set.js'),String=require('./types/String.js'),Tuple=require('./types/Tuple.js'),Union=require('./types/Union.js'),Json=require('./types/Json.js');const xanv = {
2
- any: () => new Any.default(),
3
- array: (type, length) => new Array.default(type, length),
4
- boolean: () => new Boolean.default(),
5
- date: () => new Date.default(),
6
- enum: (values) => new Enum.default(values),
7
- file: () => new File.default(),
8
- map: (key, value) => new Map.default(key, value),
9
- number: (length) => new Number.default(length),
10
- object: (arg) => new Object$1.default(arg),
11
- record: (key, value) => new Record.default(key, value),
12
- set: (type) => new Set.default(type),
13
- string: (length) => new String.default(length),
14
- tuple: (type) => new Tuple.default(type),
15
- union: (type) => new Union.default(type),
16
- json: () => new Json.default(),
1
+ 'use strict';Object.defineProperty(exports,'__esModule',{value:true});var XanvType=require('./XanvType.js'),Any=require('./types/Any.js'),Array=require('./types/Array.js'),Boolean=require('./types/Boolean.js'),Date=require('./types/Date.js'),Enum=require('./types/Enum.js'),File=require('./types/File.js'),Map=require('./types/Map.js'),Number=require('./types/Number.js'),Object$1=require('./types/Object.js'),Record=require('./types/Record.js'),Set=require('./types/Set.js'),String=require('./types/String.js'),Tuple=require('./types/Tuple.js'),Union=require('./types/Union.js'),Json=require('./types/Json.js');const xanv = {
2
+ any: () => new Any.default(),
3
+ array: (type, length) => new Array.default(type, length),
4
+ boolean: () => new Boolean.default(),
5
+ date: () => new Date.default(),
6
+ enum: (values) => new Enum.default(values),
7
+ file: () => new File.default(),
8
+ map: (key, value) => new Map.default(key, value),
9
+ number: (length) => new Number.default(length),
10
+ object: (arg) => new Object$1.default(arg),
11
+ record: (key, value) => new Record.default(key, value),
12
+ set: (type) => new Set.default(type),
13
+ string: (length) => new String.default(length),
14
+ tuple: (type) => new Tuple.default(type),
15
+ union: (type) => new Union.default(type),
16
+ json: () => new Json.default(),
17
17
  };exports.XanvType=XanvType.default;exports.XVAny=Any.default;exports.XVArray=Array.default;exports.XVBoolean=Boolean.default;exports.XVDate=Date.default;exports.XVEnum=Enum.default;exports.XVFile=File.default;exports.XVMap=Map.default;exports.XVNumber=Number.default;exports.XVObject=Object$1.default;exports.XVRecord=Record.default;exports.XVSet=Set.default;exports.XVString=String.default;exports.XVTuple=Tuple.default;exports.XVUnion=Union.default;exports.XVJson=Json.default;exports.xanv=xanv;//# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import XanvType from \"./XanvType\";\r\nimport XVAny from \"./types/Any\";\r\nimport XVArray from \"./types/Array\";\r\nimport XVBoolean from \"./types/Boolean\";\r\nimport XVDate from \"./types/Date\";\r\nimport XVEnum from \"./types/Enum\";\r\nimport XVFile from \"./types/File\";\r\nimport XVMap from \"./types/Map\";\r\nimport XVNumber from \"./types/Number\";\r\nimport XVObject from \"./types/Object\";\r\nimport XVRecord from \"./types/Record\";\r\nimport XVSet from \"./types/Set\";\r\nimport XVString from \"./types/String\";\r\nimport XVTuple from \"./types/Tuple\";\r\nimport XVUnion from \"./types/Union\";\r\nimport XVJson from \"./types/Json\";\r\n\r\nimport {\r\n XVEnumValues,\r\n XVInstanceType,\r\n XVObjectType,\r\n XVCheckCallback,\r\n XVObjectValueType,\r\n} from \"./types\";\r\n\r\nexport type {\r\n XVEnumValues,\r\n XVInstanceType,\r\n XVObjectType,\r\n XVCheckCallback,\r\n XVObjectValueType,\r\n};\r\n\r\nexport {\r\n XanvType,\r\n XVAny,\r\n XVArray,\r\n XVBoolean,\r\n XVDate,\r\n XVEnum,\r\n XVFile,\r\n XVMap,\r\n XVNumber,\r\n XVObject,\r\n XVRecord,\r\n XVSet,\r\n XVString,\r\n XVTuple,\r\n XVUnion,\r\n XVJson,\r\n};\r\n\r\nexport const xanv = {\r\n any: () => new XVAny(),\r\n array: (type: XVInstanceType, length?: number) => new XVArray(type, length),\r\n boolean: () => new XVBoolean(),\r\n date: () => new XVDate(),\r\n enum: (values: XVEnumValues) => new XVEnum(values),\r\n file: () => new XVFile(),\r\n map: (key: XVInstanceType, value: XVInstanceType) => new XVMap(key, value),\r\n number: (length?: number) => new XVNumber(length),\r\n object: (arg?: XVObjectType) => new XVObject(arg),\r\n record: (key: XVInstanceType, value: XVInstanceType) => new XVRecord(key, value),\r\n set: (type: XVInstanceType) => new XVSet(type),\r\n string: (length?: number) => new XVString(length),\r\n tuple: (type: XVInstanceType[]) => new XVTuple(type),\r\n union: (type: XVInstanceType[]) => new XVUnion(type),\r\n json: () => new XVJson(),\r\n}\r\n\r\nexport type Infer<T> =\r\n T extends XanvType<infer U> ? U :\r\n T extends XVString ? string :\r\n T extends XVNumber ? number :\r\n T extends XVBoolean ? boolean :\r\n T extends XVDate ? Date :\r\n T extends XVAny ? any :\r\n T extends XVFile ? File | Blob :\r\n T extends XVEnum ? (string | number) :\r\n T extends XVArray ? any[] :\r\n T extends XVTuple ? any[] :\r\n T extends XVUnion ? any :\r\n T extends XVMap ? Map<any, any> :\r\n T extends XVSet ? Set<any> :\r\n T extends XVRecord ? Record<string, any> :\r\n T extends XVJson ? object :\r\n T extends XVObject ? (T extends { arg?: infer O } ? { [K in keyof O]: Infer<O[K]> } : any) :\r\n T extends object ? { [K in keyof T]: Infer<T[K]> } :\r\n any;\r\n\r\n"],"names":["XVAny","XVArray","XVBoolean","XVDate","XVEnum","XVFile","XVMap","XVNumber","XVObject","XVRecord","XVSet","XVString","XVTuple","XVUnion","XVJson"],"mappings":"omBAoDO,MAAM,IAAI,GAAG;AACjB,IAAA,GAAG,EAAE,MAAM,IAAIA,WAAK,EAAE;AACtB,IAAA,KAAK,EAAE,CAAC,IAAoB,EAAE,MAAe,KAAK,IAAIC,aAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3E,IAAA,OAAO,EAAE,MAAM,IAAIC,eAAS,EAAE;AAC9B,IAAA,IAAI,EAAE,MAAM,IAAIC,YAAM,EAAE;IACxB,IAAI,EAAE,CAAC,MAAoB,KAAK,IAAIC,YAAM,CAAC,MAAM,CAAC;AAClD,IAAA,IAAI,EAAE,MAAM,IAAIC,YAAM,EAAE;AACxB,IAAA,GAAG,EAAE,CAAC,GAAmB,EAAE,KAAqB,KAAK,IAAIC,WAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAC1E,MAAM,EAAE,CAAC,MAAe,KAAK,IAAIC,cAAQ,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,GAAkB,KAAK,IAAIC,gBAAQ,CAAC,GAAG,CAAC;AACjD,IAAA,MAAM,EAAE,CAAC,GAAmB,EAAE,KAAqB,KAAK,IAAIC,cAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IAChF,GAAG,EAAE,CAAC,IAAoB,KAAK,IAAIC,WAAK,CAAC,IAAI,CAAC;IAC9C,MAAM,EAAE,CAAC,MAAe,KAAK,IAAIC,cAAQ,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAAC,IAAsB,KAAK,IAAIC,aAAO,CAAC,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,IAAsB,KAAK,IAAIC,aAAO,CAAC,IAAI,CAAC;AACpD,IAAA,IAAI,EAAE,MAAM,IAAIC,YAAM,EAAE;"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import XanvType from \"./XanvType\";\nimport XVAny from \"./types/Any\";\nimport XVArray from \"./types/Array\";\nimport XVBoolean from \"./types/Boolean\";\nimport XVDate from \"./types/Date\";\nimport XVEnum from \"./types/Enum\";\nimport XVFile from \"./types/File\";\nimport XVMap from \"./types/Map\";\nimport XVNumber from \"./types/Number\";\nimport XVObject from \"./types/Object\";\nimport XVRecord from \"./types/Record\";\nimport XVSet from \"./types/Set\";\nimport XVString from \"./types/String\";\nimport XVTuple from \"./types/Tuple\";\nimport XVUnion from \"./types/Union\";\nimport XVJson from \"./types/Json\";\n\nimport {\n XVEnumValues,\n XVInstanceType,\n XVObjectType,\n XVCheckCallback,\n XVObjectValueType,\n} from \"./types\";\n\nexport type {\n XVEnumValues,\n XVInstanceType,\n XVObjectType,\n XVCheckCallback,\n XVObjectValueType,\n};\n\nexport {\n XanvType,\n XVAny,\n XVArray,\n XVBoolean,\n XVDate,\n XVEnum,\n XVFile,\n XVMap,\n XVNumber,\n XVObject,\n XVRecord,\n XVSet,\n XVString,\n XVTuple,\n XVUnion,\n XVJson,\n};\n\nexport const xanv = {\n any: () => new XVAny(),\n array: (type: XVInstanceType, length?: number) => new XVArray(type, length),\n boolean: () => new XVBoolean(),\n date: () => new XVDate(),\n enum: (values: XVEnumValues) => new XVEnum(values),\n file: () => new XVFile(),\n map: (key: XVInstanceType, value: XVInstanceType) => new XVMap(key, value),\n number: (length?: number) => new XVNumber(length),\n object: (arg?: XVObjectType) => new XVObject(arg),\n record: (key: XVInstanceType, value: XVInstanceType) => new XVRecord(key, value),\n set: (type: XVInstanceType) => new XVSet(type),\n string: (length?: number) => new XVString(length),\n tuple: (type: XVInstanceType[]) => new XVTuple(type),\n union: (type: XVInstanceType[]) => new XVUnion(type),\n json: () => new XVJson(),\n}\n\nexport type Infer<T> =\n T extends XanvType<infer U> ? U :\n T extends XVString ? string :\n T extends XVNumber ? number :\n T extends XVBoolean ? boolean :\n T extends XVDate ? Date :\n T extends XVAny ? any :\n T extends XVFile ? File | Blob :\n T extends XVEnum ? (string | number) :\n T extends XVArray ? any[] :\n T extends XVTuple ? any[] :\n T extends XVUnion ? any :\n T extends XVMap ? Map<any, any> :\n T extends XVSet ? Set<any> :\n T extends XVRecord ? Record<string, any> :\n T extends XVJson ? object :\n T extends XVObject ? (T extends { arg?: infer O } ? { [K in keyof O]: Infer<O[K]> } : any) :\n T extends object ? { [K in keyof T]: Infer<T[K]> } :\n any;\n\n"],"names":["XVAny","XVArray","XVBoolean","XVDate","XVEnum","XVFile","XVMap","XVNumber","XVObject","XVRecord","XVSet","XVString","XVTuple","XVUnion","XVJson"],"mappings":"omBAoDO,MAAM,IAAI,GAAG;AACjB,IAAA,GAAG,EAAE,MAAM,IAAIA,WAAK,EAAE;AACtB,IAAA,KAAK,EAAE,CAAC,IAAoB,EAAE,MAAe,KAAK,IAAIC,aAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3E,IAAA,OAAO,EAAE,MAAM,IAAIC,eAAS,EAAE;AAC9B,IAAA,IAAI,EAAE,MAAM,IAAIC,YAAM,EAAE;IACxB,IAAI,EAAE,CAAC,MAAoB,KAAK,IAAIC,YAAM,CAAC,MAAM,CAAC;AAClD,IAAA,IAAI,EAAE,MAAM,IAAIC,YAAM,EAAE;AACxB,IAAA,GAAG,EAAE,CAAC,GAAmB,EAAE,KAAqB,KAAK,IAAIC,WAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAC1E,MAAM,EAAE,CAAC,MAAe,KAAK,IAAIC,cAAQ,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,GAAkB,KAAK,IAAIC,gBAAQ,CAAC,GAAG,CAAC;AACjD,IAAA,MAAM,EAAE,CAAC,GAAmB,EAAE,KAAqB,KAAK,IAAIC,cAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IAChF,GAAG,EAAE,CAAC,IAAoB,KAAK,IAAIC,WAAK,CAAC,IAAI,CAAC;IAC9C,MAAM,EAAE,CAAC,MAAe,KAAK,IAAIC,cAAQ,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAAC,IAAsB,KAAK,IAAIC,aAAO,CAAC,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,IAAsB,KAAK,IAAIC,aAAO,CAAC,IAAI,CAAC;AACpD,IAAA,IAAI,EAAE,MAAM,IAAIC,YAAM,EAAE;"}
package/index.mjs CHANGED
@@ -1,17 +1,17 @@
1
- export{default as XanvType}from'./XanvType.mjs';import XVAny from'./types/Any.mjs';import XVArray from'./types/Array.mjs';import XVBoolean from'./types/Boolean.mjs';import XVDate from'./types/Date.mjs';import XVEnum from'./types/Enum.mjs';import XVFile from'./types/File.mjs';import XVMap from'./types/Map.mjs';import XVNumber from'./types/Number.mjs';import XVObject from'./types/Object.mjs';import XVRecord from'./types/Record.mjs';import XVSet from'./types/Set.mjs';import XVString from'./types/String.mjs';import XVTuple from'./types/Tuple.mjs';import XVUnion from'./types/Union.mjs';import XVJson from'./types/Json.mjs';const xanv = {
2
- any: () => new XVAny(),
3
- array: (type, length) => new XVArray(type, length),
4
- boolean: () => new XVBoolean(),
5
- date: () => new XVDate(),
6
- enum: (values) => new XVEnum(values),
7
- file: () => new XVFile(),
8
- map: (key, value) => new XVMap(key, value),
9
- number: (length) => new XVNumber(length),
10
- object: (arg) => new XVObject(arg),
11
- record: (key, value) => new XVRecord(key, value),
12
- set: (type) => new XVSet(type),
13
- string: (length) => new XVString(length),
14
- tuple: (type) => new XVTuple(type),
15
- union: (type) => new XVUnion(type),
16
- json: () => new XVJson(),
1
+ export{default as XanvType}from'./XanvType.mjs';import XVAny from'./types/Any.mjs';import XVArray from'./types/Array.mjs';import XVBoolean from'./types/Boolean.mjs';import XVDate from'./types/Date.mjs';import XVEnum from'./types/Enum.mjs';import XVFile from'./types/File.mjs';import XVMap from'./types/Map.mjs';import XVNumber from'./types/Number.mjs';import XVObject from'./types/Object.mjs';import XVRecord from'./types/Record.mjs';import XVSet from'./types/Set.mjs';import XVString from'./types/String.mjs';import XVTuple from'./types/Tuple.mjs';import XVUnion from'./types/Union.mjs';import XVJson from'./types/Json.mjs';const xanv = {
2
+ any: () => new XVAny(),
3
+ array: (type, length) => new XVArray(type, length),
4
+ boolean: () => new XVBoolean(),
5
+ date: () => new XVDate(),
6
+ enum: (values) => new XVEnum(values),
7
+ file: () => new XVFile(),
8
+ map: (key, value) => new XVMap(key, value),
9
+ number: (length) => new XVNumber(length),
10
+ object: (arg) => new XVObject(arg),
11
+ record: (key, value) => new XVRecord(key, value),
12
+ set: (type) => new XVSet(type),
13
+ string: (length) => new XVString(length),
14
+ tuple: (type) => new XVTuple(type),
15
+ union: (type) => new XVUnion(type),
16
+ json: () => new XVJson(),
17
17
  };export{XVAny,XVArray,XVBoolean,XVDate,XVEnum,XVFile,XVJson,XVMap,XVNumber,XVObject,XVRecord,XVSet,XVString,XVTuple,XVUnion,xanv};//# sourceMappingURL=index.mjs.map
package/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import XanvType from \"./XanvType\";\r\nimport XVAny from \"./types/Any\";\r\nimport XVArray from \"./types/Array\";\r\nimport XVBoolean from \"./types/Boolean\";\r\nimport XVDate from \"./types/Date\";\r\nimport XVEnum from \"./types/Enum\";\r\nimport XVFile from \"./types/File\";\r\nimport XVMap from \"./types/Map\";\r\nimport XVNumber from \"./types/Number\";\r\nimport XVObject from \"./types/Object\";\r\nimport XVRecord from \"./types/Record\";\r\nimport XVSet from \"./types/Set\";\r\nimport XVString from \"./types/String\";\r\nimport XVTuple from \"./types/Tuple\";\r\nimport XVUnion from \"./types/Union\";\r\nimport XVJson from \"./types/Json\";\r\n\r\nimport {\r\n XVEnumValues,\r\n XVInstanceType,\r\n XVObjectType,\r\n XVCheckCallback,\r\n XVObjectValueType,\r\n} from \"./types\";\r\n\r\nexport type {\r\n XVEnumValues,\r\n XVInstanceType,\r\n XVObjectType,\r\n XVCheckCallback,\r\n XVObjectValueType,\r\n};\r\n\r\nexport {\r\n XanvType,\r\n XVAny,\r\n XVArray,\r\n XVBoolean,\r\n XVDate,\r\n XVEnum,\r\n XVFile,\r\n XVMap,\r\n XVNumber,\r\n XVObject,\r\n XVRecord,\r\n XVSet,\r\n XVString,\r\n XVTuple,\r\n XVUnion,\r\n XVJson,\r\n};\r\n\r\nexport const xanv = {\r\n any: () => new XVAny(),\r\n array: (type: XVInstanceType, length?: number) => new XVArray(type, length),\r\n boolean: () => new XVBoolean(),\r\n date: () => new XVDate(),\r\n enum: (values: XVEnumValues) => new XVEnum(values),\r\n file: () => new XVFile(),\r\n map: (key: XVInstanceType, value: XVInstanceType) => new XVMap(key, value),\r\n number: (length?: number) => new XVNumber(length),\r\n object: (arg?: XVObjectType) => new XVObject(arg),\r\n record: (key: XVInstanceType, value: XVInstanceType) => new XVRecord(key, value),\r\n set: (type: XVInstanceType) => new XVSet(type),\r\n string: (length?: number) => new XVString(length),\r\n tuple: (type: XVInstanceType[]) => new XVTuple(type),\r\n union: (type: XVInstanceType[]) => new XVUnion(type),\r\n json: () => new XVJson(),\r\n}\r\n\r\nexport type Infer<T> =\r\n T extends XanvType<infer U> ? U :\r\n T extends XVString ? string :\r\n T extends XVNumber ? number :\r\n T extends XVBoolean ? boolean :\r\n T extends XVDate ? Date :\r\n T extends XVAny ? any :\r\n T extends XVFile ? File | Blob :\r\n T extends XVEnum ? (string | number) :\r\n T extends XVArray ? any[] :\r\n T extends XVTuple ? any[] :\r\n T extends XVUnion ? any :\r\n T extends XVMap ? Map<any, any> :\r\n T extends XVSet ? Set<any> :\r\n T extends XVRecord ? Record<string, any> :\r\n T extends XVJson ? object :\r\n T extends XVObject ? (T extends { arg?: infer O } ? { [K in keyof O]: Infer<O[K]> } : any) :\r\n T extends object ? { [K in keyof T]: Infer<T[K]> } :\r\n any;\r\n\r\n"],"names":[],"mappings":"inBAoDO,MAAM,IAAI,GAAG;AACjB,IAAA,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE;AACtB,IAAA,KAAK,EAAE,CAAC,IAAoB,EAAE,MAAe,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3E,IAAA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE;AAC9B,IAAA,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE;IACxB,IAAI,EAAE,CAAC,MAAoB,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;AAClD,IAAA,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE;AACxB,IAAA,GAAG,EAAE,CAAC,GAAmB,EAAE,KAAqB,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAC1E,MAAM,EAAE,CAAC,MAAe,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,GAAkB,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC;AACjD,IAAA,MAAM,EAAE,CAAC,GAAmB,EAAE,KAAqB,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IAChF,GAAG,EAAE,CAAC,IAAoB,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;IAC9C,MAAM,EAAE,CAAC,MAAe,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAAC,IAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,IAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;AACpD,IAAA,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE;"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import XanvType from \"./XanvType\";\nimport XVAny from \"./types/Any\";\nimport XVArray from \"./types/Array\";\nimport XVBoolean from \"./types/Boolean\";\nimport XVDate from \"./types/Date\";\nimport XVEnum from \"./types/Enum\";\nimport XVFile from \"./types/File\";\nimport XVMap from \"./types/Map\";\nimport XVNumber from \"./types/Number\";\nimport XVObject from \"./types/Object\";\nimport XVRecord from \"./types/Record\";\nimport XVSet from \"./types/Set\";\nimport XVString from \"./types/String\";\nimport XVTuple from \"./types/Tuple\";\nimport XVUnion from \"./types/Union\";\nimport XVJson from \"./types/Json\";\n\nimport {\n XVEnumValues,\n XVInstanceType,\n XVObjectType,\n XVCheckCallback,\n XVObjectValueType,\n} from \"./types\";\n\nexport type {\n XVEnumValues,\n XVInstanceType,\n XVObjectType,\n XVCheckCallback,\n XVObjectValueType,\n};\n\nexport {\n XanvType,\n XVAny,\n XVArray,\n XVBoolean,\n XVDate,\n XVEnum,\n XVFile,\n XVMap,\n XVNumber,\n XVObject,\n XVRecord,\n XVSet,\n XVString,\n XVTuple,\n XVUnion,\n XVJson,\n};\n\nexport const xanv = {\n any: () => new XVAny(),\n array: (type: XVInstanceType, length?: number) => new XVArray(type, length),\n boolean: () => new XVBoolean(),\n date: () => new XVDate(),\n enum: (values: XVEnumValues) => new XVEnum(values),\n file: () => new XVFile(),\n map: (key: XVInstanceType, value: XVInstanceType) => new XVMap(key, value),\n number: (length?: number) => new XVNumber(length),\n object: (arg?: XVObjectType) => new XVObject(arg),\n record: (key: XVInstanceType, value: XVInstanceType) => new XVRecord(key, value),\n set: (type: XVInstanceType) => new XVSet(type),\n string: (length?: number) => new XVString(length),\n tuple: (type: XVInstanceType[]) => new XVTuple(type),\n union: (type: XVInstanceType[]) => new XVUnion(type),\n json: () => new XVJson(),\n}\n\nexport type Infer<T> =\n T extends XanvType<infer U> ? U :\n T extends XVString ? string :\n T extends XVNumber ? number :\n T extends XVBoolean ? boolean :\n T extends XVDate ? Date :\n T extends XVAny ? any :\n T extends XVFile ? File | Blob :\n T extends XVEnum ? (string | number) :\n T extends XVArray ? any[] :\n T extends XVTuple ? any[] :\n T extends XVUnion ? any :\n T extends XVMap ? Map<any, any> :\n T extends XVSet ? Set<any> :\n T extends XVRecord ? Record<string, any> :\n T extends XVJson ? object :\n T extends XVObject ? (T extends { arg?: infer O } ? { [K in keyof O]: Infer<O[K]> } : any) :\n T extends object ? { [K in keyof T]: Infer<T[K]> } :\n any;\n\n"],"names":[],"mappings":"inBAoDO,MAAM,IAAI,GAAG;AACjB,IAAA,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE;AACtB,IAAA,KAAK,EAAE,CAAC,IAAoB,EAAE,MAAe,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3E,IAAA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE;AAC9B,IAAA,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE;IACxB,IAAI,EAAE,CAAC,MAAoB,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC;AAClD,IAAA,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE;AACxB,IAAA,GAAG,EAAE,CAAC,GAAmB,EAAE,KAAqB,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;IAC1E,MAAM,EAAE,CAAC,MAAe,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,GAAkB,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC;AACjD,IAAA,MAAM,EAAE,CAAC,GAAmB,EAAE,KAAqB,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IAChF,GAAG,EAAE,CAAC,IAAoB,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;IAC9C,MAAM,EAAE,CAAC,MAAe,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAAC,IAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,IAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;AACpD,IAAA,IAAI,EAAE,MAAM,IAAI,MAAM,EAAE;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xanv",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "types": "./index.d.ts",
5
5
  "main": "./index.js",
6
6
  "module": "./index.mjs",