xanv 1.1.7 → 1.1.9
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/XanvType.d.ts +1 -1
- package/XanvType.js.map +1 -1
- package/XanvType.mjs.map +1 -1
- package/index.d.ts +3 -3
- package/package.json +1 -1
- package/types/Array.d.ts +1 -1
- package/types/Array.js.map +1 -1
- package/types/Array.mjs.map +1 -1
- package/types/Enum.js +6 -1
- package/types/Enum.js.map +1 -1
- package/types/Enum.mjs +6 -1
- package/types/Enum.mjs.map +1 -1
- package/types/Number.js.map +1 -1
- package/types/Number.mjs.map +1 -1
- package/types/Object.d.ts +1 -1
- package/types/Object.js.map +1 -1
- package/types/Object.mjs.map +1 -1
- package/types/Set.d.ts +1 -1
- package/types/Set.js.map +1 -1
- package/types/Set.mjs.map +1 -1
- package/types.d.ts +2 -2
package/XanvType.d.ts
CHANGED
package/XanvType.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}
|
|
1
|
+
{"version":3,"file":"XanvType.js","sources":["../src/XanvType.ts"],"sourcesContent":["import { XanvTransformCallback, XVCheckCallback } from \"./types\";\n\nabstract class XanvType<Value = any> {\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.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}
|
|
1
|
+
{"version":3,"file":"XanvType.mjs","sources":["../src/XanvType.ts"],"sourcesContent":["import { XanvTransformCallback, XVCheckCallback } from \"./types\";\n\nabstract class XanvType<Value = any> {\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
|
@@ -19,16 +19,16 @@ export { XVCheckCallback, XVObjectValueType } from './types.js';
|
|
|
19
19
|
|
|
20
20
|
declare const xanv: {
|
|
21
21
|
any: () => XVAny<any>;
|
|
22
|
-
array: (type: XVInstanceType, length?: number) => XVArray<any>;
|
|
22
|
+
array: (type: XVInstanceType, length?: number) => XVArray<any[]>;
|
|
23
23
|
boolean: () => XVBoolean;
|
|
24
24
|
date: () => XVDate<Date>;
|
|
25
25
|
enum: (values: XVEnumValues) => XVEnum<string | number>;
|
|
26
26
|
file: () => XVFile<File | Blob>;
|
|
27
27
|
map: (key: XVInstanceType, value: XVInstanceType) => XVMap<any, any>;
|
|
28
28
|
number: (length?: number) => XVNumber<number>;
|
|
29
|
-
object: (arg?: XVObjectType) => XVObject<any
|
|
29
|
+
object: (arg?: XVObjectType) => XVObject<Record<any, any>>;
|
|
30
30
|
record: (key: XVInstanceType, value: XVInstanceType) => XVRecord<string, any>;
|
|
31
|
-
set: (type: XVInstanceType) => XVSet<
|
|
31
|
+
set: (type: XVInstanceType) => XVSet<unknown>;
|
|
32
32
|
string: (length?: number) => XVString<string>;
|
|
33
33
|
tuple: (type: XVInstanceType[]) => XVTuple<any[]>;
|
|
34
34
|
union: (type: XVInstanceType[]) => XVUnion<any>;
|
package/package.json
CHANGED
package/types/Array.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import XanvType from '../XanvType.js';
|
|
2
2
|
import { XVInstanceType } from '../types.js';
|
|
3
3
|
|
|
4
|
-
declare class XVArray<T = any> extends XanvType<T[]> {
|
|
4
|
+
declare class XVArray<T = any[]> extends XanvType<T[]> {
|
|
5
5
|
private type?;
|
|
6
6
|
private length?;
|
|
7
7
|
constructor(type?: XVInstanceType, length?: number);
|
package/types/Array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.js","sources":["../../src/types/Array.ts"],"sourcesContent":["\nimport XVMap from \"./Map\";\nimport XVObject from \"./Object\";\nimport XVRecord from \"./Record\";\nimport XanvType from \"../XanvType\";\nimport { XVInstanceType } from \"../types\";\n\nclass XVArray<T = any> extends XanvType<T[]> {\n private type?: XVInstanceType;\n private length?: number;\n constructor(type?: XVInstanceType, length?: number) {\n super();\n this.type = type;\n this.length = length;\n }\n\n protected check(value: any): void {\n let _value = value;\n if (!Array.isArray(value)) {\n throw new Error(`Value should be an array, received ${typeof value}`);\n }\n\n if (this.length !== undefined && value.length !== this.length) {\n throw new Error(`Array length should be ${this.length}, received ${value.length}`);\n }\n\n if (this.type) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n try {\n _value[i] = this.type.parse(item);\n } catch (error: any) {\n throw new Error(`Array item at index ${i} should be of type ${this.type.constructor.name}, received ${typeof item}: ${error.message}`);\n }\n }\n }\n return _value;\n }\n\n min(length: number) {\n return this.set(\"min\", v => {\n if (v.length < length) {\n throw new Error(`Array length should be at least ${length} items, received ${v.length}`)\n }\n }, length);\n }\n\n max(length: number) {\n return this.set(\"max\", v => {\n if (v.length > length) {\n throw new Error(`Array length should not exceed ${length} items, received ${v.length}`)\n }\n }, length);\n }\n\n unique() {\n return this.set(\"unique\", v => {\n let format: any = []\n for (let i = 0; i < v.length; i++) {\n if (this.type instanceof XVObject || this.type instanceof XVRecord) {\n const u = JSON.stringify(v[i]);\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n } else if (this.type instanceof XVArray) {\n const u = JSON.stringify(v[i]);\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n } else if (this.type instanceof XVMap) {\n const u = JSON.stringify(Array.from(v.entries()));\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n }\n }\n\n const uitems = new Set(v);\n if (uitems.size !== v.length) {\n throw new Error(`Array items should be unique, found duplicates`);\n }\n });\n }\n}\n\nexport default XVArray;"],"names":["XanvType","XVObject","XVRecord","XVMap"],"mappings":"mMAOA,MAAM,
|
|
1
|
+
{"version":3,"file":"Array.js","sources":["../../src/types/Array.ts"],"sourcesContent":["\nimport XVMap from \"./Map\";\nimport XVObject from \"./Object\";\nimport XVRecord from \"./Record\";\nimport XanvType from \"../XanvType\";\nimport { XVInstanceType } from \"../types\";\n\nclass XVArray<T = any[]> extends XanvType<T[]> {\n private type?: XVInstanceType;\n private length?: number;\n constructor(type?: XVInstanceType, length?: number) {\n super();\n this.type = type;\n this.length = length;\n }\n\n protected check(value: any): void {\n let _value = value;\n if (!Array.isArray(value)) {\n throw new Error(`Value should be an array, received ${typeof value}`);\n }\n\n if (this.length !== undefined && value.length !== this.length) {\n throw new Error(`Array length should be ${this.length}, received ${value.length}`);\n }\n\n if (this.type) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n try {\n _value[i] = this.type.parse(item);\n } catch (error: any) {\n throw new Error(`Array item at index ${i} should be of type ${this.type.constructor.name}, received ${typeof item}: ${error.message}`);\n }\n }\n }\n return _value;\n }\n\n min(length: number) {\n return this.set(\"min\", v => {\n if (v.length < length) {\n throw new Error(`Array length should be at least ${length} items, received ${v.length}`)\n }\n }, length);\n }\n\n max(length: number) {\n return this.set(\"max\", v => {\n if (v.length > length) {\n throw new Error(`Array length should not exceed ${length} items, received ${v.length}`)\n }\n }, length);\n }\n\n unique() {\n return this.set(\"unique\", v => {\n let format: any = []\n for (let i = 0; i < v.length; i++) {\n if (this.type instanceof XVObject || this.type instanceof XVRecord) {\n const u = JSON.stringify(v[i]);\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n } else if (this.type instanceof XVArray) {\n const u = JSON.stringify(v[i]);\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n } else if (this.type instanceof XVMap) {\n const u = JSON.stringify(Array.from(v.entries()));\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n }\n }\n\n const uitems = new Set(v);\n if (uitems.size !== v.length) {\n throw new Error(`Array items should be unique, found duplicates`);\n }\n });\n }\n}\n\nexport default XVArray;"],"names":["XanvType","XVObject","XVRecord","XVMap"],"mappings":"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"}
|
package/types/Array.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.mjs","sources":["../../src/types/Array.ts"],"sourcesContent":["\nimport XVMap from \"./Map\";\nimport XVObject from \"./Object\";\nimport XVRecord from \"./Record\";\nimport XanvType from \"../XanvType\";\nimport { XVInstanceType } from \"../types\";\n\nclass XVArray<T = any> extends XanvType<T[]> {\n private type?: XVInstanceType;\n private length?: number;\n constructor(type?: XVInstanceType, length?: number) {\n super();\n this.type = type;\n this.length = length;\n }\n\n protected check(value: any): void {\n let _value = value;\n if (!Array.isArray(value)) {\n throw new Error(`Value should be an array, received ${typeof value}`);\n }\n\n if (this.length !== undefined && value.length !== this.length) {\n throw new Error(`Array length should be ${this.length}, received ${value.length}`);\n }\n\n if (this.type) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n try {\n _value[i] = this.type.parse(item);\n } catch (error: any) {\n throw new Error(`Array item at index ${i} should be of type ${this.type.constructor.name}, received ${typeof item}: ${error.message}`);\n }\n }\n }\n return _value;\n }\n\n min(length: number) {\n return this.set(\"min\", v => {\n if (v.length < length) {\n throw new Error(`Array length should be at least ${length} items, received ${v.length}`)\n }\n }, length);\n }\n\n max(length: number) {\n return this.set(\"max\", v => {\n if (v.length > length) {\n throw new Error(`Array length should not exceed ${length} items, received ${v.length}`)\n }\n }, length);\n }\n\n unique() {\n return this.set(\"unique\", v => {\n let format: any = []\n for (let i = 0; i < v.length; i++) {\n if (this.type instanceof XVObject || this.type instanceof XVRecord) {\n const u = JSON.stringify(v[i]);\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n } else if (this.type instanceof XVArray) {\n const u = JSON.stringify(v[i]);\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n } else if (this.type instanceof XVMap) {\n const u = JSON.stringify(Array.from(v.entries()));\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n }\n }\n\n const uitems = new Set(v);\n if (uitems.size !== v.length) {\n throw new Error(`Array items should be unique, found duplicates`);\n }\n });\n }\n}\n\nexport default XVArray;"],"names":[],"mappings":"yIAOA,MAAM,
|
|
1
|
+
{"version":3,"file":"Array.mjs","sources":["../../src/types/Array.ts"],"sourcesContent":["\nimport XVMap from \"./Map\";\nimport XVObject from \"./Object\";\nimport XVRecord from \"./Record\";\nimport XanvType from \"../XanvType\";\nimport { XVInstanceType } from \"../types\";\n\nclass XVArray<T = any[]> extends XanvType<T[]> {\n private type?: XVInstanceType;\n private length?: number;\n constructor(type?: XVInstanceType, length?: number) {\n super();\n this.type = type;\n this.length = length;\n }\n\n protected check(value: any): void {\n let _value = value;\n if (!Array.isArray(value)) {\n throw new Error(`Value should be an array, received ${typeof value}`);\n }\n\n if (this.length !== undefined && value.length !== this.length) {\n throw new Error(`Array length should be ${this.length}, received ${value.length}`);\n }\n\n if (this.type) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n try {\n _value[i] = this.type.parse(item);\n } catch (error: any) {\n throw new Error(`Array item at index ${i} should be of type ${this.type.constructor.name}, received ${typeof item}: ${error.message}`);\n }\n }\n }\n return _value;\n }\n\n min(length: number) {\n return this.set(\"min\", v => {\n if (v.length < length) {\n throw new Error(`Array length should be at least ${length} items, received ${v.length}`)\n }\n }, length);\n }\n\n max(length: number) {\n return this.set(\"max\", v => {\n if (v.length > length) {\n throw new Error(`Array length should not exceed ${length} items, received ${v.length}`)\n }\n }, length);\n }\n\n unique() {\n return this.set(\"unique\", v => {\n let format: any = []\n for (let i = 0; i < v.length; i++) {\n if (this.type instanceof XVObject || this.type instanceof XVRecord) {\n const u = JSON.stringify(v[i]);\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n } else if (this.type instanceof XVArray) {\n const u = JSON.stringify(v[i]);\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n } else if (this.type instanceof XVMap) {\n const u = JSON.stringify(Array.from(v.entries()));\n if (format.includes(u)) {\n throw new Error(`Array items should be unique, found duplicate: ${u}`);\n } else {\n format.push(u);\n }\n }\n }\n\n const uitems = new Set(v);\n if (uitems.size !== v.length) {\n throw new Error(`Array items should be unique, found duplicates`);\n }\n });\n }\n}\n\nexport default XVArray;"],"names":[],"mappings":"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"}
|
package/types/Enum.js
CHANGED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
constructor(values) {
|
|
3
3
|
super();
|
|
4
4
|
if (typeof values === 'object' && !Array.isArray(values) && values !== null) {
|
|
5
|
-
values = Object.
|
|
5
|
+
values = Object.values(values).map(v => {
|
|
6
|
+
if (typeof v !== 'string' && typeof v !== 'number') {
|
|
7
|
+
throw new Error("Enum values must be strings or numbers");
|
|
8
|
+
}
|
|
9
|
+
return v;
|
|
10
|
+
});
|
|
6
11
|
}
|
|
7
12
|
if (!Array.isArray(values) || values.length === 0) {
|
|
8
13
|
throw new Error("Enum values must be a non-empty array");
|
package/types/Enum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Enum.js","sources":["../../src/types/Enum.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVEnumValues } from \"../types\";\n\nclass XVEnum<T extends string | number = string | number> extends XanvType<T> {\n private values: (string | number)[];\n\n constructor(values: XVEnumValues) {\n super();\n if (typeof values === 'object' && !Array.isArray(values) && values !== null) {\n values = Object.
|
|
1
|
+
{"version":3,"file":"Enum.js","sources":["../../src/types/Enum.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVEnumValues } from \"../types\";\n\nclass XVEnum<T extends string | number = string | number> extends XanvType<T> {\n private values: (string | number)[];\n\n constructor(values: XVEnumValues) {\n super();\n if (typeof values === 'object' && !Array.isArray(values) && values !== null) {\n values = Object.values(values).map(v => {\n if (typeof v !== 'string' && typeof v !== 'number') {\n throw new Error(\"Enum values must be strings or numbers\");\n }\n return v;\n });\n }\n if (!Array.isArray(values) || values.length === 0) {\n throw new Error(\"Enum values must be a non-empty array\");\n }\n this.values = values;\n }\n\n protected check(value: any): void {\n if (typeof value !== 'string' && typeof value !== 'number') {\n throw new Error(`Value should be a string or number, received ${typeof value}`);\n }\n\n if (!this.values.includes(value)) {\n throw new Error(`Value should be one of the enum values: ${this.values.join(', ')}`);\n }\n }\n\n}\n\nexport default XVEnum;"],"names":["XanvType"],"mappings":"6GAGA,MAAM,MAAoD,SAAQA,gBAAW,CAAA;AAG1E,IAAA,WAAA,CAAY,MAAoB,EAAA;AAC7B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;AAC1E,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;gBACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjD,oBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AAC3D,gBAAA;AACD,gBAAA,OAAO,CAAC;AACX,YAAA,CAAC,CAAC;AACJ,QAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AAC1D,QAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACvB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,CAAA,6CAAA,EAAgD,OAAO,KAAK,CAAA,CAAE,CAAC;AACjF,QAAA;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,wCAAA,EAA2C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACtF,QAAA;IACJ;AAEF"}
|
package/types/Enum.mjs
CHANGED
|
@@ -2,7 +2,12 @@ import XanvType from'../XanvType.mjs';class XVEnum extends XanvType {
|
|
|
2
2
|
constructor(values) {
|
|
3
3
|
super();
|
|
4
4
|
if (typeof values === 'object' && !Array.isArray(values) && values !== null) {
|
|
5
|
-
values = Object.
|
|
5
|
+
values = Object.values(values).map(v => {
|
|
6
|
+
if (typeof v !== 'string' && typeof v !== 'number') {
|
|
7
|
+
throw new Error("Enum values must be strings or numbers");
|
|
8
|
+
}
|
|
9
|
+
return v;
|
|
10
|
+
});
|
|
6
11
|
}
|
|
7
12
|
if (!Array.isArray(values) || values.length === 0) {
|
|
8
13
|
throw new Error("Enum values must be a non-empty array");
|
package/types/Enum.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Enum.mjs","sources":["../../src/types/Enum.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVEnumValues } from \"../types\";\n\nclass XVEnum<T extends string | number = string | number> extends XanvType<T> {\n private values: (string | number)[];\n\n constructor(values: XVEnumValues) {\n super();\n if (typeof values === 'object' && !Array.isArray(values) && values !== null) {\n values = Object.
|
|
1
|
+
{"version":3,"file":"Enum.mjs","sources":["../../src/types/Enum.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVEnumValues } from \"../types\";\n\nclass XVEnum<T extends string | number = string | number> extends XanvType<T> {\n private values: (string | number)[];\n\n constructor(values: XVEnumValues) {\n super();\n if (typeof values === 'object' && !Array.isArray(values) && values !== null) {\n values = Object.values(values).map(v => {\n if (typeof v !== 'string' && typeof v !== 'number') {\n throw new Error(\"Enum values must be strings or numbers\");\n }\n return v;\n });\n }\n if (!Array.isArray(values) || values.length === 0) {\n throw new Error(\"Enum values must be a non-empty array\");\n }\n this.values = values;\n }\n\n protected check(value: any): void {\n if (typeof value !== 'string' && typeof value !== 'number') {\n throw new Error(`Value should be a string or number, received ${typeof value}`);\n }\n\n if (!this.values.includes(value)) {\n throw new Error(`Value should be one of the enum values: ${this.values.join(', ')}`);\n }\n }\n\n}\n\nexport default XVEnum;"],"names":[],"mappings":"sCAGA,MAAM,MAAoD,SAAQ,QAAW,CAAA;AAG1E,IAAA,WAAA,CAAY,MAAoB,EAAA;AAC7B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE;AAC1E,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;gBACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AACjD,oBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AAC3D,gBAAA;AACD,gBAAA,OAAO,CAAC;AACX,YAAA,CAAC,CAAC;AACJ,QAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;AAC1D,QAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACvB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,CAAA,6CAAA,EAAgD,OAAO,KAAK,CAAA,CAAE,CAAC;AACjF,QAAA;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,wCAAA,EAA2C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAAC;AACtF,QAAA;IACJ;AAEF"}
|
package/types/Number.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Number.js","sources":["../../src/types/Number.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\
|
|
1
|
+
{"version":3,"file":"Number.js","sources":["../../src/types/Number.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\n\nclass XVNumber<T extends number = number> extends XanvType<T> {\n\n constructor(length?: number) {\n super();\n if (length) {\n this.length(length);\n }\n }\n\n protected check(value: any): void {\n if (typeof value !== 'number') {\n throw new Error(`Value should be a number, received ${typeof value}`);\n }\n }\n\n length(value: number) {\n return this.set(\"length\", (v: any) => {\n const n = Number(v);\n if (n.toString().length !== value) {\n throw new Error(`Number length should be ${value} digits, received ${n.toString().length}`);\n }\n }, value);\n }\n\n min(value: number) {\n return this.set(\"min\", (v: any) => {\n const n = Number(v);\n if (n < value) {\n throw new Error(`Minimum value should be ${value}`);\n }\n }, value);\n }\n\n max(value: number) {\n return this.set(\"max\", (v: any) => {\n const n = Number(v);\n if (n > value) {\n throw new Error(`Maximum value should be ${value}`);\n }\n }, value);\n }\n\n positive() {\n return this.set(\"positive\", (v: any) => {\n const n = Number(v);\n if (n < 0) {\n throw new Error(`Value should be positive`);\n }\n });\n }\n\n negative() {\n return this.set(\"negative\", (v: any) => {\n const n = Number(v);\n if (n > 0) {\n throw new Error(`Value should be negative`);\n }\n });\n }\n\n integer() {\n return this.set(\"integer\", v => {\n if (!Number.isInteger(v)) {\n throw new Error(`Value should be an integer`);\n }\n });\n }\n\n float() {\n return this.set(\"float\", v => {\n if (!Number.isFinite(v) || Number.isInteger(v)) {\n throw new Error(`Value should be a float`);\n }\n });\n }\n\n}\n\nexport default XVNumber;"],"names":["XanvType"],"mappings":"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"}
|
package/types/Number.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Number.mjs","sources":["../../src/types/Number.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\
|
|
1
|
+
{"version":3,"file":"Number.mjs","sources":["../../src/types/Number.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\n\nclass XVNumber<T extends number = number> extends XanvType<T> {\n\n constructor(length?: number) {\n super();\n if (length) {\n this.length(length);\n }\n }\n\n protected check(value: any): void {\n if (typeof value !== 'number') {\n throw new Error(`Value should be a number, received ${typeof value}`);\n }\n }\n\n length(value: number) {\n return this.set(\"length\", (v: any) => {\n const n = Number(v);\n if (n.toString().length !== value) {\n throw new Error(`Number length should be ${value} digits, received ${n.toString().length}`);\n }\n }, value);\n }\n\n min(value: number) {\n return this.set(\"min\", (v: any) => {\n const n = Number(v);\n if (n < value) {\n throw new Error(`Minimum value should be ${value}`);\n }\n }, value);\n }\n\n max(value: number) {\n return this.set(\"max\", (v: any) => {\n const n = Number(v);\n if (n > value) {\n throw new Error(`Maximum value should be ${value}`);\n }\n }, value);\n }\n\n positive() {\n return this.set(\"positive\", (v: any) => {\n const n = Number(v);\n if (n < 0) {\n throw new Error(`Value should be positive`);\n }\n });\n }\n\n negative() {\n return this.set(\"negative\", (v: any) => {\n const n = Number(v);\n if (n > 0) {\n throw new Error(`Value should be negative`);\n }\n });\n }\n\n integer() {\n return this.set(\"integer\", v => {\n if (!Number.isInteger(v)) {\n throw new Error(`Value should be an integer`);\n }\n });\n }\n\n float() {\n return this.set(\"float\", v => {\n if (!Number.isFinite(v) || Number.isInteger(v)) {\n throw new Error(`Value should be a float`);\n }\n });\n }\n\n}\n\nexport default XVNumber;"],"names":[],"mappings":"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"}
|
package/types/Object.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import XanvType from '../XanvType.js';
|
|
2
2
|
import { XVObjectType } from '../types.js';
|
|
3
3
|
|
|
4
|
-
declare class XVObject<T = any
|
|
4
|
+
declare class XVObject<T = Record<any, any>> extends XanvType<T> {
|
|
5
5
|
private arg?;
|
|
6
6
|
constructor(arg?: XVObjectType);
|
|
7
7
|
protected check(value: any): void;
|
package/types/Object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Object.js","sources":["../../src/types/Object.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVObjectType } from \"../types\";\n\nclass XVObject<T = any
|
|
1
|
+
{"version":3,"file":"Object.js","sources":["../../src/types/Object.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVObjectType } from \"../types\";\n\nclass XVObject<T = Record<any, any>> extends XanvType<T> {\n private arg?: XVObjectType;\n\n constructor(arg?: XVObjectType) {\n super();\n if (arg && (typeof arg !== 'object' || arg === null || Array.isArray(arg))) {\n throw new Error(\"Argument should be a non-null object\");\n }\n this.arg = arg;\n }\n\n protected check(value: any): void {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new Error(`Value should be an object, received ${typeof value}`);\n }\n\n if (this.arg) {\n for (const key in this.arg) {\n const itemType = this.arg[key];\n try {\n value[key] = itemType.parse(value[key]);\n } catch (error: any) {\n throw new Error(`Property '${key}' should be of type ${itemType.constructor.name}, received ${typeof value[key]}`);\n }\n }\n }\n return value;\n }\n\n}\n\nexport default XVObject;\n"],"names":["XanvType"],"mappings":"6GAGA,MAAM,QAA+B,SAAQA,gBAAW,CAAA;AAGrD,IAAA,WAAA,CAAY,GAAkB,EAAA;AAC3B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AACzE,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AACzD,QAAA;AACD,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IACjB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtE,MAAM,IAAI,KAAK,CAAC,CAAA,oCAAA,EAAuC,OAAO,KAAK,CAAA,CAAE,CAAC;AACxE,QAAA;QAED,IAAI,IAAI,CAAC,GAAG,EAAE;AACX,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC9B,IAAI;AACD,oBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzC,gBAAA;AAAC,gBAAA,OAAO,KAAU,EAAE;AAClB,oBAAA,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAA,oBAAA,EAAuB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AACpH,gBAAA;AACH,YAAA;AACH,QAAA;AACD,QAAA,OAAO,KAAK;IACf;AAEF"}
|
package/types/Object.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Object.mjs","sources":["../../src/types/Object.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVObjectType } from \"../types\";\n\nclass XVObject<T = any
|
|
1
|
+
{"version":3,"file":"Object.mjs","sources":["../../src/types/Object.ts"],"sourcesContent":["import XanvType from \"../XanvType\";\nimport { XVObjectType } from \"../types\";\n\nclass XVObject<T = Record<any, any>> extends XanvType<T> {\n private arg?: XVObjectType;\n\n constructor(arg?: XVObjectType) {\n super();\n if (arg && (typeof arg !== 'object' || arg === null || Array.isArray(arg))) {\n throw new Error(\"Argument should be a non-null object\");\n }\n this.arg = arg;\n }\n\n protected check(value: any): void {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n throw new Error(`Value should be an object, received ${typeof value}`);\n }\n\n if (this.arg) {\n for (const key in this.arg) {\n const itemType = this.arg[key];\n try {\n value[key] = itemType.parse(value[key]);\n } catch (error: any) {\n throw new Error(`Property '${key}' should be of type ${itemType.constructor.name}, received ${typeof value[key]}`);\n }\n }\n }\n return value;\n }\n\n}\n\nexport default XVObject;\n"],"names":[],"mappings":"sCAGA,MAAM,QAA+B,SAAQ,QAAW,CAAA;AAGrD,IAAA,WAAA,CAAY,GAAkB,EAAA;AAC3B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AACzE,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AACzD,QAAA;AACD,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;IACjB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtE,MAAM,IAAI,KAAK,CAAC,CAAA,oCAAA,EAAuC,OAAO,KAAK,CAAA,CAAE,CAAC;AACxE,QAAA;QAED,IAAI,IAAI,CAAC,GAAG,EAAE;AACX,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC9B,IAAI;AACD,oBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACzC,gBAAA;AAAC,gBAAA,OAAO,KAAU,EAAE;AAClB,oBAAA,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,CAAA,oBAAA,EAAuB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,KAAK,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC;AACpH,gBAAA;AACH,YAAA;AACH,QAAA;AACD,QAAA,OAAO,KAAK;IACf;AAEF"}
|
package/types/Set.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { XVInstanceType } from '../types.js';
|
|
2
2
|
import XanvType from '../XanvType.js';
|
|
3
3
|
|
|
4
|
-
declare class XVSet<T =
|
|
4
|
+
declare class XVSet<T = unknown> extends XanvType<Set<T>> {
|
|
5
5
|
private XVtype;
|
|
6
6
|
constructor(XVtype: XVInstanceType);
|
|
7
7
|
protected check(value: any): void;
|
package/types/Set.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Set.js","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVSet<T =
|
|
1
|
+
{"version":3,"file":"Set.js","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVSet<T = unknown> extends XanvType<Set<T>> {\n\n private XVtype: XVInstanceType;\n\n constructor(XVtype: XVInstanceType) {\n super();\n this.XVtype = XVtype;\n }\n\n protected check(value: any): void {\n if (!(value instanceof Set)) {\n throw new Error(`Value should be a Set, received ${typeof value}`);\n }\n\n for (const item of Array.from(value)) {\n try {\n this.XVtype.parse(item);\n } catch (error) {\n throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);\n }\n }\n }\n\n min(length: number) {\n return this.set(\"min\", (v: any) => {\n if (v.size < length) {\n throw new Error(`Set size should be at least ${length} items, received ${v.size}`);\n }\n }, length);\n }\n\n max(length: number) {\n return this.set(\"max\", (v: any) => {\n if (v.size > length) {\n throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);\n }\n }, length);\n }\n\n\n}\n\nexport default XVSet;"],"names":["XanvType"],"mappings":"6GAGA,MAAM,KAAmB,SAAQA,gBAAgB,CAAA;AAI9C,IAAA,WAAA,CAAY,MAAsB,EAAA;AAC/B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACvB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC;AACpE,QAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACzB,YAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,IAAI,CAAA,CAAE,CAAC;AACxG,YAAA;AACH,QAAA;IACJ;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;AACpF,YAAA;QACJ,CAAC,EAAE,MAAM,CAAC;IACb;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;AACnF,YAAA;QACJ,CAAC,EAAE,MAAM,CAAC;IACb;AAGF"}
|
package/types/Set.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Set.mjs","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVSet<T =
|
|
1
|
+
{"version":3,"file":"Set.mjs","sources":["../../src/types/Set.ts"],"sourcesContent":["import { XVInstanceType } from \"../types\";\nimport XanvType from \"../XanvType\";\n\nclass XVSet<T = unknown> extends XanvType<Set<T>> {\n\n private XVtype: XVInstanceType;\n\n constructor(XVtype: XVInstanceType) {\n super();\n this.XVtype = XVtype;\n }\n\n protected check(value: any): void {\n if (!(value instanceof Set)) {\n throw new Error(`Value should be a Set, received ${typeof value}`);\n }\n\n for (const item of Array.from(value)) {\n try {\n this.XVtype.parse(item);\n } catch (error) {\n throw new Error(`Set item should be of type ${this.XVtype.constructor.name}, received ${typeof item}`);\n }\n }\n }\n\n min(length: number) {\n return this.set(\"min\", (v: any) => {\n if (v.size < length) {\n throw new Error(`Set size should be at least ${length} items, received ${v.size}`);\n }\n }, length);\n }\n\n max(length: number) {\n return this.set(\"max\", (v: any) => {\n if (v.size > length) {\n throw new Error(`Set size should not exceed ${length} items, received ${v.size}`);\n }\n }, length);\n }\n\n\n}\n\nexport default XVSet;"],"names":[],"mappings":"sCAGA,MAAM,KAAmB,SAAQ,QAAgB,CAAA;AAI9C,IAAA,WAAA,CAAY,MAAsB,EAAA;AAC/B,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACvB;AAEU,IAAA,KAAK,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,KAAK,CAAA,CAAE,CAAC;AACpE,QAAA;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnC,IAAI;AACD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AACzB,YAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACb,gBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,WAAA,EAAc,OAAO,IAAI,CAAA,CAAE,CAAC;AACxG,YAAA;AACH,QAAA;IACJ;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;AACpF,YAAA;QACJ,CAAC,EAAE,MAAM,CAAC;IACb;AAEA,IAAA,GAAG,CAAC,MAAc,EAAA;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAClB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,MAAM,CAAA,iBAAA,EAAoB,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;AACnF,YAAA;QACJ,CAAC,EAAE,MAAM,CAAC;IACb;AAGF"}
|
package/types.d.ts
CHANGED
|
@@ -14,10 +14,10 @@ import XVString from './types/String.js';
|
|
|
14
14
|
import XVTuple from './types/Tuple.js';
|
|
15
15
|
import XVUnion from './types/Union.js';
|
|
16
16
|
|
|
17
|
-
type XVInstanceType = XanvType
|
|
17
|
+
type XVInstanceType = XanvType | XVAny | XVArray | XVBoolean | XVDate | XVEnum | XVFile | XVMap | XVNumber | XVObject | XVRecord | XVSet | XVString | XVTuple | XVUnion;
|
|
18
18
|
type XanvTransformCallback<T> = (value: T) => T;
|
|
19
19
|
type XVCheckCallback<T> = (value: T) => void;
|
|
20
|
-
type XVEnumValues = ((string | number)[]) | Record<string,
|
|
20
|
+
type XVEnumValues = ((string | number)[]) | Record<string, string | number>;
|
|
21
21
|
type XVObjectKeyType = string | number | symbol;
|
|
22
22
|
type XVObjectValueType = XVInstanceType;
|
|
23
23
|
type XVObjectType = Record<XVObjectKeyType, XVObjectValueType>;
|