querysub 0.165.0 → 0.166.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/package.json
CHANGED
|
@@ -279,19 +279,26 @@ export async function waitForImportBlockers() {
|
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
|
|
282
|
+
function getDirname(fileName: string) {
|
|
283
|
+
fileName = fileName.replaceAll("\\", "/");
|
|
284
|
+
let lastSlash = fileName.lastIndexOf("/");
|
|
285
|
+
if (lastSlash === -1) return "";
|
|
286
|
+
return fileName.slice(0, lastSlash);
|
|
287
|
+
}
|
|
288
|
+
|
|
282
289
|
// On import every parent folder is set to the spec. For root folders this makes
|
|
283
290
|
// the spec useless, but for unique folders it will only be set once, making it very useful!
|
|
284
291
|
// "overlapping" means multiple folders mapped to this spec
|
|
285
292
|
let folderToSpec = new Map<string, LoadFunctionSpec | "overlapping">();
|
|
286
293
|
function registerSpec(fileName: string, spec: LoadFunctionSpec | "overlapping") {
|
|
287
|
-
let folder =
|
|
294
|
+
let folder = getDirname(fileName);
|
|
288
295
|
while (true) {
|
|
289
296
|
if (folderToSpec.has(folder)) {
|
|
290
297
|
folderToSpec.set(folder, "overlapping");
|
|
291
298
|
} else {
|
|
292
299
|
folderToSpec.set(folder, spec);
|
|
293
300
|
}
|
|
294
|
-
let parentFolder =
|
|
301
|
+
let parentFolder = getDirname(folder);
|
|
295
302
|
if (parentFolder === folder) {
|
|
296
303
|
break;
|
|
297
304
|
}
|
|
@@ -300,11 +307,11 @@ function registerSpec(fileName: string, spec: LoadFunctionSpec | "overlapping")
|
|
|
300
307
|
}
|
|
301
308
|
|
|
302
309
|
export function getSpecFromModule(module: NodeJS.Module): LoadFunctionSpec | undefined {
|
|
303
|
-
let folder =
|
|
310
|
+
let folder = getDirname(module.filename);
|
|
304
311
|
while (true) {
|
|
305
312
|
let spec = folderToSpec.get(folder);
|
|
306
313
|
if (spec && typeof spec !== "string") return spec;
|
|
307
|
-
let parentFolder =
|
|
314
|
+
let parentFolder = getDirname(folder);
|
|
308
315
|
if (parentFolder === folder) break;
|
|
309
316
|
folder = parentFolder;
|
|
310
317
|
}
|