Skip to content

Commit f85e0d8

Browse files
authored
revert implicit /+esm for .js (#1186)
1 parent 8a775c1 commit f85e0d8

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/npm.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {simple} from "acorn-walk";
66
import {rsort, satisfies} from "semver";
77
import {isEnoent} from "./error.js";
88
import type {ExportNode, ImportNode, ImportReference} from "./javascript/imports.js";
9-
import {isImportMetaResolve, isJavaScript, parseImports} from "./javascript/imports.js";
9+
import {isImportMetaResolve, parseImports} from "./javascript/imports.js";
1010
import {parseProgram} from "./javascript/parse.js";
1111
import type {StringLiteral} from "./javascript/source.js";
1212
import {getStringLiteralValue, isStringLiteral} from "./javascript/source.js";
@@ -262,7 +262,7 @@ export async function resolveNpmImport(root: string, specifier: string): Promise
262262
} = parseNpmSpecifier(specifier);
263263
const version = await resolveNpmVersion(root, {name, range});
264264
return `/_npm/${name}@${version}/${
265-
(extname(path) && !isJavaScript(path)) || // npm:foo/bar.css
265+
extname(path) || // npm:foo/bar.js or npm:foo/bar.css
266266
path === "" || // npm:foo/
267267
path.endsWith("/") // npm:foo/bar/
268268
? path

test/npm-test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ describe("getDependencyResolver(root, path, input)", () => {
1010
const root = "test/input/build/simple-public";
1111
const specifier = "/npm/[email protected]/dist/d3-array.js";
1212
const resolver = await getDependencyResolver(root, "/_npm/[email protected]/_esm.js", `import '${specifier}';\n`); // prettier-ignore
13-
assert.strictEqual(resolver(specifier), "../[email protected]/dist/d3-array.js._esm.js");
13+
assert.strictEqual(resolver(specifier), "../[email protected]/dist/d3-array.js");
1414
});
1515
it("finds /npm/ import resolutions and re-resolves their versions", async () => {
1616
const root = "test/input/build/simple-public";
1717
const specifier = "/npm/[email protected]/dist/d3-array.js";
1818
const resolver = await getDependencyResolver(root, "/_npm/[email protected]/_esm.js", `import.meta.resolve('${specifier}');\n`); // prettier-ignore
19-
assert.strictEqual(resolver(specifier), "../[email protected]/dist/d3-array.js._esm.js");
19+
assert.strictEqual(resolver(specifier), "../[email protected]/dist/d3-array.js");
2020
});
2121
});
2222

@@ -55,14 +55,14 @@ describe("resolveNpmImport(root, specifier)", () => {
5555
assert.strictEqual(await resolveNpmImport(root, "d3-array/foo+bar"), "/_npm/[email protected]/foo+bar._esm.js");
5656
assert.strictEqual(await resolveNpmImport(root, "d3-array/foo+esm"), "/_npm/[email protected]/foo+esm._esm.js");
5757
});
58-
it("implicitly adds ._esm.js for specifiers with a JavaScript extension", async () => {
59-
assert.strictEqual(await resolveNpmImport(root, "d3-array/src/index.js"), "/_npm/[email protected]/src/index.js._esm.js"); // prettier-ignore
60-
});
6158
it("replaces /+esm with /_esm.js or ._esm.js", async () => {
6259
assert.strictEqual(await resolveNpmImport(root, "d3-array/+esm"), "/_npm/[email protected]/_esm.js");
6360
assert.strictEqual(await resolveNpmImport(root, "d3-array/src/+esm"), "/_npm/[email protected]/src._esm.js");
6461
assert.strictEqual(await resolveNpmImport(root, "d3-array/src/index.js/+esm"), "/_npm/[email protected]/src/index.js._esm.js"); // prettier-ignore
6562
});
63+
it("does not add ._esm.js for specifiers with a JavaScript extension", async () => {
64+
assert.strictEqual(await resolveNpmImport(root, "d3-array/src/index.js"), "/_npm/[email protected]/src/index.js");
65+
});
6666
it("does not add ._esm.js for specifiers with a non-JavaScript extension", async () => {
6767
assert.strictEqual(await resolveNpmImport(root, "d3-array/src/index.css"), "/_npm/[email protected]/src/index.css");
6868
});

0 commit comments

Comments
 (0)