zod-aot 0.5.1 → 0.7.0
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/README.md +27 -27
- package/dist/cli/emitter.d.ts.map +1 -1
- package/dist/cli/emitter.js +19 -120
- package/dist/cli/emitter.js.map +1 -1
- package/dist/core/codegen/context.d.ts +1 -1
- package/dist/core/codegen/context.d.ts.map +1 -1
- package/dist/core/codegen/index.d.ts +2 -2
- package/dist/core/codegen/index.js +4 -4
- package/dist/core/codegen/index.js.map +1 -1
- package/dist/core/iife.d.ts +21 -0
- package/dist/core/iife.d.ts.map +1 -0
- package/dist/core/iife.js +42 -0
- package/dist/core/iife.js.map +1 -0
- package/dist/core/runtime.d.ts +1 -1
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +4 -5
- package/dist/core/runtime.js.map +1 -1
- package/dist/core/types.d.ts +0 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/unplugin/transform.d.ts.map +1 -1
- package/dist/unplugin/transform.js +4 -54
- package/dist/unplugin/transform.js.map +1 -1
- package/package.json +2 -8
- package/dist/internals.d.ts +0 -7
- package/dist/internals.d.ts.map +0 -1
- package/dist/internals.js +0 -4
- package/dist/internals.js.map +0 -1
package/README.md
CHANGED
|
@@ -13,11 +13,11 @@ No code changes required — keep your existing Zod schemas and get **2-80x fast
|
|
|
13
13
|
|
|
14
14
|
Zod v4 is already fast, but runtime schema traversal still costs ~10x compared to ahead-of-time (AOT) compiled approaches. Existing AOT solutions like [Typia](https://typia.io/) require rewriting your schemas as TypeScript types. **zod-aot** bridges this gap — it takes your existing Zod schemas and generates optimized, plain JavaScript validation functions at build time.
|
|
15
15
|
|
|
16
|
-
| |
|
|
17
|
-
|
|
18
|
-
| **Input** | Zod schemas
|
|
19
|
-
| **Existing code changes** | None
|
|
20
|
-
| **Type inference** | Inherited from Zod
|
|
16
|
+
| | Zod AOT | Typia | AJV standalone | Zod v3 | Zod v4 |
|
|
17
|
+
|---|---------------------|---|---|---|---|
|
|
18
|
+
| **Input** | Zod schemas | TS types | JSON Schema | Zod schemas | Zod schemas |
|
|
19
|
+
| **Existing code changes** | None | Full rewrite | Full rewrite | N/A | N/A |
|
|
20
|
+
| **Type inference** | Inherited from Zod | Native | External | Native | Native |
|
|
21
21
|
| **Runtime dependency** | None (generated code) | Typia runtime | AJV runtime | Zod | Zod |
|
|
22
22
|
|
|
23
23
|
## Benchmarks
|
|
@@ -32,25 +32,25 @@ pnpm bench
|
|
|
32
32
|
|
|
33
33
|
### safeParse
|
|
34
34
|
|
|
35
|
-
| Scenario | Zod v3 | Zod v4 |
|
|
36
|
-
|
|
37
|
-
| simple string | 8.2M ops/s | 9.6M ops/s | 10.4M ops/s | **1.
|
|
38
|
-
| string (min/max) | 7.8M ops/s | 5.4M ops/s | 10.5M ops/s | **
|
|
39
|
-
| number (int+positive) | 7.8M ops/s | 5.7M ops/s | 10.5M ops/s | **1.
|
|
40
|
-
| enum | 7.5M ops/s | 9.1M ops/s | 10.0M ops/s | **1.
|
|
41
|
-
| tuple [string, int, boolean] | 4.2M ops/s | 4.6M ops/s | 10.5M ops/s | **2.
|
|
42
|
-
| record\<string, number\> (5 keys) | 2.3M ops/s | 1.9M ops/s | 5.6M ops/s | **2.
|
|
43
|
-
| discriminatedUnion (3 variants) | 2.3M ops/s | 2.9M ops/s | 9.3M ops/s | **
|
|
44
|
-
| medium object (7 props, valid) | 1.3M ops/s | 1.7M ops/s | 5.2M ops/s | **
|
|
45
|
-
| medium object (7 props, invalid) | 346K ops/s | 62K ops/s | 467K ops/s | **
|
|
46
|
-
| large object (10 nested items) | 83K ops/s | 110K ops/s | 4.0M ops/s | **
|
|
47
|
-
| large object (100 nested items) | 8.5K ops/s | 11.3K ops/s | 680K ops/s | **
|
|
48
|
-
| recursive tree (7 nodes) | 398K ops/s | 1.5M ops/s | 6.3M ops/s | **
|
|
49
|
-
| recursive tree (121 nodes) | 23K ops/s | 101K ops/s | 749K ops/s | **
|
|
50
|
-
| event log (combined) | 265K ops/s | 440K ops/s | 4.4M ops/s | **
|
|
51
|
-
| partial fallback object (transform) | 822K ops/s | 1.4M ops/s | 3.5M ops/s | **
|
|
52
|
-
| partial fallback array 10 (transform) | 85K ops/s | 144K ops/s | 1.1M ops/s | **
|
|
53
|
-
| partial fallback array 50 (transform) | 18K ops/s | 30K ops/s | 237K ops/s | **
|
|
35
|
+
| Scenario | Zod v3 | Zod v4 | Zod AOT | vs v3 | vs v4 |
|
|
36
|
+
|---|---|---|-----------|---|---|
|
|
37
|
+
| simple string | 8.2M ops/s | 9.6M ops/s | 10.4M ops/s | **1.3x** | **1.1x** |
|
|
38
|
+
| string (min/max) | 7.8M ops/s | 5.4M ops/s | 10.5M ops/s | **1.4x** | **2.0x** |
|
|
39
|
+
| number (int+positive) | 7.8M ops/s | 5.7M ops/s | 10.5M ops/s | **1.3x** | **1.8x** |
|
|
40
|
+
| enum | 7.5M ops/s | 9.1M ops/s | 10.0M ops/s | **1.3x** | **1.1x** |
|
|
41
|
+
| tuple [string, int, boolean] | 4.2M ops/s | 4.6M ops/s | 10.5M ops/s | **2.5x** | **2.3x** |
|
|
42
|
+
| record\<string, number\> (5 keys) | 2.3M ops/s | 1.9M ops/s | 5.6M ops/s | **2.4x** | **2.9x** |
|
|
43
|
+
| discriminatedUnion (3 variants) | 2.3M ops/s | 2.9M ops/s | 9.3M ops/s | **4.1x** | **3.3x** |
|
|
44
|
+
| medium object (7 props, valid) | 1.3M ops/s | 1.7M ops/s | 5.2M ops/s | **4.0x** | **3.0x** |
|
|
45
|
+
| medium object (7 props, invalid) | 346K ops/s | 62K ops/s | 467K ops/s | **1.4x** | **7.5x** |
|
|
46
|
+
| large object (10 nested items) | 83K ops/s | 110K ops/s | 4.0M ops/s | **48x** | **36x** |
|
|
47
|
+
| large object (100 nested items) | 8.5K ops/s | 11.3K ops/s | 680K ops/s | **80x** | **60x** |
|
|
48
|
+
| recursive tree (7 nodes) | 398K ops/s | 1.5M ops/s | 6.3M ops/s | **16x** | **4.2x** |
|
|
49
|
+
| recursive tree (121 nodes) | 23K ops/s | 101K ops/s | 749K ops/s | **33x** | **7.4x** |
|
|
50
|
+
| event log (combined) | 265K ops/s | 440K ops/s | 4.4M ops/s | **17x** | **10x** |
|
|
51
|
+
| partial fallback object (transform) | 822K ops/s | 1.4M ops/s | 3.5M ops/s | **4.2x** | **2.4x** |
|
|
52
|
+
| partial fallback array 10 (transform) | 85K ops/s | 144K ops/s | 1.1M ops/s | **13x** | **7.7x** |
|
|
53
|
+
| partial fallback array 50 (transform) | 18K ops/s | 30K ops/s | 237K ops/s | **13x** | **7.8x** |
|
|
54
54
|
|
|
55
55
|
Performance gains scale with schema complexity. The `discriminatedUnion` optimization uses an O(1) `switch` dispatch instead of Zod's sequential trial approach. Partial fallback schemas (containing `transform`/`refine`) still show 2-8x speedups by compiling the optimizable portions.
|
|
56
56
|
|
|
@@ -304,7 +304,7 @@ interface CompiledSchema<T> {
|
|
|
304
304
|
|
|
305
305
|
| Type | Supported Checks |
|
|
306
306
|
|---|---|
|
|
307
|
-
| `string` | `min`, `max`, `length`, `email`, `url`, `uuid`, `regex` |
|
|
307
|
+
| `string` | `min`, `max`, `length`, `email`, `url`, `uuid`, `regex`, `includes`, `startsWith`, `endsWith` |
|
|
308
308
|
| `number` | `int`, `positive`, `negative`, `nonnegative`, `nonpositive`, `min`, `max`, `multipleOf` |
|
|
309
309
|
| `bigint` | `min`, `max`, `positive`, `negative`, `nonnegative`, `nonpositive`, `multipleOf` |
|
|
310
310
|
| `boolean` | — |
|
|
@@ -329,6 +329,7 @@ interface CompiledSchema<T> {
|
|
|
329
329
|
| `nullable` | wraps any supported type |
|
|
330
330
|
| `readonly` | validates inner type (TS-only concept) |
|
|
331
331
|
| `default` | replaces `undefined` with default value, then validates inner |
|
|
332
|
+
| `lazy` (self-recursive) | cycle detection → self-recursive codegen |
|
|
332
333
|
|
|
333
334
|
### Automatic Fallback to Zod
|
|
334
335
|
|
|
@@ -338,7 +339,7 @@ These schema types contain JavaScript closures or runtime-dependent logic that c
|
|
|
338
339
|
- `refine` / `superRefine` — custom validation with closures
|
|
339
340
|
- `custom` — arbitrary validation logic
|
|
340
341
|
- `preprocess` — input preprocessing
|
|
341
|
-
- `lazy` — deferred schema resolution
|
|
342
|
+
- `lazy` (non-recursive) — deferred schema resolution where inner type cannot be resolved
|
|
342
343
|
|
|
343
344
|
#### Partial Fallback
|
|
344
345
|
|
|
@@ -375,7 +376,6 @@ zod-aot/
|
|
|
375
376
|
├── packages/zod-aot/ # Main npm package
|
|
376
377
|
│ ├── src/
|
|
377
378
|
│ │ ├── index.ts # Public API exports (zod-aot)
|
|
378
|
-
│ │ ├── internals.ts # Internal API exports (zod-aot/internals)
|
|
379
379
|
│ │ ├── discovery.ts # Schema discovery (shared by CLI & unplugin)
|
|
380
380
|
│ │ ├── loader.ts # Runtime-aware file loader
|
|
381
381
|
│ │ ├── core/ # Pure logic (no CLI/unplugin deps)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM,
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,kBAAkB,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM,CAyBR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAc3F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI1F"}
|
package/dist/cli/emitter.js
CHANGED
|
@@ -1,130 +1,29 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import {
|
|
3
|
+
import { generateIIFE, ZOD_CONFIG_IMPORT, ZOD_MSG_DECLARATION } from "#src/core/iife.js";
|
|
4
4
|
export function generateCompiledFileContent(schemas, sourceRelPath, options) {
|
|
5
|
-
const
|
|
6
|
-
// Header
|
|
7
|
-
lines.push("// AUTO-GENERATED by zod-aot — DO NOT EDIT");
|
|
8
|
-
lines.push(`// Source: ${sourceRelPath}`);
|
|
9
|
-
lines.push("");
|
|
10
|
-
// Import Zod config for locale-aware error messages
|
|
11
|
-
lines.push('import { config as __zodAotConfig } from "zod";');
|
|
12
|
-
lines.push("const __msg = __zodAotConfig().localeError;");
|
|
13
|
-
lines.push("");
|
|
14
|
-
const zodCompat = options?.zodCompat !== false;
|
|
5
|
+
const importNames = schemas.map((s) => `${s.exportName} as __src_${s.exportName}`).join(", ");
|
|
15
6
|
let importPath = sourceRelPath.replace(/\.[cm]?[jt]sx?$/, "");
|
|
16
7
|
if (!importPath.startsWith(".")) {
|
|
17
8
|
importPath = `./${importPath}`;
|
|
18
9
|
}
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
lines.push(`const __fb_${schema.exportName} = [${fbExprs.join(", ")}];`);
|
|
37
|
-
}
|
|
38
|
-
if (schemasWithFallbacks.length > 0)
|
|
39
|
-
lines.push("");
|
|
40
|
-
// Merge preambles — each schema's `code` field contains `/* zod-aot */` + preamble declarations
|
|
41
|
-
const preambleSet = new Set();
|
|
42
|
-
for (const schema of schemas) {
|
|
43
|
-
for (const line of schema.codegenResult.code.split("\n")) {
|
|
44
|
-
if (line.trim() !== "" && line.trim() !== "/* zod-aot */") {
|
|
45
|
-
preambleSet.add(line);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (preambleSet.size > 0) {
|
|
50
|
-
lines.push("/* zod-aot:preamble */");
|
|
51
|
-
for (const line of preambleSet) {
|
|
52
|
-
lines.push(line);
|
|
53
|
-
}
|
|
54
|
-
lines.push("");
|
|
55
|
-
}
|
|
56
|
-
// Function definitions
|
|
57
|
-
for (const schema of schemas) {
|
|
58
|
-
if (schema.fallbackEntries.length > 0) {
|
|
59
|
-
// Inject __fb binding at function start
|
|
60
|
-
const fnDef = schema.codegenResult.functionName;
|
|
61
|
-
const injected = fnDef.replace(/^(function\s+\w+\(input\)\{)\n/, `$1\nvar __fb=__fb_${schema.exportName};\n`);
|
|
62
|
-
if (injected === fnDef) {
|
|
63
|
-
throw new Error(`[zod-aot] Failed to inject __fb binding into ${schema.exportName}. ` +
|
|
64
|
-
"Generated function format may have changed.");
|
|
65
|
-
}
|
|
66
|
-
lines.push(injected);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
lines.push(schema.codegenResult.functionName);
|
|
70
|
-
}
|
|
71
|
-
lines.push("");
|
|
72
|
-
}
|
|
73
|
-
// Export wrappers
|
|
74
|
-
for (const schema of schemas) {
|
|
75
|
-
const fnName = extractFunctionName(schema.codegenResult.functionName);
|
|
76
|
-
if (zodCompat) {
|
|
77
|
-
// Object.create wrapper for Zod compatibility
|
|
78
|
-
const srcRef = `__src_${schema.exportName}`;
|
|
79
|
-
lines.push(`export const ${schema.exportName} = /* @__PURE__ */ (() => {`);
|
|
80
|
-
lines.push(` const __s = (${srcRef} as any).schema;`);
|
|
81
|
-
lines.push(" const __w = Object.create(__s);");
|
|
82
|
-
lines.push(" __w.parse = function (input: unknown) {");
|
|
83
|
-
lines.push(` const r = ${fnName}(input);`);
|
|
84
|
-
lines.push(" if (r.success) return r.data;");
|
|
85
|
-
lines.push(' throw Object.assign(new Error("Validation failed"), r.error);');
|
|
86
|
-
lines.push(" };");
|
|
87
|
-
lines.push(` __w.safeParse = ${fnName};`);
|
|
88
|
-
lines.push(" __w.safeParseAsync = function (input: unknown) {");
|
|
89
|
-
lines.push(` return Promise.resolve(${fnName}(input));`);
|
|
90
|
-
lines.push(" };");
|
|
91
|
-
lines.push(" __w.parseAsync = function (input: unknown) {");
|
|
92
|
-
lines.push(` const r = ${fnName}(input);`);
|
|
93
|
-
lines.push(" if (r.success) return Promise.resolve(r.data);");
|
|
94
|
-
lines.push(' return Promise.reject(Object.assign(new Error("Validation failed"), r.error));');
|
|
95
|
-
lines.push(" };");
|
|
96
|
-
lines.push(" __w.is = function (input: unknown): boolean {");
|
|
97
|
-
lines.push(` return ${fnName}(input).success;`);
|
|
98
|
-
lines.push(" };");
|
|
99
|
-
lines.push(" __w.schema = __s;");
|
|
100
|
-
lines.push(" return __w;");
|
|
101
|
-
lines.push("})();");
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
// Minimal plain object (smaller bundle)
|
|
105
|
-
lines.push(`export const ${schema.exportName} = {`);
|
|
106
|
-
lines.push(" parse(input: unknown) {");
|
|
107
|
-
lines.push(` const r = ${fnName}(input);`);
|
|
108
|
-
lines.push(" if (r.success) return r.data;");
|
|
109
|
-
lines.push(' throw Object.assign(new Error("Validation failed"), r.error);');
|
|
110
|
-
lines.push(" },");
|
|
111
|
-
lines.push(` safeParse: ${fnName},`);
|
|
112
|
-
lines.push(" safeParseAsync(input: unknown) {");
|
|
113
|
-
lines.push(` return Promise.resolve(${fnName}(input));`);
|
|
114
|
-
lines.push(" },");
|
|
115
|
-
lines.push(" parseAsync(input: unknown) {");
|
|
116
|
-
lines.push(` const r = ${fnName}(input);`);
|
|
117
|
-
lines.push(" if (r.success) return Promise.resolve(r.data);");
|
|
118
|
-
lines.push(' return Promise.reject(Object.assign(new Error("Validation failed"), r.error));');
|
|
119
|
-
lines.push(" },");
|
|
120
|
-
lines.push(" is(input: unknown): boolean {");
|
|
121
|
-
lines.push(` return ${fnName}(input).success;`);
|
|
122
|
-
lines.push(" },");
|
|
123
|
-
lines.push("};");
|
|
124
|
-
}
|
|
125
|
-
lines.push("");
|
|
126
|
-
}
|
|
127
|
-
return lines.join("\n");
|
|
10
|
+
const zodCompat = options?.zodCompat !== false;
|
|
11
|
+
const exports = schemas.map((schema) => {
|
|
12
|
+
const schemaExpr = `(__src_${schema.exportName} as any).schema`;
|
|
13
|
+
return `export const ${schema.exportName} = ${generateIIFE(schemaExpr, schema, { zodCompat })};`;
|
|
14
|
+
});
|
|
15
|
+
return [
|
|
16
|
+
"// AUTO-GENERATED by zod-aot — DO NOT EDIT",
|
|
17
|
+
`// Source: ${sourceRelPath}`,
|
|
18
|
+
"",
|
|
19
|
+
ZOD_CONFIG_IMPORT,
|
|
20
|
+
ZOD_MSG_DECLARATION,
|
|
21
|
+
"",
|
|
22
|
+
`import { ${importNames} } from "${importPath}";`,
|
|
23
|
+
"",
|
|
24
|
+
...exports,
|
|
25
|
+
"",
|
|
26
|
+
].join("\n");
|
|
128
27
|
}
|
|
129
28
|
/**
|
|
130
29
|
* Resolve the output file path for a given input file.
|
package/dist/cli/emitter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/cli/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAczF,MAAM,UAAU,2BAA2B,CACzC,OAA6B,EAC7B,aAAqB,EACrB,OAAwB;IAExB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,aAAa,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9F,IAAI,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,UAAU,GAAG,KAAK,UAAU,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,UAAU,MAAM,CAAC,UAAU,iBAAiB,CAAC;QAChE,OAAO,gBAAgB,MAAM,CAAC,UAAU,MAAM,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,4CAA4C;QAC5C,cAAc,aAAa,EAAE;QAC7B,EAAE;QACF,iBAAiB;QACjB,mBAAmB;QACnB,EAAE;QACF,YAAY,WAAW,YAAY,UAAU,IAAI;QACjD,EAAE;QACF,GAAG,OAAO;QACV,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB,EAAE,UAA8B;IACjF,IAAI,UAAU,EAAE,CAAC;QACf,gFAAgF;QAChF,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YACnE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,cAAc,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,yCAAyC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,cAAc,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB,EAAE,OAAe;IACzE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SchemaIR } from "../types.js";
|
|
2
2
|
export interface CodeGenResult {
|
|
3
3
|
code: string;
|
|
4
|
-
|
|
4
|
+
functionDef: string;
|
|
5
5
|
/** Number of fallback schemas referenced by __fb[N] in the generated code. 0 = no fallbacks. */
|
|
6
6
|
fallbackCount: number;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/core/codegen/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,GAAG,CACjC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,KAChB,MAAM,CAAC;AAGZ,eAAO,MAAM,kBAAkB,QAA+G,CAAC;AAE/I,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,2KAC4I,CAAC;AAE3K;;;GAGG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAChD,MAAM,CAOR;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM/D"}
|
|
@@ -5,9 +5,9 @@ export type { CodeGenResult } from "./context.js";
|
|
|
5
5
|
* Generate optimized validation code from SchemaIR.
|
|
6
6
|
*
|
|
7
7
|
* - `code`: preamble declarations (Sets, RegExps, etc.) — deterministic for the same IR
|
|
8
|
-
* - `
|
|
8
|
+
* - `functionDef`: full function expression string referencing preamble vars via closure
|
|
9
9
|
*
|
|
10
|
-
* Usage: `new Function(code + "\nreturn " +
|
|
10
|
+
* Usage: `new Function(code + "\nreturn " + functionDef + ";")()`
|
|
11
11
|
*/
|
|
12
12
|
export declare function generateValidator(ir: SchemaIR, name: string, options?: {
|
|
13
13
|
fallbackCount?: number;
|
|
@@ -61,16 +61,16 @@ function generateValidation(ir, inputExpr, pathExpr, issuesVar, ctx) {
|
|
|
61
61
|
* Generate optimized validation code from SchemaIR.
|
|
62
62
|
*
|
|
63
63
|
* - `code`: preamble declarations (Sets, RegExps, etc.) — deterministic for the same IR
|
|
64
|
-
* - `
|
|
64
|
+
* - `functionDef`: full function expression string referencing preamble vars via closure
|
|
65
65
|
*
|
|
66
|
-
* Usage: `new Function(code + "\nreturn " +
|
|
66
|
+
* Usage: `new Function(code + "\nreturn " + functionDef + ";")()`
|
|
67
67
|
*/
|
|
68
68
|
export function generateValidator(ir, name, options) {
|
|
69
69
|
const fnName = `safeParse_${name}`;
|
|
70
70
|
const ctx = { preamble: [], counter: 0, fnName };
|
|
71
71
|
const bodyCode = generateValidation(ir, "input", "[]", "__issues", ctx);
|
|
72
72
|
const code = ["/* zod-aot */", ...ctx.preamble].join("\n");
|
|
73
|
-
const
|
|
73
|
+
const functionDef = [
|
|
74
74
|
`function ${fnName}(input){`,
|
|
75
75
|
`var __issues=[];`,
|
|
76
76
|
bodyCode,
|
|
@@ -84,6 +84,6 @@ export function generateValidator(ir, name, options) {
|
|
|
84
84
|
`return{success:true,data:input};`,
|
|
85
85
|
`}`,
|
|
86
86
|
].join("\n");
|
|
87
|
-
return { code,
|
|
87
|
+
return { code, functionDef, fallbackCount: options?.fallbackCount ?? 0 };
|
|
88
88
|
}
|
|
89
89
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/codegen/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared CompiledSchema<T> IIFE generation.
|
|
3
|
+
* Used by both CLI emitter and unplugin transform.
|
|
4
|
+
*/
|
|
5
|
+
import type { CompiledSchemaInfo } from "./pipeline.js";
|
|
6
|
+
/** Import statement required by generateIIFE output (references __zodAotConfig). */
|
|
7
|
+
export declare const ZOD_CONFIG_IMPORT = "import { config as __zodAotConfig } from \"zod\";";
|
|
8
|
+
/** File-level __msg declaration (must appear once after ZOD_CONFIG_IMPORT). */
|
|
9
|
+
export declare const ZOD_MSG_DECLARATION = "var __msg=__zodAotConfig().localeError;";
|
|
10
|
+
/**
|
|
11
|
+
* Generate a `/* @__PURE__ * /` IIFE wrapping a compiled validator.
|
|
12
|
+
*
|
|
13
|
+
* @param schemaExpr - Expression resolving to the original Zod schema
|
|
14
|
+
* (e.g. `"UserSchema"` in unplugin, `"(__src_X as any).schema"` in CLI)
|
|
15
|
+
* @param schema
|
|
16
|
+
* @param options
|
|
17
|
+
*/
|
|
18
|
+
export declare function generateIIFE(schemaExpr: string, schema: CompiledSchemaInfo, options?: {
|
|
19
|
+
zodCompat?: boolean | undefined;
|
|
20
|
+
}): string;
|
|
21
|
+
//# sourceMappingURL=iife.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iife.d.ts","sourceRoot":"","sources":["../../src/core/iife.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,sDAAoD,CAAC;AAEnF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,4CAA4C,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,MAAM,CAwBR"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared CompiledSchema<T> IIFE generation.
|
|
3
|
+
* Used by both CLI emitter and unplugin transform.
|
|
4
|
+
*/
|
|
5
|
+
import { extractFunctionName } from "./codegen/context.js";
|
|
6
|
+
/** Import statement required by generateIIFE output (references __zodAotConfig). */
|
|
7
|
+
export const ZOD_CONFIG_IMPORT = 'import { config as __zodAotConfig } from "zod";';
|
|
8
|
+
/** File-level __msg declaration (must appear once after ZOD_CONFIG_IMPORT). */
|
|
9
|
+
export const ZOD_MSG_DECLARATION = "var __msg=__zodAotConfig().localeError;";
|
|
10
|
+
/**
|
|
11
|
+
* Generate a `/* @__PURE__ * /` IIFE wrapping a compiled validator.
|
|
12
|
+
*
|
|
13
|
+
* @param schemaExpr - Expression resolving to the original Zod schema
|
|
14
|
+
* (e.g. `"UserSchema"` in unplugin, `"(__src_X as any).schema"` in CLI)
|
|
15
|
+
* @param schema
|
|
16
|
+
* @param options
|
|
17
|
+
*/
|
|
18
|
+
export function generateIIFE(schemaExpr, schema, options) {
|
|
19
|
+
const { codegenResult, fallbackEntries } = schema;
|
|
20
|
+
const fnName = extractFunctionName(codegenResult.functionDef);
|
|
21
|
+
const zodCompat = options?.zodCompat !== false;
|
|
22
|
+
const init = zodCompat ? `Object.create(${schemaExpr})` : "{}";
|
|
23
|
+
return [
|
|
24
|
+
"/* @__PURE__ */ (() => {",
|
|
25
|
+
...(fallbackEntries.length > 0
|
|
26
|
+
? [`var __fb=[${fallbackEntries.map((fb) => `${schemaExpr}${fb.accessPath}`).join(",")}];`]
|
|
27
|
+
: []),
|
|
28
|
+
...codegenResult.code
|
|
29
|
+
.split("\n")
|
|
30
|
+
.filter((l) => l.trim() !== "" && l.trim() !== "/* zod-aot */"),
|
|
31
|
+
codegenResult.functionDef,
|
|
32
|
+
`var __w=${init};`,
|
|
33
|
+
`__w.parse=function(input){const r=${fnName}(input);if(r.success)return r.data;throw Object.assign(new Error("Validation failed"),r.error);};`,
|
|
34
|
+
`__w.safeParse=${fnName};`,
|
|
35
|
+
`__w.safeParseAsync=function(input){return Promise.resolve(${fnName}(input));};`,
|
|
36
|
+
`__w.parseAsync=function(input){const r=${fnName}(input);if(r.success)return Promise.resolve(r.data);return Promise.reject(Object.assign(new Error("Validation failed"),r.error));};`,
|
|
37
|
+
`__w.schema=${schemaExpr};`,
|
|
38
|
+
"return __w;",
|
|
39
|
+
"})()",
|
|
40
|
+
].join("\n");
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=iife.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iife.js","sourceRoot":"","sources":["../../src/core/iife.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,oFAAoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAAG,iDAAiD,CAAC;AAEnF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,yCAAyC,CAAC;AAE7E;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,MAA0B,EAC1B,OAA6C;IAE7C,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAClD,MAAM,MAAM,GAAG,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC;IAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/D,OAAO;QACL,0BAA0B;QAC1B,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;YAC5B,CAAC,CAAC,CAAC,aAAa,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAC3F,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,aAAa,CAAC,IAAI;aAClB,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,eAAe,CAAC;QACjE,aAAa,CAAC,WAAW;QACzB,WAAW,IAAI,GAAG;QAClB,qCAAqC,MAAM,mGAAmG;QAC9I,iBAAiB,MAAM,GAAG;QAC1B,6DAA6D,MAAM,aAAa;QAChF,0CAA0C,MAAM,qIAAqI;QACrL,cAAc,UAAU,GAAG;QAC3B,aAAa;QACb,MAAM;KACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
package/dist/core/runtime.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { CompiledSchema } from "./types.js";
|
|
|
4
4
|
* while preserving full Zod compatibility (e.g. `_zod`, `shape`, `safeParseAsync`).
|
|
5
5
|
*
|
|
6
6
|
* parse/safeParse/parseAsync/safeParseAsync fall through to the original Zod schema via prototype.
|
|
7
|
-
* Only `
|
|
7
|
+
* Only `schema` is added as an own property.
|
|
8
8
|
*/
|
|
9
9
|
export declare function createFallback<T>(zodSchema: unknown): CompiledSchema<T>;
|
|
10
10
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAMvE"}
|
package/dist/core/runtime.js
CHANGED
|
@@ -3,13 +3,12 @@
|
|
|
3
3
|
* while preserving full Zod compatibility (e.g. `_zod`, `shape`, `safeParseAsync`).
|
|
4
4
|
*
|
|
5
5
|
* parse/safeParse/parseAsync/safeParseAsync fall through to the original Zod schema via prototype.
|
|
6
|
-
* Only `
|
|
6
|
+
* Only `schema` is added as an own property.
|
|
7
7
|
*/
|
|
8
8
|
export function createFallback(zodSchema) {
|
|
9
9
|
const schema = zodSchema;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return wrapped;
|
|
10
|
+
const facade = Object.create(schema);
|
|
11
|
+
facade.schema = zodSchema;
|
|
12
|
+
return facade;
|
|
14
13
|
}
|
|
15
14
|
//# sourceMappingURL=runtime.js.map
|
package/dist/core/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAI,SAAkB;IAClD,MAAM,MAAM,GAAG,SAAmC,CAAC;IAEnD,MAAM,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAI,SAAkB;IAClD,MAAM,MAAM,GAAG,SAAmC,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAsB,CAAC;IAC1D,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -229,7 +229,6 @@ export interface CompiledSchema<T> {
|
|
|
229
229
|
parseAsync(input: unknown): Promise<T>;
|
|
230
230
|
safeParse(input: unknown): SafeParseResult<T>;
|
|
231
231
|
safeParseAsync(input: unknown): Promise<SafeParseResult<T>>;
|
|
232
|
-
is(input: unknown): input is T;
|
|
233
232
|
schema: unknown;
|
|
234
233
|
}
|
|
235
234
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAUlF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBxB;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAUlF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkBxB;AAmBD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,MAAM,CA+BR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAaxD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { generateIIFE, ZOD_CONFIG_IMPORT, ZOD_MSG_DECLARATION } from "#src/core/iife.js";
|
|
2
2
|
import { compileSchemas } from "#src/core/pipeline.js";
|
|
3
3
|
import { discoverSchemas } from "#src/discovery.js";
|
|
4
4
|
/**
|
|
@@ -42,55 +42,6 @@ export async function transformCode(code, id, options) {
|
|
|
42
42
|
const compiled = compileSchemas(schemas);
|
|
43
43
|
return rewriteSource(code, compiled, { zodCompat: options?.zodCompat });
|
|
44
44
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Generate an IIFE that replaces a compile() call with inline optimized code.
|
|
47
|
-
*/
|
|
48
|
-
function generateInlineReplacement(schemaArgName, schema, options) {
|
|
49
|
-
const { codegenResult, fallbackEntries } = schema;
|
|
50
|
-
const fnName = extractFunctionName(codegenResult.functionName);
|
|
51
|
-
// Collect preamble lines (skip empty and marker)
|
|
52
|
-
const preambleLines = codegenResult.code
|
|
53
|
-
.split("\n")
|
|
54
|
-
.filter((l) => l.trim() !== "" && l.trim() !== "/* zod-aot */");
|
|
55
|
-
const preambleStr = preambleLines.length > 0 ? `${preambleLines.join("\n")}\n` : "";
|
|
56
|
-
// Build __fb declaration for partial fallback
|
|
57
|
-
let fbDecl = "";
|
|
58
|
-
if (fallbackEntries.length > 0) {
|
|
59
|
-
const exprs = fallbackEntries.map((fb) => `${schemaArgName}${fb.accessPath}`);
|
|
60
|
-
fbDecl = `var __fb=[${exprs.join(",")}];\n`;
|
|
61
|
-
}
|
|
62
|
-
// Capture Zod's localeError for message generation inside the IIFE
|
|
63
|
-
const msgDecl = "var __msg=__zodAotConfig().localeError;\n";
|
|
64
|
-
const zodCompat = options?.zodCompat !== false;
|
|
65
|
-
if (zodCompat) {
|
|
66
|
-
return [
|
|
67
|
-
"/* @__PURE__ */ (() => {",
|
|
68
|
-
msgDecl + fbDecl + preambleStr + codegenResult.functionName,
|
|
69
|
-
`var __w=Object.create(${schemaArgName});`,
|
|
70
|
-
`__w.parse=function(input){const r=${fnName}(input);if(r.success)return r.data;throw Object.assign(new Error("Validation failed"),r.error);};`,
|
|
71
|
-
`__w.safeParse=${fnName};`,
|
|
72
|
-
`__w.safeParseAsync=function(input){return Promise.resolve(${fnName}(input));};`,
|
|
73
|
-
`__w.parseAsync=function(input){const r=${fnName}(input);if(r.success)return Promise.resolve(r.data);return Promise.reject(Object.assign(new Error("Validation failed"),r.error));};`,
|
|
74
|
-
`__w.is=function(input){return ${fnName}(input).success;};`,
|
|
75
|
-
`__w.schema=${schemaArgName};`,
|
|
76
|
-
"return __w;",
|
|
77
|
-
"})()",
|
|
78
|
-
].join("\n");
|
|
79
|
-
}
|
|
80
|
-
return [
|
|
81
|
-
"/* @__PURE__ */ (() => {",
|
|
82
|
-
msgDecl + fbDecl + preambleStr + codegenResult.functionName,
|
|
83
|
-
"return {",
|
|
84
|
-
`parse(input){const r=${fnName}(input);if(r.success)return r.data;throw Object.assign(new Error("Validation failed"),r.error);},`,
|
|
85
|
-
`safeParse:${fnName},`,
|
|
86
|
-
`safeParseAsync(input){return Promise.resolve(${fnName}(input));},`,
|
|
87
|
-
`parseAsync(input){const r=${fnName}(input);if(r.success)return Promise.resolve(r.data);return Promise.reject(Object.assign(new Error("Validation failed"),r.error));},`,
|
|
88
|
-
`is(input){return ${fnName}(input).success;},`,
|
|
89
|
-
`schema:${schemaArgName},`,
|
|
90
|
-
"};",
|
|
91
|
-
"})()",
|
|
92
|
-
].join("\n");
|
|
93
|
-
}
|
|
94
45
|
/**
|
|
95
46
|
* Find the matching closing parenthesis for a compile() call,
|
|
96
47
|
* handling nested parentheses like compile(z.object({...})).
|
|
@@ -131,15 +82,14 @@ export function rewriteSource(code, schemas, options) {
|
|
|
131
82
|
.replace(/,\s*$/, "");
|
|
132
83
|
const prefix = match[1] ?? "";
|
|
133
84
|
const fullMatch = result.slice(match.index, closeParenIndex + 1);
|
|
134
|
-
const replacement = prefix +
|
|
85
|
+
const replacement = prefix + generateIIFE(schemaArgName, schema, options);
|
|
135
86
|
result = result.replace(fullMatch, replacement);
|
|
136
87
|
}
|
|
137
88
|
result = removeCompileImport(result);
|
|
138
89
|
// Add zod config import for __msg (localeError) used in IIFEs
|
|
139
|
-
if (!result.includes("
|
|
90
|
+
if (!result.includes("__msg"))
|
|
140
91
|
return result;
|
|
141
|
-
|
|
142
|
-
return result;
|
|
92
|
+
return [ZOD_CONFIG_IMPORT, ZOD_MSG_DECLARATION, result].join("\n");
|
|
143
93
|
}
|
|
144
94
|
/**
|
|
145
95
|
* Remove the `compile` binding from `import { compile, ... } from "zod-aot"` statements.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zod-aot",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Compile Zod schemas into zero-overhead validation functions at build time",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -74,12 +74,6 @@
|
|
|
74
74
|
"source": "./src/unplugin/bun.ts",
|
|
75
75
|
"import": "./dist/unplugin/bun.js",
|
|
76
76
|
"default": "./dist/unplugin/bun.js"
|
|
77
|
-
},
|
|
78
|
-
"./internals": {
|
|
79
|
-
"types": "./dist/internals.d.ts",
|
|
80
|
-
"source": "./src/internals.ts",
|
|
81
|
-
"import": "./dist/internals.js",
|
|
82
|
-
"default": "./dist/internals.js"
|
|
83
77
|
}
|
|
84
78
|
},
|
|
85
79
|
"dependencies": {
|
|
@@ -97,7 +91,7 @@
|
|
|
97
91
|
"devDependencies": {
|
|
98
92
|
"@types/node": "^25.5.0",
|
|
99
93
|
"tsx": "^4.21.0",
|
|
100
|
-
"typescript": "^5.
|
|
94
|
+
"typescript": "^5.9.3",
|
|
101
95
|
"zod": "^4.0.0"
|
|
102
96
|
},
|
|
103
97
|
"license": "MIT",
|
package/dist/internals.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type { CodeGenResult } from "#src/core/codegen/index.js";
|
|
2
|
-
export { generateValidator } from "#src/core/codegen/index.js";
|
|
3
|
-
export type { FallbackEntry } from "#src/core/extract/index.js";
|
|
4
|
-
export { extractSchema } from "#src/core/extract/index.js";
|
|
5
|
-
export { createFallback } from "#src/core/runtime.js";
|
|
6
|
-
export type { CheckIR, DateCheckIR, SchemaIR } from "#src/core/types.js";
|
|
7
|
-
//# sourceMappingURL=internals.d.ts.map
|
package/dist/internals.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internals.d.ts","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/internals.js
DELETED
package/dist/internals.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|