Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Bedford <guybedford@gmail.com>2020-02-03 14:31:12 +0300
committerGuy Bedford <guybedford@gmail.com>2020-02-18 14:34:40 +0300
commit58de9b46b80fd3e48f5faf9db8101930a6493fc4 (patch)
tree07024c417fa7e77066dd644318b27aa55bc1f28a /lib/internal/errors.js
parentaf19f4116c5c3ce0fc7b18b62ffb05e8138bf74b (diff)
module: package "exports" error refinements
PR-URL: https://github.com/nodejs/node/pull/31625 Reviewed-By: Jan Krems <jan.krems@gmail.com>
Diffstat (limited to 'lib/internal/errors.js')
-rw-r--r--lib/internal/errors.js29
1 files changed, 28 insertions, 1 deletions
diff --git a/lib/internal/errors.js b/lib/internal/errors.js
index 392a297070d..e3cb83268e2 100644
--- a/lib/internal/errors.js
+++ b/lib/internal/errors.js
@@ -13,16 +13,20 @@
const {
ArrayIsArray,
Error,
+ JSONStringify,
Map,
MathAbs,
NumberIsInteger,
ObjectDefineProperty,
ObjectKeys,
+ StringPrototypeSlice,
Symbol,
SymbolFor,
WeakMap,
} = primordials;
+const sep = process.platform === 'win32' ? '\\' : '/';
+
const messages = new Map();
const codes = {};
@@ -1073,6 +1077,11 @@ E('ERR_INVALID_FILE_URL_PATH', 'File URL path %s', TypeError);
E('ERR_INVALID_HANDLE_TYPE', 'This handle type cannot be sent', TypeError);
E('ERR_INVALID_HTTP_TOKEN', '%s must be a valid HTTP token ["%s"]', TypeError);
E('ERR_INVALID_IP_ADDRESS', 'Invalid IP address: %s', TypeError);
+E('ERR_INVALID_MODULE_SPECIFIER', (pkgPath, subpath) => {
+ assert(subpath !== '.');
+ return `Package subpath '${subpath}' is not a valid module request for the ` +
+ `"exports" resolution of ${pkgPath}${sep}package.json`;
+}, TypeError);
E('ERR_INVALID_OPT_VALUE', (name, value) =>
`The value "${String(value)}" is invalid for option "${name}"`,
TypeError,
@@ -1080,7 +1089,17 @@ E('ERR_INVALID_OPT_VALUE', (name, value) =>
E('ERR_INVALID_OPT_VALUE_ENCODING',
'The value "%s" is invalid for option "encoding"', TypeError);
E('ERR_INVALID_PACKAGE_CONFIG',
- 'Invalid package config for \'%s\', %s', Error);
+ `Invalid package config %s${sep}package.json, %s`, Error);
+E('ERR_INVALID_PACKAGE_TARGET', (pkgPath, key, subpath, target) => {
+ if (key === '.') {
+ return `Invalid "exports" main target ${JSONStringify(target)} defined ` +
+ `in the package config ${pkgPath}${sep}package.json`;
+ } else {
+ return `Invalid "exports" target ${JSONStringify(target)} defined for '${
+ StringPrototypeSlice(key, 0, -subpath.length || key.length)}' in the ` +
+ `package config ${pkgPath}${sep}package.json`;
+ }
+}, Error);
E('ERR_INVALID_PERFORMANCE_MARK',
'The "%s" performance mark has not been set', Error);
E('ERR_INVALID_PROTOCOL',
@@ -1225,6 +1244,14 @@ E('ERR_OUT_OF_RANGE',
msg += ` It must be ${range}. Received ${received}`;
return msg;
}, RangeError);
+E('ERR_PACKAGE_PATH_NOT_EXPORTED', (pkgPath, subpath) => {
+ if (subpath === '.') {
+ return `No "exports" main resolved in ${pkgPath}${sep}package.json`;
+ } else {
+ return `Package subpath '${subpath}' is not defined by "exports" in ${
+ pkgPath}${sep}package.json`;
+ }
+}, Error);
E('ERR_REQUIRE_ESM',
(filename, parentPath = null, packageJsonPath = null) => {
let msg = `Must use import to load ES Module: ${filename}`;