Skip to content

Commit f6f1058

Browse files
authored
fix: correctly resolve extended builtinModules (#16)
1 parent 26c8be8 commit f6f1058

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

src/resolve.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ function _parseInput(
349349
return { external: input };
350350
}
351351

352-
if (builtinModules.includes(input)) {
352+
if (builtinModules.includes(input) && !input.includes(":")) {
353353
return { external: `node:${input}` };
354354
}
355355

test/resolve.test.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { existsSync } from "node:fs";
22
import { fileURLToPath, pathToFileURL } from "node:url";
3-
import { describe, it, expect } from "vitest";
3+
import { describe, it, expect, vi } from "vitest";
44
import { resolveModuleURL, resolveModulePath } from "../src";
55

66
const isWindows = process.platform === "win32";
@@ -92,6 +92,20 @@ describe("resolveModuleURL", () => {
9292
);
9393
expect(res).toMatch(/\.mjs$/);
9494
});
95+
96+
it("resolve builtin modules", () => {
97+
vi.mock("node:module", () => {
98+
return {
99+
builtinModules: ["fs", "path", "url", "http", "https", "bun:sqlite"],
100+
};
101+
});
102+
103+
expect(() => resolveModuleURL("unknown")).toThrowError();
104+
expect(resolveModuleURL("node:fs")).toBe("node:fs");
105+
expect(resolveModuleURL("fs")).toBe("node:fs");
106+
107+
expect(resolveModuleURL("bun:sqlite")).toBe("bun:sqlite");
108+
});
95109
});
96110

97111
describe("resolveModulePath", () => {

0 commit comments

Comments
 (0)