Skip to content

Commit

Permalink
module: no type module resolver side effects
Browse files Browse the repository at this point in the history
PR-URL: #33086
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com>
  • Loading branch information
guybedford authored and targos committed May 13, 2020
1 parent 13cae34 commit b1f08b8
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 15 deletions.
7 changes: 0 additions & 7 deletions doc/api/esm.md
Expand Up @@ -1605,13 +1605,6 @@ The resolver can throw the following errors:
> 1. Return **PACKAGE_EXPORTS_TARGET_RESOLVE**(_packageURL_,
> _mainExport_, _""_).
> 1. Throw a _Package Path Not Exported_ error.
> 1. If _pjson.main_ is a String, then
> 1. Let _resolvedMain_ be the URL resolution of _packageURL_, "/", and
> _pjson.main_.
> 1. If the file at _resolvedMain_ exists, then
> 1. Return _resolvedMain_.
> 1. If _pjson.type_ is equal to _"module"_, then
> 1. Throw a _Module Not Found_ error.
> 1. Let _legacyMainURL_ be the result applying the legacy
> **LOAD_AS_DIRECTORY** CommonJS resolver to _packageURL_, throwing a
> _Module Not Found_ error for no resolution.
Expand Down
9 changes: 1 addition & 8 deletions lib/internal/modules/esm/resolve.js
Expand Up @@ -439,11 +439,6 @@ function packageMainResolve(packageJSONUrl, packageConfig, base, conditions) {

throw new ERR_PACKAGE_PATH_NOT_EXPORTED(packageJSONUrl, '.');
}
if (packageConfig.main !== undefined) {
const resolved = new URL(packageConfig.main, packageJSONUrl);
const path = fileURLToPath(resolved);
if (tryStatSync(path).isFile()) return resolved;
}
if (getOptionValue('--experimental-specifier-resolution') === 'node') {
if (packageConfig.main !== undefined) {
return finalizeResolution(
Expand All @@ -453,9 +448,7 @@ function packageMainResolve(packageJSONUrl, packageConfig, base, conditions) {
new URL('index', packageJSONUrl), base);
}
}
if (packageConfig.type !== 'module') {
return legacyMainResolve(packageJSONUrl, packageConfig);
}
return legacyMainResolve(packageJSONUrl, packageConfig);
}

throw new ERR_MODULE_NOT_FOUND(
Expand Down
9 changes: 9 additions & 0 deletions test/es-module/test-esm-type-main.mjs
@@ -0,0 +1,9 @@
import { mustNotCall } from '../common/index.mjs';
import assert from 'assert';
import { importFixture } from '../fixtures/pkgexports.mjs';

(async () => {
const m = await importFixture('type-main');
assert.strictEqual(m.default, 'asdf');
})()
.catch(mustNotCall);
1 change: 1 addition & 0 deletions test/fixtures/node_modules/type-main/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions test/fixtures/node_modules/type-main/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit b1f08b8

Please sign in to comment.