zod-aot 0.0.11 → 0.0.13
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 +29 -136
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +2 -10
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/emitter.d.ts +2 -9
- package/dist/cli/emitter.d.ts.map +1 -1
- package/dist/cli/emitter.js +4 -0
- package/dist/cli/emitter.js.map +1 -1
- package/dist/core/codegen/context.d.ts +2 -0
- package/dist/core/codegen/context.d.ts.map +1 -1
- package/dist/core/codegen/context.js +2 -0
- package/dist/core/codegen/context.js.map +1 -1
- package/dist/core/codegen/generators/array.js +4 -4
- package/dist/core/codegen/generators/array.js.map +1 -1
- package/dist/core/codegen/generators/bigint.js +6 -6
- package/dist/core/codegen/generators/bigint.js.map +1 -1
- package/dist/core/codegen/generators/boolean.js +1 -1
- package/dist/core/codegen/generators/boolean.js.map +1 -1
- package/dist/core/codegen/generators/date.js +5 -5
- package/dist/core/codegen/generators/date.js.map +1 -1
- package/dist/core/codegen/generators/discriminated-union.js +2 -2
- package/dist/core/codegen/generators/discriminated-union.js.map +1 -1
- package/dist/core/codegen/generators/enum.js +2 -2
- package/dist/core/codegen/generators/enum.js.map +1 -1
- package/dist/core/codegen/generators/literal.js +2 -2
- package/dist/core/codegen/generators/literal.js.map +1 -1
- package/dist/core/codegen/generators/map.d.ts +1 -1
- package/dist/core/codegen/generators/map.d.ts.map +1 -1
- package/dist/core/codegen/generators/map.js +4 -4
- package/dist/core/codegen/generators/map.js.map +1 -1
- package/dist/core/codegen/generators/null.js +1 -1
- package/dist/core/codegen/generators/null.js.map +1 -1
- package/dist/core/codegen/generators/number.d.ts.map +1 -1
- package/dist/core/codegen/generators/number.js +9 -7
- package/dist/core/codegen/generators/number.js.map +1 -1
- package/dist/core/codegen/generators/object.js +1 -1
- package/dist/core/codegen/generators/object.js.map +1 -1
- package/dist/core/codegen/generators/pipe.d.ts +1 -1
- package/dist/core/codegen/generators/pipe.d.ts.map +1 -1
- package/dist/core/codegen/generators/pipe.js +3 -3
- package/dist/core/codegen/generators/pipe.js.map +1 -1
- package/dist/core/codegen/generators/record.js +1 -1
- package/dist/core/codegen/generators/record.js.map +1 -1
- package/dist/core/codegen/generators/set.d.ts +1 -1
- package/dist/core/codegen/generators/set.d.ts.map +1 -1
- package/dist/core/codegen/generators/set.js +5 -5
- package/dist/core/codegen/generators/set.js.map +1 -1
- package/dist/core/codegen/generators/string.d.ts.map +1 -1
- package/dist/core/codegen/generators/string.js +9 -8
- package/dist/core/codegen/generators/string.js.map +1 -1
- package/dist/core/codegen/generators/tuple.d.ts.map +1 -1
- package/dist/core/codegen/generators/tuple.js +3 -5
- package/dist/core/codegen/generators/tuple.js.map +1 -1
- package/dist/core/codegen/generators/undefined.js +1 -1
- package/dist/core/codegen/generators/undefined.js.map +1 -1
- package/dist/core/codegen/generators/union.d.ts.map +1 -1
- package/dist/core/codegen/generators/union.js +6 -2
- package/dist/core/codegen/generators/union.js.map +1 -1
- package/dist/core/codegen/index.d.ts.map +1 -1
- package/dist/core/codegen/index.js +7 -1
- package/dist/core/codegen/index.js.map +1 -1
- package/dist/core/pipeline.d.ts +17 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/pipeline.js +17 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +7 -0
- package/dist/internals.d.ts.map +1 -0
- package/dist/internals.js +4 -0
- package/dist/internals.js.map +1 -0
- package/dist/unplugin/transform.d.ts +1 -8
- package/dist/unplugin/transform.d.ts.map +1 -1
- package/dist/unplugin/transform.js +12 -15
- package/dist/unplugin/transform.js.map +1 -1
- package/package.json +6 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { extractFunctionName } from "#src/core/codegen/context.js";
|
|
2
|
-
import {
|
|
3
|
-
import { extractSchema } from "#src/core/extractor.js";
|
|
2
|
+
import { compileSchemas } from "#src/core/pipeline.js";
|
|
4
3
|
import { discoverSchemas } from "#src/discovery.js";
|
|
5
4
|
/**
|
|
6
5
|
* Check if a file should be transformed by the plugin.
|
|
@@ -40,21 +39,14 @@ export async function transformCode(code, id) {
|
|
|
40
39
|
if (schemas.length === 0)
|
|
41
40
|
return null;
|
|
42
41
|
// For each schema, run the compilation pipeline
|
|
43
|
-
const compiled =
|
|
44
|
-
for (const s of schemas) {
|
|
45
|
-
const fallbackEntries = [];
|
|
46
|
-
const ir = extractSchema(s.schema, fallbackEntries);
|
|
47
|
-
const result = generateValidator(ir, s.exportName, {
|
|
48
|
-
fallbackCount: fallbackEntries.length,
|
|
49
|
-
});
|
|
50
|
-
compiled.push({ exportName: s.exportName, codegenResult: result, fallbackEntries });
|
|
51
|
-
}
|
|
42
|
+
const compiled = compileSchemas(schemas);
|
|
52
43
|
return rewriteSource(code, compiled);
|
|
53
44
|
}
|
|
54
45
|
/**
|
|
55
46
|
* Generate an IIFE that replaces a compile() call with inline optimized code.
|
|
56
47
|
*/
|
|
57
|
-
function generateInlineReplacement(schemaArgName,
|
|
48
|
+
function generateInlineReplacement(schemaArgName, schema) {
|
|
49
|
+
const { codegenResult, fallbackEntries } = schema;
|
|
58
50
|
const fnName = extractFunctionName(codegenResult.functionName);
|
|
59
51
|
// Collect preamble lines (skip empty and marker)
|
|
60
52
|
const preambleLines = codegenResult.code
|
|
@@ -67,9 +59,11 @@ function generateInlineReplacement(schemaArgName, codegenResult, fallbackEntries
|
|
|
67
59
|
const exprs = fallbackEntries.map((fb) => `${schemaArgName}${fb.accessPath}`);
|
|
68
60
|
fbDecl = `var __fb=[${exprs.join(",")}];\n`;
|
|
69
61
|
}
|
|
62
|
+
// Capture Zod's localeError for message generation inside the IIFE
|
|
63
|
+
const msgDecl = "var __msg=__zodAotConfig().localeError;\n";
|
|
70
64
|
return [
|
|
71
65
|
"/* @__PURE__ */ (() => {",
|
|
72
|
-
fbDecl + preambleStr + codegenResult.functionName,
|
|
66
|
+
msgDecl + fbDecl + preambleStr + codegenResult.functionName,
|
|
73
67
|
"return {",
|
|
74
68
|
`parse(input){const r=${fnName}(input);if(r.success)return r.data;throw Object.assign(new Error("Validation failed"),r.error);},`,
|
|
75
69
|
`safeParse:${fnName},`,
|
|
@@ -116,11 +110,14 @@ export function rewriteSource(code, schemas) {
|
|
|
116
110
|
const schemaArgName = result.slice(openParenIndex + 1, closeParenIndex).trim();
|
|
117
111
|
const prefix = match[1] ?? "";
|
|
118
112
|
const fullMatch = result.slice(match.index, closeParenIndex + 1);
|
|
119
|
-
const replacement = prefix +
|
|
120
|
-
generateInlineReplacement(schemaArgName, schema.codegenResult, schema.fallbackEntries);
|
|
113
|
+
const replacement = prefix + generateInlineReplacement(schemaArgName, schema);
|
|
121
114
|
result = result.replace(fullMatch, replacement);
|
|
122
115
|
}
|
|
123
116
|
result = removeCompileImport(result);
|
|
117
|
+
// Add zod config import for __msg (localeError) used in IIFEs
|
|
118
|
+
if (!result.includes("__zodAotConfig"))
|
|
119
|
+
return result;
|
|
120
|
+
result = `import { config as __zodAotConfig } from "zod";\n${result}`;
|
|
124
121
|
return result;
|
|
125
122
|
}
|
|
126
123
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"
|
|
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.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"description": "Compile Zod schemas into zero-overhead validation functions at build time",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -57,6 +57,11 @@
|
|
|
57
57
|
"types": "./dist/unplugin/rollup.d.ts",
|
|
58
58
|
"import": "./dist/unplugin/rollup.js",
|
|
59
59
|
"default": "./dist/unplugin/rollup.js"
|
|
60
|
+
},
|
|
61
|
+
"./internals": {
|
|
62
|
+
"types": "./dist/internals.d.ts",
|
|
63
|
+
"import": "./dist/internals.js",
|
|
64
|
+
"default": "./dist/internals.js"
|
|
60
65
|
}
|
|
61
66
|
},
|
|
62
67
|
"dependencies": {
|