@xylabs/zod 5.0.39
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/LICENSE +840 -0
- package/README.md +1852 -0
- package/dist/neutral/Config.d.ts +6 -0
- package/dist/neutral/Config.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +6 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.mjs +62 -0
- package/dist/neutral/index.mjs.map +1 -0
- package/dist/neutral/zodAllFactory.d.ts +20 -0
- package/dist/neutral/zodAllFactory.d.ts.map +1 -0
- package/dist/neutral/zodAsFactory.d.ts +7 -0
- package/dist/neutral/zodAsFactory.d.ts.map +1 -0
- package/dist/neutral/zodIsFactory.d.ts +3 -0
- package/dist/neutral/zodIsFactory.d.ts.map +1 -0
- package/dist/neutral/zodToFactory.d.ts +6 -0
- package/dist/neutral/zodToFactory.d.ts.map +1 -0
- package/package.json +53 -0
- package/src/Config.ts +7 -0
- package/src/index.ts +5 -0
- package/src/zodAllFactory.ts +23 -0
- package/src/zodAsFactory.ts +43 -0
- package/src/zodIsFactory.ts +5 -0
- package/src/zodToFactory.ts +7 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// src/zodAsFactory.ts
|
|
2
|
+
import { assertError } from "@xylabs/error";
|
|
3
|
+
function zodAsFactory(zod, name) {
|
|
4
|
+
function asFunc(value, assert) {
|
|
5
|
+
const result = zod.safeParse(value);
|
|
6
|
+
if (result.success) {
|
|
7
|
+
return result.data;
|
|
8
|
+
}
|
|
9
|
+
if (assert !== void 0) {
|
|
10
|
+
let assertConfig;
|
|
11
|
+
switch (typeof assert) {
|
|
12
|
+
case "string": {
|
|
13
|
+
assertConfig = `[${name}][${value}] ${assert}`;
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
case "object": {
|
|
17
|
+
assertConfig = `[${name}][${assert.name}][${value}] ${result.error.message}`;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
case "boolean": {
|
|
21
|
+
assertConfig = `[${name}][${value}] ${result.error.message}`;
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
case "function": {
|
|
25
|
+
assertConfig = assert(value, result.error.message);
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
default: {
|
|
29
|
+
assertConfig = true;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return assertError(value, assertConfig, result.error.message);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return asFunc;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// src/zodIsFactory.ts
|
|
39
|
+
function zodIsFactory(zod) {
|
|
40
|
+
return (value) => zod.safeParse(value).success;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// src/zodToFactory.ts
|
|
44
|
+
function zodToFactory(zod, name) {
|
|
45
|
+
return zodAsFactory(zod, name);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// src/zodAllFactory.ts
|
|
49
|
+
function zodAllFactory(zod, name) {
|
|
50
|
+
return {
|
|
51
|
+
[`is${name}`]: zodIsFactory(zod),
|
|
52
|
+
[`as${name}`]: zodAsFactory(zod, `as${name}`),
|
|
53
|
+
[`to${name}`]: zodToFactory(zod, `to${name}`)
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
zodAllFactory,
|
|
58
|
+
zodAsFactory,
|
|
59
|
+
zodIsFactory,
|
|
60
|
+
zodToFactory
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/zodAsFactory.ts","../../src/zodIsFactory.ts","../../src/zodToFactory.ts","../../src/zodAllFactory.ts"],"sourcesContent":["import type { AssertConfig } from '@xylabs/error'\nimport { assertError } from '@xylabs/error'\nimport type z from 'zod'\n\nimport type { ZodFactoryConfig } from './Config.ts'\n\nexport function zodAsFactory<T>(zod: z.ZodType<T>, name: string) {\n function asFunc(value: unknown): T | undefined\n function asFunc(value: unknown, assert: ZodFactoryConfig): T\n function asFunc(value: unknown, assert?: ZodFactoryConfig): T | undefined {\n const result = zod.safeParse(value)\n if (result.success) {\n return result.data\n }\n if (assert !== undefined) {\n let assertConfig: AssertConfig\n switch (typeof assert) {\n case 'string': {\n assertConfig = `[${name}][${value}] ${assert}`\n break\n }\n case 'object': {\n assertConfig = `[${name}][${assert.name}][${value}] ${result.error.message}`\n break\n }\n case 'boolean': {\n assertConfig = `[${name}][${value}] ${result.error.message}`\n break\n }\n case 'function': {\n assertConfig = assert(value, result.error.message)\n break\n }\n default: {\n assertConfig = true\n }\n }\n return assertError(value, assertConfig, result.error.message)\n }\n }\n\n return asFunc\n}\n","import type z from 'zod'\n\nexport function zodIsFactory<T>(zod: z.ZodType<T>) {\n return (value: unknown): value is T => zod.safeParse(value).success\n}\n","import type z from 'zod'\n\nimport { zodAsFactory } from './zodAsFactory.ts'\n\nexport function zodToFactory<T>(zod: z.ZodType<T>, name: string) {\n return zodAsFactory<T>(zod, name)\n}\n","import type z from 'zod'\n\nimport { zodAsFactory } from './zodAsFactory.ts'\nimport { zodIsFactory } from './zodIsFactory.ts'\nimport { zodToFactory } from './zodToFactory.ts'\n\n/** @alpha */\nexport type AllZodFactories<TType, TName extends string> = {\n [K in `is${TName}`]: ReturnType<typeof zodIsFactory<TType>>\n} & {\n [K in `as${TName}`]: ReturnType<typeof zodAsFactory<TType>>\n} & {\n [K in `to${TName}`]: ReturnType<typeof zodToFactory<TType>>\n}\n\n/** @alpha */\nexport function zodAllFactory<T, TName extends string>(zod: z.ZodType<T>, name: TName) {\n return {\n [`is${name}`]: zodIsFactory<T>(zod),\n [`as${name}`]: zodAsFactory<T>(zod, `as${name}`),\n [`to${name}`]: zodToFactory<T>(zod, `to${name}`),\n }\n}\n"],"mappings":";AACA,SAAS,mBAAmB;AAKrB,SAAS,aAAgB,KAAmB,MAAc;AAG/D,WAAS,OAAO,OAAgB,QAA0C;AACxE,UAAM,SAAS,IAAI,UAAU,KAAK;AAClC,QAAI,OAAO,SAAS;AAClB,aAAO,OAAO;AAAA,IAChB;AACA,QAAI,WAAW,QAAW;AACxB,UAAI;AACJ,cAAQ,OAAO,QAAQ;AAAA,QACrB,KAAK,UAAU;AACb,yBAAe,IAAI,IAAI,KAAK,KAAK,KAAK,MAAM;AAC5C;AAAA,QACF;AAAA,QACA,KAAK,UAAU;AACb,yBAAe,IAAI,IAAI,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,OAAO,MAAM,OAAO;AAC1E;AAAA,QACF;AAAA,QACA,KAAK,WAAW;AACd,yBAAe,IAAI,IAAI,KAAK,KAAK,KAAK,OAAO,MAAM,OAAO;AAC1D;AAAA,QACF;AAAA,QACA,KAAK,YAAY;AACf,yBAAe,OAAO,OAAO,OAAO,MAAM,OAAO;AACjD;AAAA,QACF;AAAA,QACA,SAAS;AACP,yBAAe;AAAA,QACjB;AAAA,MACF;AACA,aAAO,YAAY,OAAO,cAAc,OAAO,MAAM,OAAO;AAAA,IAC9D;AAAA,EACF;AAEA,SAAO;AACT;;;ACxCO,SAAS,aAAgB,KAAmB;AACjD,SAAO,CAAC,UAA+B,IAAI,UAAU,KAAK,EAAE;AAC9D;;;ACAO,SAAS,aAAgB,KAAmB,MAAc;AAC/D,SAAO,aAAgB,KAAK,IAAI;AAClC;;;ACUO,SAAS,cAAuC,KAAmB,MAAa;AACrF,SAAO;AAAA,IACL,CAAC,KAAK,IAAI,EAAE,GAAG,aAAgB,GAAG;AAAA,IAClC,CAAC,KAAK,IAAI,EAAE,GAAG,aAAgB,KAAK,KAAK,IAAI,EAAE;AAAA,IAC/C,CAAC,KAAK,IAAI,EAAE,GAAG,aAAgB,KAAK,KAAK,IAAI,EAAE;AAAA,EACjD;AACF;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type z from 'zod';
|
|
2
|
+
import { zodAsFactory } from './zodAsFactory.ts';
|
|
3
|
+
import { zodIsFactory } from './zodIsFactory.ts';
|
|
4
|
+
import { zodToFactory } from './zodToFactory.ts';
|
|
5
|
+
/** @alpha */
|
|
6
|
+
export type AllZodFactories<TType, TName extends string> = {
|
|
7
|
+
[K in `is${TName}`]: ReturnType<typeof zodIsFactory<TType>>;
|
|
8
|
+
} & {
|
|
9
|
+
[K in `as${TName}`]: ReturnType<typeof zodAsFactory<TType>>;
|
|
10
|
+
} & {
|
|
11
|
+
[K in `to${TName}`]: ReturnType<typeof zodToFactory<TType>>;
|
|
12
|
+
};
|
|
13
|
+
/** @alpha */
|
|
14
|
+
export declare function zodAllFactory<T, TName extends string>(zod: z.ZodType<T>, name: TName): {
|
|
15
|
+
[x: string]: ((value: unknown) => value is T) | {
|
|
16
|
+
(value: unknown): T | undefined;
|
|
17
|
+
(value: unknown, assert: import("./Config.ts").ZodFactoryConfig): T;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=zodAllFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zodAllFactory.d.ts","sourceRoot":"","sources":["../../src/zodAllFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,aAAa;AACb,MAAM,MAAM,eAAe,CAAC,KAAK,EAAE,KAAK,SAAS,MAAM,IAAI;KACxD,CAAC,IAAI,KAAK,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;CAC5D,GAAG;KACD,CAAC,IAAI,KAAK,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;CAC5D,GAAG;KACD,CAAC,IAAI,KAAK,KAAK,EAAE,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;CAC5D,CAAA;AAED,aAAa;AACb,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK;;;;;EAMpF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type z from 'zod';
|
|
2
|
+
import type { ZodFactoryConfig } from './Config.ts';
|
|
3
|
+
export declare function zodAsFactory<T>(zod: z.ZodType<T>, name: string): {
|
|
4
|
+
(value: unknown): T | undefined;
|
|
5
|
+
(value: unknown, assert: ZodFactoryConfig): T;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=zodAsFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zodAsFactory.d.ts","sourceRoot":"","sources":["../../src/zodAsFactory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM;YACtC,OAAO,GAAG,CAAC,GAAG,SAAS;YACvB,OAAO,UAAU,gBAAgB,GAAG,CAAC;EAkC7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zodIsFactory.d.ts","sourceRoot":"","sources":["../../src/zodIsFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IACvC,OAAO,OAAO,KAAG,KAAK,IAAI,CAAC,CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zodToFactory.d.ts","sourceRoot":"","sources":["../../src/zodToFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAIxB,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM;;;EAE9D"}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xylabs/zod",
|
|
3
|
+
"version": "5.0.39",
|
|
4
|
+
"description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
|
|
5
|
+
"homepage": "https://xyo.network",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "git+https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues",
|
|
8
|
+
"email": "support@xyo.network"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
13
|
+
},
|
|
14
|
+
"license": "LGPL-3.0-only",
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "XYO Development Team",
|
|
17
|
+
"email": "support@xyo.network",
|
|
18
|
+
"url": "https://xyo.network"
|
|
19
|
+
},
|
|
20
|
+
"sideEffects": false,
|
|
21
|
+
"type": "module",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/neutral/index.d.ts",
|
|
25
|
+
"source": "./src/index.ts",
|
|
26
|
+
"default": "./dist/neutral/index.mjs"
|
|
27
|
+
},
|
|
28
|
+
"./package.json": "./package.json"
|
|
29
|
+
},
|
|
30
|
+
"module": "./dist/neutral/index.mjs",
|
|
31
|
+
"source": "./src/index.ts",
|
|
32
|
+
"types": "./dist/neutral/index.d.ts",
|
|
33
|
+
"files": [
|
|
34
|
+
"dist",
|
|
35
|
+
"src",
|
|
36
|
+
"!**/*.bench.*",
|
|
37
|
+
"!**/*.spec.*",
|
|
38
|
+
"!**/*.test.*"
|
|
39
|
+
],
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@xylabs/error": "~5.0.39",
|
|
42
|
+
"zod": "~4.1.12"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@xylabs/ts-scripts-yarn3": "~7.2.8",
|
|
46
|
+
"@xylabs/tsconfig": "~7.2.8",
|
|
47
|
+
"typescript": "~5.9.3",
|
|
48
|
+
"vitest": "~4.0.10"
|
|
49
|
+
},
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public"
|
|
52
|
+
}
|
|
53
|
+
}
|
package/src/Config.ts
ADDED
package/src/index.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type z from 'zod'
|
|
2
|
+
|
|
3
|
+
import { zodAsFactory } from './zodAsFactory.ts'
|
|
4
|
+
import { zodIsFactory } from './zodIsFactory.ts'
|
|
5
|
+
import { zodToFactory } from './zodToFactory.ts'
|
|
6
|
+
|
|
7
|
+
/** @alpha */
|
|
8
|
+
export type AllZodFactories<TType, TName extends string> = {
|
|
9
|
+
[K in `is${TName}`]: ReturnType<typeof zodIsFactory<TType>>
|
|
10
|
+
} & {
|
|
11
|
+
[K in `as${TName}`]: ReturnType<typeof zodAsFactory<TType>>
|
|
12
|
+
} & {
|
|
13
|
+
[K in `to${TName}`]: ReturnType<typeof zodToFactory<TType>>
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** @alpha */
|
|
17
|
+
export function zodAllFactory<T, TName extends string>(zod: z.ZodType<T>, name: TName) {
|
|
18
|
+
return {
|
|
19
|
+
[`is${name}`]: zodIsFactory<T>(zod),
|
|
20
|
+
[`as${name}`]: zodAsFactory<T>(zod, `as${name}`),
|
|
21
|
+
[`to${name}`]: zodToFactory<T>(zod, `to${name}`),
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { AssertConfig } from '@xylabs/error'
|
|
2
|
+
import { assertError } from '@xylabs/error'
|
|
3
|
+
import type z from 'zod'
|
|
4
|
+
|
|
5
|
+
import type { ZodFactoryConfig } from './Config.ts'
|
|
6
|
+
|
|
7
|
+
export function zodAsFactory<T>(zod: z.ZodType<T>, name: string) {
|
|
8
|
+
function asFunc(value: unknown): T | undefined
|
|
9
|
+
function asFunc(value: unknown, assert: ZodFactoryConfig): T
|
|
10
|
+
function asFunc(value: unknown, assert?: ZodFactoryConfig): T | undefined {
|
|
11
|
+
const result = zod.safeParse(value)
|
|
12
|
+
if (result.success) {
|
|
13
|
+
return result.data
|
|
14
|
+
}
|
|
15
|
+
if (assert !== undefined) {
|
|
16
|
+
let assertConfig: AssertConfig
|
|
17
|
+
switch (typeof assert) {
|
|
18
|
+
case 'string': {
|
|
19
|
+
assertConfig = `[${name}][${value}] ${assert}`
|
|
20
|
+
break
|
|
21
|
+
}
|
|
22
|
+
case 'object': {
|
|
23
|
+
assertConfig = `[${name}][${assert.name}][${value}] ${result.error.message}`
|
|
24
|
+
break
|
|
25
|
+
}
|
|
26
|
+
case 'boolean': {
|
|
27
|
+
assertConfig = `[${name}][${value}] ${result.error.message}`
|
|
28
|
+
break
|
|
29
|
+
}
|
|
30
|
+
case 'function': {
|
|
31
|
+
assertConfig = assert(value, result.error.message)
|
|
32
|
+
break
|
|
33
|
+
}
|
|
34
|
+
default: {
|
|
35
|
+
assertConfig = true
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return assertError(value, assertConfig, result.error.message)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return asFunc
|
|
43
|
+
}
|