Skip to content

Commit

Permalink
esm: fix imports from non-file module
Browse files Browse the repository at this point in the history
  • Loading branch information
aduh95 committed Apr 27, 2022
1 parent 92f8c03 commit 38ff8d3
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
8 changes: 3 additions & 5 deletions lib/internal/modules/esm/resolve.js
Original file line number Diff line number Diff line change
Expand Up @@ -1015,8 +1015,6 @@ function resolveAsCommonJS(specifier, parentURL) {
// TODO(@JakobJingleheimer): de-dupe `specifier` & `parsed`
function checkIfDisallowedImport(specifier, parsed, parsedParentURL) {
if (parsedParentURL) {
const parentURL = fileURLToPath(parsedParentURL?.href);

if (
parsedParentURL.protocol === 'http:' ||
parsedParentURL.protocol === 'https:'
Expand All @@ -1030,7 +1028,7 @@ function checkIfDisallowedImport(specifier, parsed, parsedParentURL) {
) {
throw new ERR_NETWORK_IMPORT_DISALLOWED(
specifier,
parentURL,
parsedParentURL,
'remote imports cannot import from a local location.'
);
}
Expand All @@ -1041,14 +1039,14 @@ function checkIfDisallowedImport(specifier, parsed, parsedParentURL) {
NativeModule.canBeRequiredWithoutScheme(specifier)) {
throw new ERR_NETWORK_IMPORT_DISALLOWED(
specifier,
parentURL,
parsedParentURL,
'remote imports cannot import from a local location.'
);
}

throw new ERR_NETWORK_IMPORT_DISALLOWED(
specifier,
parentURL,
parsedParentURL,
'only relative and absolute specifiers are supported.'
);
}
Expand Down
5 changes: 5 additions & 0 deletions test/es-module/test-esm-data-urls.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
'use strict';
const common = require('../common');
const fixtures = require('../common/fixtures');
const assert = require('assert');
function createURL(mime, body) {
return `data:${mime},${body}`;
Expand Down Expand Up @@ -107,4 +108,8 @@ function createBase64URL(mime, body) {
const module = await import(plainESMURL);
assert.strictEqual(module.default, 2);
}
{
const plainESMURL = `data:text/javascript,${encodeURIComponent(`import ${JSON.stringify(fixtures.fileURL('es-module-url', 'empty.js'))}`)}`
await import(plainESMURL);
}
})().then(common.mustCall());

0 comments on commit 38ff8d3

Please sign in to comment.