@alchemy.run/node-utils 2.0.0-beta.77 → 2.0.0-beta.78
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/lib/register-oxc.d.ts +54 -9
- package/lib/register-oxc.d.ts.map +1 -1
- package/lib/register-oxc.js +49 -86
- package/lib/register-oxc.js.map +1 -1
- package/lib/resolve-specifier.d.ts +0 -6
- package/lib/resolve-specifier.d.ts.map +1 -1
- package/lib/resolve-specifier.js +0 -16
- package/lib/resolve-specifier.js.map +1 -1
- package/lib/transform-cache.d.ts +63 -0
- package/lib/transform-cache.d.ts.map +1 -0
- package/lib/transform-cache.js +193 -0
- package/lib/transform-cache.js.map +1 -0
- package/lib/transform-source.d.ts +3 -3
- package/lib/transform-source.d.ts.map +1 -1
- package/lib/transform-source.js +123 -50
- package/lib/transform-source.js.map +1 -1
- package/lib/watch-import-bun.d.ts.map +1 -1
- package/lib/watch-import-bun.js +7 -2
- package/lib/watch-import-bun.js.map +1 -1
- package/lib/watch-import.d.ts +2 -2
- package/lib/watch-import.d.ts.map +1 -1
- package/lib/watch-import.js +4 -2
- package/lib/watch-import.js.map +1 -1
- package/package.json +1 -6
- package/src/register-oxc.ts +117 -122
- package/src/resolve-specifier.ts +0 -22
- package/src/transform-cache.ts +226 -0
- package/src/transform-source.ts +145 -61
- package/src/watch-import-bun.ts +7 -2
- package/src/watch-import.ts +7 -8
- package/lib/import-loader.d.ts +0 -54
- package/lib/import-loader.d.ts.map +0 -1
- package/lib/import-loader.js +0 -9
- package/lib/import-loader.js.map +0 -1
- package/src/import-loader.ts +0 -75
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-cache.js","sourceRoot":"","sources":["../src/transform-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { OxcLoaderOptions } from "./register-oxc.ts";
|
|
2
2
|
/** Extensions Oxc transpiles; everything else is JavaScript Node can run. */
|
|
3
3
|
export declare const transformExtensions: Set<string>;
|
|
4
4
|
export type ModuleFormat = "module" | "commonjs";
|
|
@@ -8,12 +8,12 @@ export interface TransformedSource {
|
|
|
8
8
|
}
|
|
9
9
|
export declare class SourceTransformer {
|
|
10
10
|
#private;
|
|
11
|
-
constructor(options:
|
|
11
|
+
constructor(options: OxcLoaderOptions);
|
|
12
12
|
/**
|
|
13
13
|
* Transpiles `filePath` for Node, or returns `undefined` when the file is
|
|
14
14
|
* JavaScript that needs no work. `format` is what Node's `load` hook was
|
|
15
15
|
* told; it decides `sourceType` and the format handed back.
|
|
16
16
|
*/
|
|
17
|
-
transform(filePath: string,
|
|
17
|
+
transform(filePath: string, format: string | null | undefined): TransformedSource | undefined;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=transform-source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-source.d.ts","sourceRoot":"","sources":["../src/transform-source.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform-source.d.ts","sourceRoot":"","sources":["../src/transform-source.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,aAM9B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,CAAC;AA0FjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,iBAAiB;;IAK5B,YAAY,OAAO,EAAE,gBAAgB,EAKpC;IA4CD;;;;OAIG;IACH,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,iBAAiB,GAAG,SAAS,CAyE/B;CACF"}
|
package/lib/transform-source.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
1
|
+
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
import { resolveTsconfig } from "rolldown/experimental";
|
|
3
5
|
import { parseSync, transformSync, TsconfigCache, } from "rolldown/utils";
|
|
6
|
+
import { resolveCacheDirectory, TransformCache } from "./transform-cache.js";
|
|
4
7
|
/** Extensions Oxc transpiles; everything else is JavaScript Node can run. */
|
|
5
8
|
export const transformExtensions = new Set([
|
|
6
9
|
".ts",
|
|
@@ -66,75 +69,145 @@ const language = (filePath) => {
|
|
|
66
69
|
return "js";
|
|
67
70
|
}
|
|
68
71
|
};
|
|
69
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Inline map, for when there is no cache file to point at. Only the
|
|
74
|
+
* fallback: the base64 becomes part of the script source V8 retains, and
|
|
75
|
+
* for a non-ASCII source it is stored two bytes per character on top.
|
|
76
|
+
*/
|
|
77
|
+
const inlineSourceMapComment = (map) => {
|
|
70
78
|
const json = typeof map === "string" ? map : JSON.stringify(map);
|
|
71
79
|
return `\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(json).toString("base64")}`;
|
|
72
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* Map by reference. Node's source-map support only understands `data:`
|
|
83
|
+
* URLs and scheme-less paths (it resolves the latter against the module
|
|
84
|
+
* URL and reads the file), so this is the file URL's path component —
|
|
85
|
+
* `/var/…/x.map` on POSIX, `/C:/…/x.map` on Windows — never a `file:` URL.
|
|
86
|
+
*/
|
|
87
|
+
const fileSourceMapComment = (mapFile) => `\n//# sourceMappingURL=${pathToFileURL(mapFile).pathname}`;
|
|
88
|
+
/**
|
|
89
|
+
* The transform's map without `sourcesContent`. Every source is a file on
|
|
90
|
+
* this machine, named by the map's `sources`, so embedding its text only
|
|
91
|
+
* makes the map larger than the code it describes and every process that
|
|
92
|
+
* loads the module pay for it.
|
|
93
|
+
*/
|
|
94
|
+
const withoutSourcesContent = ({ sourcesContent: _, ...map }) => map;
|
|
73
95
|
export class SourceTransformer {
|
|
74
96
|
#options;
|
|
75
97
|
#tsconfigCache = new TsconfigCache();
|
|
98
|
+
#cache;
|
|
76
99
|
constructor(options) {
|
|
77
100
|
this.#options = options;
|
|
101
|
+
const directory = resolveCacheDirectory(options.cache);
|
|
102
|
+
this.#cache =
|
|
103
|
+
directory === undefined ? undefined : new TransformCache(directory);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Cache key for one transform, or `undefined` when the result must not be
|
|
107
|
+
* cached. Every input Oxc's output depends on is part of it: the file's
|
|
108
|
+
* path (source maps name it), its size and mtime standing in for its
|
|
109
|
+
* contents — a stat instead of a read plus a hash per module on the warm
|
|
110
|
+
* path — the effective transform options, Node's module format, and the
|
|
111
|
+
* tsconfig that would be discovered for the file, resolved through the
|
|
112
|
+
* same cache `transformSync` uses with the `extends` chain already
|
|
113
|
+
* merged, so editing any tsconfig in the chain is a new key.
|
|
114
|
+
*/
|
|
115
|
+
#cacheKey(filePath, options, format) {
|
|
116
|
+
if (this.#cache === undefined)
|
|
117
|
+
return undefined;
|
|
118
|
+
let stat;
|
|
119
|
+
try {
|
|
120
|
+
stat = statSync(filePath, { bigint: true });
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
let tsconfig = null;
|
|
126
|
+
try {
|
|
127
|
+
if (options.tsconfig === true) {
|
|
128
|
+
tsconfig = resolveTsconfig(filePath, this.#tsconfigCache)?.tsconfig;
|
|
129
|
+
}
|
|
130
|
+
else if (typeof options.tsconfig === "string") {
|
|
131
|
+
tsconfig = readFileSync(options.tsconfig, "utf8");
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// A broken tsconfig is the transform's error to report; don't cache.
|
|
136
|
+
return undefined;
|
|
137
|
+
}
|
|
138
|
+
return this.#cache.key([
|
|
139
|
+
filePath,
|
|
140
|
+
`${stat.size}:${stat.mtimeNs}`,
|
|
141
|
+
JSON.stringify(options),
|
|
142
|
+
JSON.stringify(tsconfig ?? null),
|
|
143
|
+
format,
|
|
144
|
+
]);
|
|
78
145
|
}
|
|
79
146
|
/**
|
|
80
147
|
* Transpiles `filePath` for Node, or returns `undefined` when the file is
|
|
81
148
|
* JavaScript that needs no work. `format` is what Node's `load` hook was
|
|
82
149
|
* told; it decides `sourceType` and the format handed back.
|
|
83
150
|
*/
|
|
84
|
-
transform(filePath,
|
|
151
|
+
transform(filePath, format) {
|
|
85
152
|
const extension = path.extname(filePath);
|
|
86
|
-
|
|
87
|
-
if (!transpile && this.#options.transforms === undefined)
|
|
153
|
+
if (!transformExtensions.has(extension))
|
|
88
154
|
return undefined;
|
|
89
155
|
let moduleFormat = nodeFormat(format) ?? inferFormat(filePath);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
156
|
+
const lang = language(filePath);
|
|
157
|
+
const options = {
|
|
158
|
+
tsconfig: this.#options.tsconfig ?? true,
|
|
159
|
+
sourcemap: true,
|
|
160
|
+
lang,
|
|
161
|
+
};
|
|
162
|
+
// The key is taken before the source is read so a hit costs one stat
|
|
163
|
+
// and one cache read, never the source itself.
|
|
164
|
+
const key = this.#cacheKey(filePath, options, moduleFormat);
|
|
165
|
+
const cached = key === undefined ? undefined : this.#cache?.get(key);
|
|
166
|
+
if (cached !== undefined) {
|
|
167
|
+
return {
|
|
168
|
+
format: cached.format,
|
|
169
|
+
source: cached.mapFile === undefined
|
|
170
|
+
? cached.code
|
|
171
|
+
: cached.code + fileSourceMapComment(cached.mapFile),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
const source = readFileSync(filePath, "utf8");
|
|
175
|
+
// A `.ts` file in a CommonJS package that uses `import`/`export` runs
|
|
176
|
+
// as ESM — the same call Node's own module-syntax detection makes for
|
|
177
|
+
// `.js`. Explicit `.cts` stays CommonJS regardless.
|
|
178
|
+
if (moduleFormat === "commonjs" &&
|
|
179
|
+
extension !== ".cts" &&
|
|
180
|
+
parseSync(filePath, source, { lang, sourceType: "unambiguous" }).module
|
|
181
|
+
.hasModuleSyntax) {
|
|
182
|
+
moduleFormat = "module";
|
|
183
|
+
}
|
|
184
|
+
const transformed = transformSync(filePath, source, { ...options, sourceType: moduleFormat }, this.#tsconfigCache);
|
|
185
|
+
if (transformed.errors.length > 0) {
|
|
186
|
+
const [error] = transformed.errors;
|
|
187
|
+
throw error instanceof Error
|
|
188
|
+
? error
|
|
189
|
+
: new SyntaxError(`${filePath}: ${error.message ?? String(error)}`);
|
|
118
190
|
}
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
191
|
+
const map = transformed.map === undefined
|
|
192
|
+
? undefined
|
|
193
|
+
: JSON.stringify(withoutSourcesContent(transformed.map));
|
|
194
|
+
// The map ends up in the module exactly one way: on disk next to the
|
|
195
|
+
// cache entry and referenced by path, or (cache off) inlined.
|
|
196
|
+
const mapFile = key === undefined || map === undefined
|
|
197
|
+
? undefined
|
|
198
|
+
: this.#cache?.set(key, {
|
|
199
|
+
format: moduleFormat,
|
|
200
|
+
code: transformed.code,
|
|
201
|
+
map,
|
|
202
|
+
});
|
|
203
|
+
return {
|
|
122
204
|
format: moduleFormat,
|
|
205
|
+
source: mapFile !== undefined
|
|
206
|
+
? transformed.code + fileSourceMapComment(mapFile)
|
|
207
|
+
: map !== undefined
|
|
208
|
+
? transformed.code + inlineSourceMapComment(map)
|
|
209
|
+
: transformed.code,
|
|
123
210
|
};
|
|
124
|
-
for (const transform of this.#options.transforms ?? []) {
|
|
125
|
-
const result = transform(source, context);
|
|
126
|
-
if (typeof result === "string") {
|
|
127
|
-
source = result;
|
|
128
|
-
map = undefined;
|
|
129
|
-
}
|
|
130
|
-
else if (result !== undefined) {
|
|
131
|
-
source = result.code;
|
|
132
|
-
map = result.map;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (map !== undefined)
|
|
136
|
-
source += sourceMapComment(map);
|
|
137
|
-
return { format: moduleFormat, source };
|
|
138
211
|
}
|
|
139
212
|
}
|
|
140
213
|
//# sourceMappingURL=transform-source.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-source.js","sourceRoot":"","sources":["../src/transform-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"transform-source.js","sourceRoot":"","sources":["../src/transform-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,GAEd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE7E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACzC,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,UAAU,GAAG,CACjB,MAAiC,EACP,EAAE;IAC5B,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,mBAAmB;YACtB,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,qBAAqB;YACxB,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF,kFAAkF;AAClF,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAgB,EAAE;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC;IAClE,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC;IACpE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;oBACpE,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,UAAU,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,UAAU,CAAC;QAC5C,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAA4B,EAAE;IAC9D,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,GAAoB,EAAE,EAAE;IACtD,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,uDAAuD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACvG,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,EAAE,CAC/C,0BAA0B,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,CAAC,EAC7B,cAAc,EAAE,CAAC,EACjB,GAAG,GAAG,EAC+C,EAAE,EAAE,CAAC,GAAG,CAAC;AAOhE,MAAM,OAAO,iBAAiB;IACnB,QAAQ,CAAmB;IAC3B,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC;IACrC,MAAM,CAA6B;IAE5C,YAAY,OAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM;YACT,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,CACP,QAAgB,EAChB,OAAyB,EACzB,MAAoB;QAEpB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAChD,IAAI,IAAuC,CAAC;QAC5C,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ,GAAY,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC9B,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC;YACtE,CAAC;iBAAM,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAChD,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACrB,QAAQ;YACR,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC;YAChC,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,SAAS,CACP,QAAgB,EAChB,MAAiC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAE1D,IAAI,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,OAAO,GAAqB;YAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI;YACxC,SAAS,EAAE,IAAI;YACf,IAAI;SACL,CAAC;QACF,qEAAqE;QACrE,+CAA+C;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;gBACL,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EACJ,MAAM,CAAC,OAAO,KAAK,SAAS;oBAC1B,CAAC,CAAC,MAAM,CAAC,IAAI;oBACb,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC;aACzD,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,sEAAsE;QACtE,sEAAsE;QACtE,oDAAoD;QACpD,IACE,YAAY,KAAK,UAAU;YAC3B,SAAS,KAAK,MAAM;YACpB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM;iBACpE,eAAe,EAClB,CAAC;YACD,YAAY,GAAG,QAAQ,CAAC;QAC1B,CAAC;QACD,MAAM,WAAW,GAAG,aAAa,CAC/B,QAAQ,EACR,MAAM,EACN,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,EACxC,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;YACnC,MAAM,KAAK,YAAY,KAAK;gBAC1B,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,WAAW,CACb,GAAG,QAAQ,KAAM,KAA8B,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3E,CAAC;QACR,CAAC;QACD,MAAM,GAAG,GACP,WAAW,CAAC,GAAG,KAAK,SAAS;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,qEAAqE;QACrE,8DAA8D;QAC9D,MAAM,OAAO,GACX,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;YACpC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;gBACpB,MAAM,EAAE,YAAY;gBACpB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,GAAG;aACJ,CAAC,CAAC;QACT,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,MAAM,EACJ,OAAO,KAAK,SAAS;gBACnB,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC;gBAClD,CAAC,CAAC,GAAG,KAAK,SAAS;oBACjB,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC;oBAChD,CAAC,CAAC,WAAW,CAAC,IAAI;SACzB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-import-bun.d.ts","sourceRoot":"","sources":["../src/watch-import-bun.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAgBD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;;IAI3B,YAAY,OAAO,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"watch-import-bun.d.ts","sourceRoot":"","sources":["../src/watch-import-bun.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAgBD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;;IAI3B,YAAY,OAAO,EAAE,uBAAuB,EAgC3C;IAED,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,CAEtC;IAED,SAAS,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI,CAExD;IAED,8EAA8E;IAC9E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAErB;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;CACF;AAED,eAAO,MAAM,eAAe,YAAa,uBAAuB,qBACjC,CAAC"}
|
package/lib/watch-import-bun.js
CHANGED
|
@@ -34,8 +34,13 @@ export class BunImportTracker {
|
|
|
34
34
|
// Bun reports real paths (`/private/tmp/...` for `/tmp/...` on macOS);
|
|
35
35
|
// match them against the root's real path too.
|
|
36
36
|
const root = realpathSync.native(path.resolve(options.root)) + path.sep;
|
|
37
|
-
const nodeModules =
|
|
38
|
-
|
|
37
|
+
const nodeModules = `node_modules${path.sep}`;
|
|
38
|
+
// `root` already ends in a separator, so the segment right after it has no
|
|
39
|
+
// leading one: a `.*${sep}node_modules${sep}` lookahead alone would miss
|
|
40
|
+
// `<root>node_modules/...` and intercept every dependency. Bun cannot
|
|
41
|
+
// return CommonJS source from `onLoad` (oven-sh/bun#19279), so a CJS
|
|
42
|
+
// dependency that reaches this probe loses its exports.
|
|
43
|
+
const filter = new RegExp(`^${escapeRegExp(root)}(?!(?:.*${escapeRegExp(path.sep)})?${escapeRegExp(nodeModules)}).*\\.[cm]?[jt]sx?$`);
|
|
39
44
|
Bun.plugin({
|
|
40
45
|
name: "@alchemy.run/node-utils/watch-import-bun",
|
|
41
46
|
setup: (build) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-import-bun.js","sourceRoot":"","sources":["../src/watch-import-bun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,iBAAiB,GAGlB,MAAM,yBAAyB,CAAC;AAUjC,MAAM,OAAO,GAAgD;IAC3D,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IAClB,QAAQ,CAAoB;IAC5B,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,YAAY,OAAgC;QAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/C,uEAAuE;QACvE,+CAA+C;QAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QACxE,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"watch-import-bun.js","sourceRoot":"","sources":["../src/watch-import-bun.ts"],"names":[],"mappings":"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"}
|
package/lib/watch-import.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type DependencyChangeListener, type DependencyWatcherOptions } from "./dependency-watcher.ts";
|
|
2
|
-
import {
|
|
2
|
+
import type { OxcLoaderOptions } from "./register-oxc.ts";
|
|
3
3
|
export interface ImportGeneration<T> {
|
|
4
4
|
readonly value: T;
|
|
5
5
|
readonly namespace: string;
|
|
6
6
|
readonly dependencies: ReadonlySet<string>;
|
|
7
7
|
}
|
|
8
|
-
export interface ImportWatcherOptions extends
|
|
8
|
+
export interface ImportWatcherOptions extends OxcLoaderOptions, DependencyWatcherOptions {
|
|
9
9
|
readonly parentURL: string;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-import.d.ts","sourceRoot":"","sources":["../src/watch-import.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"watch-import.d.ts","sourceRoot":"","sources":["../src/watch-import.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErE,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,oBACf,SAAQ,gBAAgB,EAAE,wBAAwB;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,qBAAa,aAAa,CAAC,CAAC,GAAG,OAAO;;IAQpC,YAAY,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAI3D;IAED,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,CAAC,CAEtC;IAED,SAAS,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI,CAExD;IAEK,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAwC3C;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3B;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;CACF;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,GAAG,OAAO,aAC1B,MAAM,WACR,oBAAoB,qBACc,CAAC"}
|
package/lib/watch-import.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
import { DependencyWatcher, } from "./dependency-watcher.js";
|
|
4
|
-
import { createImportLoader, } from "./import-loader.js";
|
|
5
4
|
/**
|
|
6
5
|
* Imports fresh Node module generations and watches the exact files loaded by
|
|
7
6
|
* the current generation. Bun callers should use `BunImportTracker` from
|
|
@@ -32,7 +31,10 @@ export class ImportWatcher {
|
|
|
32
31
|
const namespace = randomUUID();
|
|
33
32
|
const dependencies = new Set();
|
|
34
33
|
const { debounceMs: _, parentURL, watch: _watch, ...registerOptions } = this.#options;
|
|
35
|
-
|
|
34
|
+
// Loaded here, not at module scope: the exec child imports this file on
|
|
35
|
+
// both runtimes, and the loader's Node hooks do not exist under Bun.
|
|
36
|
+
const { registerOxc } = await import("./register-oxc.js");
|
|
37
|
+
const registration = registerOxc({
|
|
36
38
|
...registerOptions,
|
|
37
39
|
namespace,
|
|
38
40
|
onImport: (url) => {
|
package/lib/watch-import.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-import.js","sourceRoot":"","sources":["../src/watch-import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,iBAAiB,GAGlB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"watch-import.js","sourceRoot":"","sources":["../src/watch-import.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alchemy.run/node-utils",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.78",
|
|
4
4
|
"description": "Runtime utilities for Alchemy packages.",
|
|
5
5
|
"homepage": "https://alchemy.run",
|
|
6
6
|
"author": "Sam Goodwin <sam@alchemy.run>",
|
|
@@ -34,11 +34,6 @@
|
|
|
34
34
|
"bun": "./src/ignore.ts",
|
|
35
35
|
"import": "./lib/ignore.js"
|
|
36
36
|
},
|
|
37
|
-
"./import-loader": {
|
|
38
|
-
"types": "./lib/import-loader.d.ts",
|
|
39
|
-
"bun": "./src/import-loader.ts",
|
|
40
|
-
"import": "./lib/import-loader.js"
|
|
41
|
-
},
|
|
42
37
|
"./register-oxc": {
|
|
43
38
|
"types": "./lib/register-oxc.d.ts",
|
|
44
39
|
"bun": "./src/register-oxc.ts",
|