zod-compiler 1.0.3 → 1.0.4
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/dist/cli/index.js +0 -0
- package/dist/loader.d.ts +10 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +22 -0
- package/dist/loader.js.map +1 -1
- package/dist/unplugin/disk-cache.d.ts +57 -0
- package/dist/unplugin/disk-cache.d.ts.map +1 -0
- package/dist/unplugin/disk-cache.js +211 -0
- package/dist/unplugin/disk-cache.js.map +1 -0
- package/dist/unplugin/index.d.ts.map +1 -1
- package/dist/unplugin/index.js +67 -2
- package/dist/unplugin/index.js.map +1 -1
- package/dist/unplugin/transform.d.ts.map +1 -1
- package/dist/unplugin/transform.js +41 -5
- package/dist/unplugin/transform.js.map +1 -1
- package/dist/unplugin/types.d.ts +20 -0
- package/dist/unplugin/types.d.ts.map +1 -1
- package/dist/unplugin/types.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
File without changes
|
package/dist/loader.d.ts
CHANGED
|
@@ -11,6 +11,16 @@
|
|
|
11
11
|
* and fast.
|
|
12
12
|
*/
|
|
13
13
|
export declare function invalidateModuleCache(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Absolute paths of every first-party (non-node_modules) module currently
|
|
16
|
+
* executed by the shared loader. Used by the unplugin disk cache to record
|
|
17
|
+
* which source files a schema file's discovery depended on — a superset is
|
|
18
|
+
* safe (it can only over-invalidate, never serve stale results).
|
|
19
|
+
*
|
|
20
|
+
* Returns null when no jiti instance exists (Bun/Deno native import — no
|
|
21
|
+
* evictable cache, so dependency tracking is unavailable).
|
|
22
|
+
*/
|
|
23
|
+
export declare function getFirstPartyModulePaths(): string[] | null;
|
|
14
24
|
/**
|
|
15
25
|
* Dynamically import a source file (.ts or .js).
|
|
16
26
|
* - Bun/Deno: native TypeScript support, direct import
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAoFA;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAiBD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmBvF"}
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAoFA;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAS5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,GAAG,IAAI,CAW1D;AAiBD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmBvF"}
|
package/dist/loader.js
CHANGED
|
@@ -88,6 +88,28 @@ export function invalidateModuleCache() {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Absolute paths of every first-party (non-node_modules) module currently
|
|
93
|
+
* executed by the shared loader. Used by the unplugin disk cache to record
|
|
94
|
+
* which source files a schema file's discovery depended on — a superset is
|
|
95
|
+
* safe (it can only over-invalidate, never serve stale results).
|
|
96
|
+
*
|
|
97
|
+
* Returns null when no jiti instance exists (Bun/Deno native import — no
|
|
98
|
+
* evictable cache, so dependency tracking is unavailable).
|
|
99
|
+
*/
|
|
100
|
+
export function getFirstPartyModulePaths() {
|
|
101
|
+
if (jitiInstances.size === 0)
|
|
102
|
+
return null;
|
|
103
|
+
const paths = [];
|
|
104
|
+
for (const jiti of jitiInstances.values()) {
|
|
105
|
+
for (const key of Object.keys(jiti.cache)) {
|
|
106
|
+
if (!key.includes(NODE_MODULES_SEGMENT)) {
|
|
107
|
+
paths.push(key);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return paths;
|
|
112
|
+
}
|
|
91
113
|
async function getJiti(absPath) {
|
|
92
114
|
const { key, alias } = resolveLoaderConfig(path.dirname(absPath));
|
|
93
115
|
const existing = jitiInstances.get(key);
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent transform-result cache.
|
|
3
|
+
*
|
|
4
|
+
* The expensive part of the unplugin transform is discovery: executing the
|
|
5
|
+
* schema file (and transitively its whole first-party import graph) through
|
|
6
|
+
* jiti inside the bundler's single-threaded server process. The in-memory
|
|
7
|
+
* caches die with the process, so every `vitest run` / build re-pays that
|
|
8
|
+
* cost even when nothing changed — which is exactly the loop integration
|
|
9
|
+
* tests live in.
|
|
10
|
+
*
|
|
11
|
+
* Entries are keyed by a hash of (plugin version, zod version, transform
|
|
12
|
+
* options, file id, file content) and validated against a recorded snapshot
|
|
13
|
+
* of the first-party modules the loader executed for the file. Validation
|
|
14
|
+
* uses an mtime+size fast path and falls back to content hashing, so a
|
|
15
|
+
* `touch` without changes still hits. A superset of true dependencies only
|
|
16
|
+
* over-invalidates, never serves stale output.
|
|
17
|
+
*
|
|
18
|
+
* Writes are atomic (tmp file + rename) so concurrent bundler processes
|
|
19
|
+
* (vitest workspace projects) can share one cache directory safely.
|
|
20
|
+
*/
|
|
21
|
+
export interface CacheEntryStats {
|
|
22
|
+
schemas: number;
|
|
23
|
+
optimized: number;
|
|
24
|
+
}
|
|
25
|
+
interface DepRecord {
|
|
26
|
+
hash: string;
|
|
27
|
+
mtimeMs: number;
|
|
28
|
+
size: number;
|
|
29
|
+
}
|
|
30
|
+
export interface CacheEntry {
|
|
31
|
+
/** Transformed code, or null when the transform produced no change. */
|
|
32
|
+
result: string | null;
|
|
33
|
+
/** First-party files whose executions the transform depended on. */
|
|
34
|
+
deps: Record<string, DepRecord>;
|
|
35
|
+
/** Build stats to replay on cache hits (only present when schemas compiled). */
|
|
36
|
+
stats?: CacheEntryStats;
|
|
37
|
+
}
|
|
38
|
+
/** Reset the per-process dep stat memo (watch-mode file changes). */
|
|
39
|
+
export declare function resetDepValidationMemo(): void;
|
|
40
|
+
export declare class DiskCache {
|
|
41
|
+
private readonly dir;
|
|
42
|
+
private readonly optionsKey;
|
|
43
|
+
constructor(dir: string, optionsKey: string);
|
|
44
|
+
/**
|
|
45
|
+
* Resolve the cache directory: an explicit string wins; otherwise
|
|
46
|
+
* node_modules/.cache/zod-compiler under cwd (falling back to a
|
|
47
|
+
* project-local .zod-compiler-cache when node_modules doesn't exist).
|
|
48
|
+
*/
|
|
49
|
+
static resolveDir(cacheOption: string | true): string;
|
|
50
|
+
key(id: string, code: string): string;
|
|
51
|
+
private entryPath;
|
|
52
|
+
/** Load an entry and validate every recorded dep. Any failure → null. */
|
|
53
|
+
load(key: string): CacheEntry | null;
|
|
54
|
+
save(key: string, result: string | null, depPaths: readonly string[], stats?: CacheEntryStats): void;
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=disk-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disk-cache.d.ts","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,gFAAgF;IAChF,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AA6GD,qEAAqE;AACrE,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAK3C;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAOrD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAMrC,OAAO,CAAC,SAAS;IAIjB,yEAAyE;IACzE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAmBpC,IAAI,CACF,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,KAAK,CAAC,EAAE,eAAe,GACtB,IAAI;CAuBR"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent transform-result cache.
|
|
3
|
+
*
|
|
4
|
+
* The expensive part of the unplugin transform is discovery: executing the
|
|
5
|
+
* schema file (and transitively its whole first-party import graph) through
|
|
6
|
+
* jiti inside the bundler's single-threaded server process. The in-memory
|
|
7
|
+
* caches die with the process, so every `vitest run` / build re-pays that
|
|
8
|
+
* cost even when nothing changed — which is exactly the loop integration
|
|
9
|
+
* tests live in.
|
|
10
|
+
*
|
|
11
|
+
* Entries are keyed by a hash of (plugin version, zod version, transform
|
|
12
|
+
* options, file id, file content) and validated against a recorded snapshot
|
|
13
|
+
* of the first-party modules the loader executed for the file. Validation
|
|
14
|
+
* uses an mtime+size fast path and falls back to content hashing, so a
|
|
15
|
+
* `touch` without changes still hits. A superset of true dependencies only
|
|
16
|
+
* over-invalidates, never serves stale output.
|
|
17
|
+
*
|
|
18
|
+
* Writes are atomic (tmp file + rename) so concurrent bundler processes
|
|
19
|
+
* (vitest workspace projects) can share one cache directory safely.
|
|
20
|
+
*/
|
|
21
|
+
import { createHash } from "node:crypto";
|
|
22
|
+
import * as fs from "node:fs";
|
|
23
|
+
import * as path from "node:path";
|
|
24
|
+
import { fileURLToPath } from "node:url";
|
|
25
|
+
function sha1(data) {
|
|
26
|
+
return createHash("sha1").update(data).digest("hex");
|
|
27
|
+
}
|
|
28
|
+
/** Read own package version once for cache keying (src and dist both sit two levels below the package root). */
|
|
29
|
+
function readPluginVersion() {
|
|
30
|
+
try {
|
|
31
|
+
const pkgPath = new URL("../../package.json", import.meta.url);
|
|
32
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
33
|
+
return pkg.version ?? "0";
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return "0";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Resolve the installed zod version — generated code depends on zod internals. */
|
|
40
|
+
function readZodVersion() {
|
|
41
|
+
try {
|
|
42
|
+
const pkgPath = path.join(process.cwd(), "node_modules", "zod", "package.json");
|
|
43
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
44
|
+
return pkg.version ?? "0";
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return "0";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Build fingerprint: the newest mtime across the package's own source trees.
|
|
52
|
+
* The published version string alone is not enough — file: installs, linked
|
|
53
|
+
* monorepo packages, and canary builds rebuild the compiler without a version
|
|
54
|
+
* bump, and serving codegen from an older compiler build would be silently
|
|
55
|
+
* stale. Walking ~200 dirents once per process costs ~1ms.
|
|
56
|
+
*/
|
|
57
|
+
function readBuildFingerprint() {
|
|
58
|
+
let newest = 0;
|
|
59
|
+
let files = 0;
|
|
60
|
+
const walk = (dir) => {
|
|
61
|
+
let entries;
|
|
62
|
+
try {
|
|
63
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
for (const entry of entries) {
|
|
69
|
+
const p = path.join(dir, entry.name);
|
|
70
|
+
if (entry.isDirectory()) {
|
|
71
|
+
walk(p);
|
|
72
|
+
}
|
|
73
|
+
else if (/\.(?:js|ts|json)$/.test(entry.name)) {
|
|
74
|
+
try {
|
|
75
|
+
const m = fs.statSync(p).mtimeMs;
|
|
76
|
+
files++;
|
|
77
|
+
if (m > newest)
|
|
78
|
+
newest = m;
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// unreadable file — ignore
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
try {
|
|
87
|
+
const root = fileURLToPath(new URL("../..", import.meta.url));
|
|
88
|
+
for (const sub of ["dist", "src"]) {
|
|
89
|
+
walk(path.join(root, sub));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return "0";
|
|
94
|
+
}
|
|
95
|
+
return `${newest}:${files}`;
|
|
96
|
+
}
|
|
97
|
+
const PLUGIN_VERSION = readPluginVersion();
|
|
98
|
+
const ZOD_VERSION = readZodVersion();
|
|
99
|
+
const BUILD_FINGERPRINT = readBuildFingerprint();
|
|
100
|
+
/**
|
|
101
|
+
* Per-process memo: path → current stat (+ lazily computed content hash).
|
|
102
|
+
* One fs.stat per file per process regardless of how many cache entries
|
|
103
|
+
* reference it; content is read at most once.
|
|
104
|
+
*/
|
|
105
|
+
const depStatMemo = new Map();
|
|
106
|
+
function statDep(depPath) {
|
|
107
|
+
const memo = depStatMemo.get(depPath);
|
|
108
|
+
if (memo !== undefined)
|
|
109
|
+
return memo;
|
|
110
|
+
let result;
|
|
111
|
+
try {
|
|
112
|
+
const stat = fs.statSync(depPath);
|
|
113
|
+
result = { mtimeMs: stat.mtimeMs, size: stat.size };
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
result = null;
|
|
117
|
+
}
|
|
118
|
+
depStatMemo.set(depPath, result);
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
function hashDep(depPath, stat) {
|
|
122
|
+
if (stat.hash !== undefined)
|
|
123
|
+
return stat.hash;
|
|
124
|
+
try {
|
|
125
|
+
stat.hash = sha1(fs.readFileSync(depPath));
|
|
126
|
+
return stat.hash;
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/** Reset the per-process dep stat memo (watch-mode file changes). */
|
|
133
|
+
export function resetDepValidationMemo() {
|
|
134
|
+
depStatMemo.clear();
|
|
135
|
+
}
|
|
136
|
+
export class DiskCache {
|
|
137
|
+
dir;
|
|
138
|
+
optionsKey;
|
|
139
|
+
constructor(dir, optionsKey) {
|
|
140
|
+
this.dir = dir;
|
|
141
|
+
this.optionsKey = optionsKey;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Resolve the cache directory: an explicit string wins; otherwise
|
|
145
|
+
* node_modules/.cache/zod-compiler under cwd (falling back to a
|
|
146
|
+
* project-local .zod-compiler-cache when node_modules doesn't exist).
|
|
147
|
+
*/
|
|
148
|
+
static resolveDir(cacheOption) {
|
|
149
|
+
if (typeof cacheOption === "string")
|
|
150
|
+
return path.resolve(cacheOption);
|
|
151
|
+
const nm = path.join(process.cwd(), "node_modules");
|
|
152
|
+
if (fs.existsSync(nm))
|
|
153
|
+
return path.join(nm, ".cache", "zod-compiler");
|
|
154
|
+
return path.join(process.cwd(), ".zod-compiler-cache");
|
|
155
|
+
}
|
|
156
|
+
key(id, code) {
|
|
157
|
+
return sha1(`${PLUGIN_VERSION}\0${BUILD_FINGERPRINT}\0${ZOD_VERSION}\0${this.optionsKey}\0${id}\0${code}`);
|
|
158
|
+
}
|
|
159
|
+
entryPath(key) {
|
|
160
|
+
return path.join(this.dir, `${key}.json`);
|
|
161
|
+
}
|
|
162
|
+
/** Load an entry and validate every recorded dep. Any failure → null. */
|
|
163
|
+
load(key) {
|
|
164
|
+
let entry;
|
|
165
|
+
try {
|
|
166
|
+
entry = JSON.parse(fs.readFileSync(this.entryPath(key), "utf8"));
|
|
167
|
+
}
|
|
168
|
+
catch {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
if (entry === null || typeof entry !== "object" || typeof entry.deps !== "object") {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
for (const [depPath, recorded] of Object.entries(entry.deps)) {
|
|
175
|
+
const current = statDep(depPath);
|
|
176
|
+
if (current === null)
|
|
177
|
+
return null;
|
|
178
|
+
if (current.mtimeMs === recorded.mtimeMs && current.size === recorded.size)
|
|
179
|
+
continue;
|
|
180
|
+
if (hashDep(depPath, current) !== recorded.hash)
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
return entry;
|
|
184
|
+
}
|
|
185
|
+
save(key, result, depPaths, stats) {
|
|
186
|
+
const deps = {};
|
|
187
|
+
for (const depPath of depPaths) {
|
|
188
|
+
const stat = statDep(depPath);
|
|
189
|
+
const hash = stat === null ? null : hashDep(depPath, stat);
|
|
190
|
+
if (stat === null || hash === null) {
|
|
191
|
+
// A dep we cannot re-read can never validate — skip persisting.
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
deps[depPath] = { hash, mtimeMs: stat.mtimeMs, size: stat.size };
|
|
195
|
+
}
|
|
196
|
+
const entry = { result, deps };
|
|
197
|
+
if (stats)
|
|
198
|
+
entry.stats = stats;
|
|
199
|
+
try {
|
|
200
|
+
fs.mkdirSync(this.dir, { recursive: true });
|
|
201
|
+
const file = this.entryPath(key);
|
|
202
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
203
|
+
fs.writeFileSync(tmp, JSON.stringify(entry));
|
|
204
|
+
fs.renameSync(tmp, file);
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
// Cache writes are best-effort; failures only cost a recompute.
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=disk-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disk-cache.js","sourceRoot":"","sources":["../../src/unplugin/disk-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAc,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAiCvE,eAAO,MAAM,QAAQ,oFAyKpB,CAAC;AAEF,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/unplugin/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import process from "node:process";
|
|
2
2
|
import { createUnplugin } from "unplugin";
|
|
3
|
-
import { invalidateModuleCache } from "#src/loader.js";
|
|
3
|
+
import { getFirstPartyModulePaths, invalidateModuleCache } from "#src/loader.js";
|
|
4
|
+
import { DiskCache, resetDepValidationMemo } from "./disk-cache.js";
|
|
4
5
|
import { log, shouldTransform, transformCode } from "./transform.js";
|
|
5
6
|
import { BuildStatsAccumulator } from "./types.js";
|
|
6
7
|
import { loadVirtual, RESOLVED_RUNTIME_ID, resolveVirtualId, VIRTUAL_RUNTIME_ID, WP_RUNTIME_ID, } from "./virtual.js";
|
|
@@ -33,6 +34,23 @@ export const unplugin = createUnplugin((options, meta) => {
|
|
|
33
34
|
const verbose = options?.verbose === true;
|
|
34
35
|
const mode = VIRTUAL_MODULE_FRAMEWORKS.has(meta.framework) ? "lean" : "inline";
|
|
35
36
|
const runtimeId = WP_FRAMEWORKS.has(meta.framework) ? WP_RUNTIME_ID : VIRTUAL_RUNTIME_ID;
|
|
37
|
+
// Persistent transform-result cache: discovery executes schema files (and
|
|
38
|
+
// their import graphs) in-process, and the in-memory caches die with the
|
|
39
|
+
// process — without a disk cache every test run / build re-pays that cost.
|
|
40
|
+
// Entries self-validate against dep content hashes, so watch invalidation
|
|
41
|
+
// semantics carry across processes.
|
|
42
|
+
const cacheOption = options?.cache ?? true;
|
|
43
|
+
const diskCache = cacheOption === false
|
|
44
|
+
? null
|
|
45
|
+
: new DiskCache(DiskCache.resolveDir(cacheOption), JSON.stringify({
|
|
46
|
+
mode,
|
|
47
|
+
runtimeId,
|
|
48
|
+
zodCompat: options?.zodCompat ?? true,
|
|
49
|
+
autoDiscover: options?.autoDiscover ?? false,
|
|
50
|
+
hoist: typeof options?.hoist === "object"
|
|
51
|
+
? String(options.hoist.schemaNamePattern ?? "default")
|
|
52
|
+
: (options?.hoist ?? true),
|
|
53
|
+
}));
|
|
36
54
|
// Vite only (other bundlers ignore the field): when the plugin runs.
|
|
37
55
|
// The default compiles production builds AND test runs — tests should
|
|
38
56
|
// exercise (and benefit from) the validators that ship — while plain dev
|
|
@@ -68,6 +86,30 @@ export const unplugin = createUnplugin((options, meta) => {
|
|
|
68
86
|
// hook): drop stale module executions before re-discovering.
|
|
69
87
|
invalidateModuleCache();
|
|
70
88
|
}
|
|
89
|
+
// Disk cache: skip static-filtering, discovery (file execution!) and
|
|
90
|
+
// codegen entirely when a previous process already transformed this
|
|
91
|
+
// exact content and every dep it executed is unchanged.
|
|
92
|
+
const diskKey = diskCache === null ? null : diskCache.key(id, code);
|
|
93
|
+
if (diskCache !== null && diskKey !== null) {
|
|
94
|
+
const entry = diskCache.load(diskKey);
|
|
95
|
+
if (entry !== null) {
|
|
96
|
+
cache.set(id, { code, result: entry.result });
|
|
97
|
+
if (entry.stats) {
|
|
98
|
+
stats.add({
|
|
99
|
+
files: 1,
|
|
100
|
+
schemas: entry.stats.schemas,
|
|
101
|
+
optimized: entry.stats.optimized,
|
|
102
|
+
failed: 0,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (verbose && entry.result !== null) {
|
|
106
|
+
log(`Using cached transform for ${id}`);
|
|
107
|
+
}
|
|
108
|
+
return entry.result === null ? undefined : { code: entry.result, map: null };
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
let discoveryRan = false;
|
|
112
|
+
let fileStats = null;
|
|
71
113
|
const result = await transformCode(code, id, {
|
|
72
114
|
mode,
|
|
73
115
|
runtimeId,
|
|
@@ -75,11 +117,31 @@ export const unplugin = createUnplugin((options, meta) => {
|
|
|
75
117
|
zodCompat: options?.zodCompat,
|
|
76
118
|
autoDiscover: options?.autoDiscover,
|
|
77
119
|
hoist: options?.hoist,
|
|
120
|
+
onDiscovery() {
|
|
121
|
+
discoveryRan = true;
|
|
122
|
+
},
|
|
78
123
|
onBuildStats(s) {
|
|
79
124
|
stats.add(s);
|
|
125
|
+
fileStats = s;
|
|
80
126
|
},
|
|
81
127
|
});
|
|
82
128
|
cache.set(id, { code, result });
|
|
129
|
+
// Persist when the transform did real work: produced output, or ran
|
|
130
|
+
// discovery (whose cost is what the cache exists to avoid). Textual
|
|
131
|
+
// bail-outs are cheaper than a cache probe — never persisted.
|
|
132
|
+
if (diskCache !== null && diskKey !== null && (result !== null || discoveryRan)) {
|
|
133
|
+
// Dep tracking needs the jiti loader (Node). getFirstPartyModulePaths
|
|
134
|
+
// returns the superset of first-party modules executed so far —
|
|
135
|
+
// supersets only over-invalidate. Discovery-free results (hoist-only
|
|
136
|
+
// rewrites) are pure functions of the file content: no deps.
|
|
137
|
+
const deps = discoveryRan ? getFirstPartyModulePaths() : [];
|
|
138
|
+
if (deps !== null) {
|
|
139
|
+
// TS narrows fileStats to null here (assignment happens inside a
|
|
140
|
+
// callback it cannot track) — widen back.
|
|
141
|
+
const s = fileStats;
|
|
142
|
+
diskCache.save(diskKey, result, deps, s === null ? undefined : { schemas: s.schemas, optimized: s.optimized });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
83
145
|
if (!result)
|
|
84
146
|
return;
|
|
85
147
|
return { code: result, map: null };
|
|
@@ -91,8 +153,11 @@ export const unplugin = createUnplugin((options, meta) => {
|
|
|
91
153
|
return;
|
|
92
154
|
// The changed file may be a dependency of any schema file, so both
|
|
93
155
|
// the module cache (executions) and the transform result cache are
|
|
94
|
-
// invalidated wholesale. node_modules stay warm in the loader.
|
|
156
|
+
// invalidated wholesale. node_modules stay warm in the loader. Disk
|
|
157
|
+
// cache entries self-validate via dep hashes — only the per-process
|
|
158
|
+
// stat memo needs resetting so changed files re-hash.
|
|
95
159
|
invalidateModuleCache();
|
|
160
|
+
resetDepValidationMemo();
|
|
96
161
|
cache.clear();
|
|
97
162
|
},
|
|
98
163
|
buildEnd() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAA4B,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/unplugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAA4B,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,MAAM;IACN,QAAQ;IACR,UAAU;IACV,SAAS;IACT,MAAM;IACN,KAAK;IACL,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAErD,sEAAsE;AACtE,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CACpC,CAAC,OAA6C,EAAE,IAAyB,EAAE,EAAE;IAC3E,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC1C,uEAAuE;IACvE,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmD,CAAC;IACzE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAgB,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5F,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACzF,0EAA0E;IAC1E,yEAAyE;IACzE,2EAA2E;IAC3E,0EAA0E;IAC1E,oCAAoC;IACpC,MAAM,WAAW,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;IAC3C,MAAM,SAAS,GACb,WAAW,KAAK,KAAK;QACnB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,SAAS,CACX,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,EACjC,IAAI,CAAC,SAAS,CAAC;YACb,IAAI;YACJ,SAAS;YACT,SAAS,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI;YACrC,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,KAAK;YAC5C,KAAK,EACH,OAAO,OAAO,EAAE,KAAK,KAAK,QAAQ;gBAChC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,SAAS,CAAC;gBACtD,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;SAC/B,CAAC,CACH,CAAC;IACR,qEAAqE;IACrE,sEAAsE;IACtE,yEAAyE;IACzE,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,SAAS,GACb,OAAO,EAAE,KAAK,KAAK,KAAK;QACtB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK;YACf,CAAC,CAAC,OAAgB,EAAE,GAAsC,EAAE,EAAE,CAC5D,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC;IAEhG,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,KAAc;QAEvB,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;QAEzD,SAAS,CAAC,EAAU;YAClB,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,WAAW,CAAC,EAAU;YACpB,OAAO,EAAE,KAAK,mBAAmB,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,EAAU;YACb,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QAED,gBAAgB,CAAC,EAAU;YACzB,OAAO,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,EAAU;YACtC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnC,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;YACjF,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,iEAAiE;gBACjE,6DAA6D;gBAC7D,qBAAqB,EAAE,CAAC;YAC1B,CAAC;YAED,qEAAqE;YACrE,oEAAoE;YACpE,wDAAwD;YACxD,MAAM,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC9C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBAChB,KAAK,CAAC,GAAG,CAAC;4BACR,KAAK,EAAE,CAAC;4BACR,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;4BAC5B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;4BAChC,MAAM,EAAE,CAAC;yBACV,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;wBACrC,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC/E,CAAC;YACH,CAAC;YAED,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,SAAS,GAAsB,IAAI,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE;gBAC3C,IAAI;gBACJ,SAAS;gBACT,OAAO;gBACP,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,YAAY,EAAE,OAAO,EAAE,YAAY;gBACnC,KAAK,EAAE,OAAO,EAAE,KAAK;gBACrB,WAAW;oBACT,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;gBACD,YAAY,CAAC,CAAC;oBACZ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACb,SAAS,GAAG,CAAC,CAAC;gBAChB,CAAC;aACF,CAAC,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAEhC,oEAAoE;YACpE,oEAAoE;YACpE,8DAA8D;YAC9D,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,YAAY,CAAC,EAAE,CAAC;gBAChF,sEAAsE;gBACtE,gEAAgE;gBAChE,qEAAqE;gBACrE,6DAA6D;gBAC7D,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,iEAAiE;oBACjE,0CAA0C;oBAC1C,MAAM,CAAC,GAAG,SAA8B,CAAC;oBACzC,SAAS,CAAC,IAAI,CACZ,OAAO,EACP,MAAM,EACN,IAAI,EACJ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CACxE,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,WAAW,CAAC,EAAU;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO;YAClC,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,OAAO;YACxC,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,oEAAoE;YACpE,sDAAsD;YACtD,qBAAqB,EAAE,CAAC;YACxB,sBAAsB,EAAE,CAAC;YACzB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QAED,QAAQ;YACN,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;gBAAE,OAAO;YAChC,GAAG,CACD,kBAAkB,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,6BAA6B,KAAK,CAAC,KAAK,UAAU;gBAClG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CACvD,CAAC;YACF,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"AAUA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA0C7E;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAevF;AAED,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGrC;AAOD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8IxB;AA8DD;;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,CA2BR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUrE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC5C,MAAM,CAuBR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAaxD"}
|
|
@@ -8,6 +8,41 @@ import { hoistZodSchemas } from "./hoist.js";
|
|
|
8
8
|
import { VIRTUAL_RUNTIME_ID } from "./virtual.js";
|
|
9
9
|
/** Matches a runtime (non-type-only) import from "zod". */
|
|
10
10
|
const HAS_RUNTIME_ZOD_IMPORT = /import\s+(?!type\s)[^;]*from\s+["']zod["']/;
|
|
11
|
+
/**
|
|
12
|
+
* Opt-in phase timing (ZOD_COMPILER_TIMING=1): accumulates per-phase wall time
|
|
13
|
+
* across all transform calls and prints a summary on process exit. Used to
|
|
14
|
+
* attribute plugin overhead in real builds/test runs.
|
|
15
|
+
*/
|
|
16
|
+
const TIMING = process.env["ZOD_COMPILER_TIMING"] === "1";
|
|
17
|
+
const phaseTotals = new Map();
|
|
18
|
+
let timingHookInstalled = false;
|
|
19
|
+
function timePhase(phase, fn) {
|
|
20
|
+
if (!TIMING)
|
|
21
|
+
return fn();
|
|
22
|
+
const t0 = performance.now();
|
|
23
|
+
const done = () => {
|
|
24
|
+
const dt = performance.now() - t0;
|
|
25
|
+
const agg = phaseTotals.get(phase) ?? { ms: 0, calls: 0 };
|
|
26
|
+
agg.ms += dt;
|
|
27
|
+
agg.calls++;
|
|
28
|
+
phaseTotals.set(phase, agg);
|
|
29
|
+
};
|
|
30
|
+
if (!timingHookInstalled) {
|
|
31
|
+
timingHookInstalled = true;
|
|
32
|
+
process.on("exit", () => {
|
|
33
|
+
const rows = [...phaseTotals.entries()].sort((a, b) => b[1].ms - a[1].ms);
|
|
34
|
+
for (const [name, { ms, calls }] of rows) {
|
|
35
|
+
log(`timing ${name}: ${ms.toFixed(1)}ms over ${calls} call(s)`);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const r = fn();
|
|
40
|
+
if (r instanceof Promise) {
|
|
41
|
+
return r.finally(done);
|
|
42
|
+
}
|
|
43
|
+
done();
|
|
44
|
+
return r;
|
|
45
|
+
}
|
|
11
46
|
/**
|
|
12
47
|
* Check if a file should be transformed by the plugin.
|
|
13
48
|
*/
|
|
@@ -49,7 +84,7 @@ export async function transformCode(code, id, options) {
|
|
|
49
84
|
// microseconds when no eligible imports exist.
|
|
50
85
|
let working = code;
|
|
51
86
|
if (options.hoist !== false && code.includes("import")) {
|
|
52
|
-
const hoisted = hoistZodSchemas(code, typeof options.hoist === "object" ? options.hoist : undefined);
|
|
87
|
+
const hoisted = timePhase("hoist", () => hoistZodSchemas(code, typeof options.hoist === "object" ? options.hoist : undefined));
|
|
53
88
|
if (hoisted !== null) {
|
|
54
89
|
working = hoisted;
|
|
55
90
|
if (verbose) {
|
|
@@ -78,13 +113,14 @@ export async function transformCode(code, id, options) {
|
|
|
78
113
|
// Static pre-filter: skip files whose exports provably cannot be schemas
|
|
79
114
|
// (functions, components, constants, type-only modules) without executing
|
|
80
115
|
// them. Conservative — anything ambiguous stays a candidate.
|
|
81
|
-
if (!(await mayExportSchemas(working, id)))
|
|
116
|
+
if (!(await timePhase("static-filter", () => mayExportSchemas(working, id))))
|
|
82
117
|
return fallback;
|
|
83
118
|
// Discover schemas by executing the file. Module executions are cached in
|
|
84
119
|
// the shared loader; watch/HMR changes invalidate via invalidateModuleCache().
|
|
120
|
+
options.onDiscovery?.();
|
|
85
121
|
let schemas;
|
|
86
122
|
try {
|
|
87
|
-
schemas = await discoverSchemas(id, { autoDiscover });
|
|
123
|
+
schemas = await timePhase("discover", () => discoverSchemas(id, { autoDiscover }));
|
|
88
124
|
}
|
|
89
125
|
catch (e) {
|
|
90
126
|
const msg = e instanceof Error ? e.message : String(e);
|
|
@@ -103,13 +139,13 @@ export async function transformCode(code, id, options) {
|
|
|
103
139
|
// Lean mode (Vite/Rollup/etc.) uses virtual:zod-compiler/runtime imports for cross-file dedup.
|
|
104
140
|
// Inline mode (webpack/rspack) emits self-contained file-level helpers.
|
|
105
141
|
let failedCount = 0;
|
|
106
|
-
const compiled = compileSchemas(schemas, {
|
|
142
|
+
const compiled = timePhase("compile", () => compileSchemas(schemas, {
|
|
107
143
|
mode,
|
|
108
144
|
onError(exportName, error) {
|
|
109
145
|
failedCount++;
|
|
110
146
|
warn(`Failed to compile "${exportName}" in ${id}: ${error.message}. Keeping original${autoDiscover ? "" : " compile()"} call.`);
|
|
111
147
|
},
|
|
112
|
-
});
|
|
148
|
+
}));
|
|
113
149
|
if (verbose) {
|
|
114
150
|
if (autoDiscover) {
|
|
115
151
|
log(`Auto-discovering: ${id} (${schemas.length} Zod export${schemas.length > 1 ? "s" : ""} found)`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/unplugin/transform.ts"],"names":[],"mappings":"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"}
|
package/dist/unplugin/types.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export interface TransformOptions {
|
|
|
8
8
|
autoDiscover?: boolean | undefined;
|
|
9
9
|
hoist?: boolean | HoistOptions | undefined;
|
|
10
10
|
onBuildStats?: (stats: BuildStats) => void;
|
|
11
|
+
/** Fired when discovery (file execution) is about to run — used by the disk cache to decide which results are worth persisting. */
|
|
12
|
+
onDiscovery?: () => void;
|
|
11
13
|
}
|
|
12
14
|
export interface BuildStats {
|
|
13
15
|
files: number;
|
|
@@ -98,5 +100,23 @@ export interface ZodCompilerPluginOptions {
|
|
|
98
100
|
* @default builds + Vitest
|
|
99
101
|
*/
|
|
100
102
|
apply?: "build" | "serve" | "all" | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Persistent transform-result cache (Node.js only).
|
|
105
|
+
*
|
|
106
|
+
* Schema discovery executes schema files (and their import graphs) inside
|
|
107
|
+
* the bundler process; without a disk cache that cost is re-paid on every
|
|
108
|
+
* `vitest run` / build even when nothing changed. Entries are validated
|
|
109
|
+
* against content hashes of every first-party module the discovery
|
|
110
|
+
* executed, so edits to a schema file *or any file it imports* invalidate
|
|
111
|
+
* exactly as the in-memory watch invalidation does — but across processes.
|
|
112
|
+
*
|
|
113
|
+
* Caveat: module-scope dynamism in schema files (schemas derived from
|
|
114
|
+
* `process.env`, `Date.now()`, …) is frozen until a watched source file
|
|
115
|
+
* changes. Disable the cache for such setups.
|
|
116
|
+
*
|
|
117
|
+
* Pass a string to use a custom cache directory.
|
|
118
|
+
* @default true (node_modules/.cache/zod-compiler)
|
|
119
|
+
*/
|
|
120
|
+
cache?: boolean | string | undefined;
|
|
101
121
|
}
|
|
102
122
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/unplugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;IAC3C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/unplugin/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;IAC3C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C,mIAAmI;IACnI,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,qBAAsB,YAAW,UAAU;IACtD,KAAK,SAAK;IACV,OAAO,SAAK;IACZ,SAAS,SAAK;IACd,MAAM,SAAK;IAEX,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAOxB,KAAK,IAAI,IAAI;CAMd;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG;QAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC;IACzF;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IAC9C;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/unplugin/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/unplugin/types.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,qBAAqB;IAChC,KAAK,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC,CAAC;IACZ,SAAS,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,CAAC,CAAC;IAEX,GAAG,CAAC,CAAa;QACf,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;QACtB,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF"}
|