From 7ab21b2f5702ae0b2a5fe5d30ec356f83a95f698 Mon Sep 17 00:00:00 2001 From: qualitymanifest Date: Fri, 29 Nov 2019 23:11:21 -0500 Subject: lib: add parent to ERR_UNKNOWN_FILE_EXTENSION - default_resolve updated to pass parentURL into error - ERR_UNKNOWN_FILE_EXTENSION updated to include parentURL - test added to check for import message in error PR-URL: https://github.com/nodejs/node/pull/30728 Fixes: https://github.com/nodejs/node/issues/30721 Reviewed-By: Guy Bedford Reviewed-By: Trivikram Kamat Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell Reviewed-By: Anna Henningsen Reviewed-By: Luigi Pinca --- lib/internal/errors.js | 4 +++- lib/internal/modules/esm/default_resolve.js | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/internal/errors.js b/lib/internal/errors.js index 3db047cd32..8e6962e256 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -1228,7 +1228,9 @@ E('ERR_UNHANDLED_ERROR', E('ERR_UNKNOWN_BUILTIN_MODULE', 'No such built-in module: %s', Error); E('ERR_UNKNOWN_CREDENTIAL', '%s identifier does not exist: %s', Error); E('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError); -E('ERR_UNKNOWN_FILE_EXTENSION', 'Unknown file extension: %s', TypeError); +E('ERR_UNKNOWN_FILE_EXTENSION', + 'Unknown file extension "%s" for %s imported from %s', + TypeError); E('ERR_UNKNOWN_MODULE_FORMAT', 'Unknown module format: %s', RangeError); E('ERR_UNKNOWN_SIGNAL', 'Unknown signal: %s', TypeError); diff --git a/lib/internal/modules/esm/default_resolve.js b/lib/internal/modules/esm/default_resolve.js index c9ef3883c4..d238930164 100644 --- a/lib/internal/modules/esm/default_resolve.js +++ b/lib/internal/modules/esm/default_resolve.js @@ -116,7 +116,10 @@ function resolve(specifier, parentURL) { 'ExperimentalWarning'); format = legacyExtensionFormatMap[ext]; } else { - throw new ERR_UNKNOWN_FILE_EXTENSION(fileURLToPath(url)); + throw new ERR_UNKNOWN_FILE_EXTENSION( + ext, + fileURLToPath(url), + fileURLToPath(parentURL)); } } return { url: `${url}`, format }; -- cgit v1.2.3