xanv 1.1.21 → 1.1.23
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/XVType.cjs +1 -5
- package/XVType.cjs.map +1 -1
- package/XVType.d.ts +3 -3
- package/XVType.js +1 -5
- package/XVType.js.map +1 -1
- package/package.json +1 -1
package/XVType.cjs
CHANGED
|
@@ -15,11 +15,7 @@ class XVType {
|
|
|
15
15
|
return this;
|
|
16
16
|
}
|
|
17
17
|
clone() {
|
|
18
|
-
|
|
19
|
-
cloned.checks = [...this.checks];
|
|
20
|
-
cloned.meta = Object.assign({}, this.meta);
|
|
21
|
-
cloned.transforms = [...this.transforms];
|
|
22
|
-
return cloned;
|
|
18
|
+
return Object.assign(Object.create(Object.getPrototypeOf(this)), this);
|
|
23
19
|
}
|
|
24
20
|
optional() {
|
|
25
21
|
return this.set("optional", () => { });
|
package/XVType.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XVType.cjs","sources":["../src/XVType.ts"],"sourcesContent":["import { XVCheckCallback, XVDefault, XVDefaultValue, XVMeta, XVNullable, XVOptional, XVTransformCallback } from \"./types\";\n\nabstract class XVType<T> {\n readonly _type!: T\n
|
|
1
|
+
{"version":3,"file":"XVType.cjs","sources":["../src/XVType.ts"],"sourcesContent":["import { XVCheckCallback, XVDefault, XVDefaultValue, XVMeta, XVNullable, XVOptional, XVTransformCallback } from \"./types\";\n\nabstract class XVType<T> {\n readonly _type!: T\n protected checks: XVCheckCallback<T>[] = [];\n protected transforms: XVTransformCallback<T>[] = [];\n readonly meta: XVMeta<T> = {};\n protected abstract check(value: unknown): T;\n\n protected set(method: string, check: XVCheckCallback<T>, args: any = true): this {\n if (!(method in this)) {\n throw new Error(`Method ${method} does not exist on ${this.constructor.name}`);\n }\n this.checks.push(check);\n this.meta[method] = args;\n return this;\n }\n\n clone(): this {\n return Object.assign(\n Object.create(Object.getPrototypeOf(this)),\n this\n )\n }\n\n optional(): XVOptional<this> {\n return this.set(\"optional\", () => { }) as any\n }\n\n nullable(): XVNullable<this> {\n return this.set(\"nullable\", () => { }) as any\n }\n\n default(value: XVDefaultValue<T>): XVDefault<this, T> {\n return this.set(\"default\", () => { }, value) as any\n }\n\n transform(cb: XVTransformCallback<T>) {\n this.transforms.push(cb);\n return this\n }\n\n parse(value: unknown): T | undefined | null {\n // default\n if (this.meta.default !== undefined && (value === undefined || value === null)) {\n value = typeof this.meta.default === \"function\" ? (this.meta.default as () => T)() : this.meta.default;\n }\n\n // optional / nullable\n if (this.meta.optional && value === undefined) return undefined;\n if (this.meta.nullable && value === null) return null;\n\n // run internal check\n let result = this.check(value)\n\n // run user checks\n for (const check of this.checks) {\n check(result);\n }\n\n // run transforms\n for (const transform of this.transforms) {\n result = transform(result);\n }\n\n return result;\n }\n}\n\nexport default XVType;\n"],"names":[],"mappings":";;AAEA,MAAe,MAAM,CAAA;AAArB,IAAA,WAAA,GAAA;QAEa,IAAA,CAAA,MAAM,GAAyB,EAAE;QACjC,IAAA,CAAA,UAAU,GAA6B,EAAE;QAC1C,IAAA,CAAA,IAAI,GAAc,EAAE;IA6DhC;AA1Da,IAAA,GAAG,CAAC,MAAc,EAAE,KAAyB,EAAE,OAAY,IAAI,EAAA;AACtE,QAAA,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,OAAA,EAAU,MAAM,CAAA,mBAAA,EAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC;QACjF;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;AACxB,QAAA,OAAO,IAAI;IACd;IAEA,KAAK,GAAA;AACF,QAAA,OAAO,MAAM,CAAC,MAAM,CACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAC1C,IAAI,CACN;IACJ;IAEA,QAAQ,GAAA;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,CAAQ;IAChD;IAEA,QAAQ,GAAA;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,CAAQ;IAChD;AAEA,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAK,EAAG,CAAC,EAAE,KAAK,CAAQ;IACtD;AAEA,IAAA,SAAS,CAAC,EAA0B,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,QAAA,OAAO,IAAI;IACd;AAEA,IAAA,KAAK,CAAC,KAAc,EAAA;;AAEjB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;YAC7E,KAAK,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,GAAI,IAAI,CAAC,IAAI,CAAC,OAAmB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;QACzG;;QAGA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,SAAS;QAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;;QAGrD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;AAG9B,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC9B,KAAK,CAAC,MAAM,CAAC;QAChB;;AAGA,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B;AAEA,QAAA,OAAO,MAAM;IAChB;AACF;;;;"}
|
package/XVType.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { XVCheckCallback, XVTransformCallback, XVMeta, XVOptional, XVNullable, XVDefaultValue, XVDefault } from './types.js';
|
|
2
2
|
|
|
3
3
|
declare abstract class XVType<T> {
|
|
4
4
|
readonly _type: T;
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
protected checks: XVCheckCallback<T>[];
|
|
6
|
+
protected transforms: XVTransformCallback<T>[];
|
|
7
7
|
readonly meta: XVMeta<T>;
|
|
8
8
|
protected abstract check(value: unknown): T;
|
|
9
9
|
protected set(method: string, check: XVCheckCallback<T>, args?: any): this;
|
package/XVType.js
CHANGED
|
@@ -13,11 +13,7 @@ class XVType {
|
|
|
13
13
|
return this;
|
|
14
14
|
}
|
|
15
15
|
clone() {
|
|
16
|
-
|
|
17
|
-
cloned.checks = [...this.checks];
|
|
18
|
-
cloned.meta = Object.assign({}, this.meta);
|
|
19
|
-
cloned.transforms = [...this.transforms];
|
|
20
|
-
return cloned;
|
|
16
|
+
return Object.assign(Object.create(Object.getPrototypeOf(this)), this);
|
|
21
17
|
}
|
|
22
18
|
optional() {
|
|
23
19
|
return this.set("optional", () => { });
|
package/XVType.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XVType.js","sources":["../src/XVType.ts"],"sourcesContent":["import { XVCheckCallback, XVDefault, XVDefaultValue, XVMeta, XVNullable, XVOptional, XVTransformCallback } from \"./types\";\n\nabstract class XVType<T> {\n readonly _type!: T\n
|
|
1
|
+
{"version":3,"file":"XVType.js","sources":["../src/XVType.ts"],"sourcesContent":["import { XVCheckCallback, XVDefault, XVDefaultValue, XVMeta, XVNullable, XVOptional, XVTransformCallback } from \"./types\";\n\nabstract class XVType<T> {\n readonly _type!: T\n protected checks: XVCheckCallback<T>[] = [];\n protected transforms: XVTransformCallback<T>[] = [];\n readonly meta: XVMeta<T> = {};\n protected abstract check(value: unknown): T;\n\n protected set(method: string, check: XVCheckCallback<T>, args: any = true): this {\n if (!(method in this)) {\n throw new Error(`Method ${method} does not exist on ${this.constructor.name}`);\n }\n this.checks.push(check);\n this.meta[method] = args;\n return this;\n }\n\n clone(): this {\n return Object.assign(\n Object.create(Object.getPrototypeOf(this)),\n this\n )\n }\n\n optional(): XVOptional<this> {\n return this.set(\"optional\", () => { }) as any\n }\n\n nullable(): XVNullable<this> {\n return this.set(\"nullable\", () => { }) as any\n }\n\n default(value: XVDefaultValue<T>): XVDefault<this, T> {\n return this.set(\"default\", () => { }, value) as any\n }\n\n transform(cb: XVTransformCallback<T>) {\n this.transforms.push(cb);\n return this\n }\n\n parse(value: unknown): T | undefined | null {\n // default\n if (this.meta.default !== undefined && (value === undefined || value === null)) {\n value = typeof this.meta.default === \"function\" ? (this.meta.default as () => T)() : this.meta.default;\n }\n\n // optional / nullable\n if (this.meta.optional && value === undefined) return undefined;\n if (this.meta.nullable && value === null) return null;\n\n // run internal check\n let result = this.check(value)\n\n // run user checks\n for (const check of this.checks) {\n check(result);\n }\n\n // run transforms\n for (const transform of this.transforms) {\n result = transform(result);\n }\n\n return result;\n }\n}\n\nexport default XVType;\n"],"names":[],"mappings":"AAEA,MAAe,MAAM,CAAA;AAArB,IAAA,WAAA,GAAA;QAEa,IAAA,CAAA,MAAM,GAAyB,EAAE;QACjC,IAAA,CAAA,UAAU,GAA6B,EAAE;QAC1C,IAAA,CAAA,IAAI,GAAc,EAAE;IA6DhC;AA1Da,IAAA,GAAG,CAAC,MAAc,EAAE,KAAyB,EAAE,OAAY,IAAI,EAAA;AACtE,QAAA,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,OAAA,EAAU,MAAM,CAAA,mBAAA,EAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC;QACjF;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI;AACxB,QAAA,OAAO,IAAI;IACd;IAEA,KAAK,GAAA;AACF,QAAA,OAAO,MAAM,CAAC,MAAM,CACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAC1C,IAAI,CACN;IACJ;IAEA,QAAQ,GAAA;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,CAAQ;IAChD;IAEA,QAAQ,GAAA;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAK,EAAG,CAAC,CAAQ;IAChD;AAEA,IAAA,OAAO,CAAC,KAAwB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAK,EAAG,CAAC,EAAE,KAAK,CAAQ;IACtD;AAEA,IAAA,SAAS,CAAC,EAA0B,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB,QAAA,OAAO,IAAI;IACd;AAEA,IAAA,KAAK,CAAC,KAAc,EAAA;;AAEjB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;YAC7E,KAAK,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,UAAU,GAAI,IAAI,CAAC,IAAI,CAAC,OAAmB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;QACzG;;QAGA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,SAAS;QAC/D,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;;QAGrD,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;AAG9B,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC9B,KAAK,CAAC,MAAM,CAAC;QAChB;;AAGA,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC7B;AAEA,QAAA,OAAO,MAAM;IAChB;AACF;;;;"}
|