bare-module-traverse 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +1 -0
- package/index.js +26 -4
- package/lib/errors.js +24 -6
- package/package.json +1 -1
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -123,7 +123,10 @@ exports.module = function* (
|
|
|
123
123
|
source = yield { module: url }
|
|
124
124
|
|
|
125
125
|
if (source === null) {
|
|
126
|
-
throw errors.MODULE_NOT_FOUND(
|
|
126
|
+
throw errors.MODULE_NOT_FOUND(
|
|
127
|
+
`Cannot find module '${url.href}'`,
|
|
128
|
+
url.href
|
|
129
|
+
)
|
|
127
130
|
}
|
|
128
131
|
}
|
|
129
132
|
|
|
@@ -307,6 +310,7 @@ exports.imports = function* (
|
|
|
307
310
|
matchedConditions.push(condition)
|
|
308
311
|
|
|
309
312
|
const resolver = resolve(entry, parentURL, { ...opts, matchedConditions })
|
|
313
|
+
const candidates = []
|
|
310
314
|
|
|
311
315
|
let next = resolver.next()
|
|
312
316
|
let resolutions = 0
|
|
@@ -319,6 +323,8 @@ exports.imports = function* (
|
|
|
319
323
|
} else {
|
|
320
324
|
const url = value.resolution
|
|
321
325
|
|
|
326
|
+
candidates.push(url)
|
|
327
|
+
|
|
322
328
|
let resolved = false
|
|
323
329
|
|
|
324
330
|
if (
|
|
@@ -391,19 +397,35 @@ exports.imports = function* (
|
|
|
391
397
|
|
|
392
398
|
matchedConditions.pop()
|
|
393
399
|
|
|
400
|
+
let message = `Cannot find ${condition === 'default' ? 'module' : condition} '${specifier}' imported from '${parentURL.href}'`
|
|
401
|
+
|
|
402
|
+
if (candidates.length > 0) {
|
|
403
|
+
message += '\nCandidates:'
|
|
404
|
+
message += '\n' + candidates.map((url) => '- ' + url.href).join('\n')
|
|
405
|
+
}
|
|
406
|
+
|
|
394
407
|
if (resolutions === 0) {
|
|
395
408
|
switch (condition) {
|
|
396
409
|
case 'addon':
|
|
397
410
|
throw errors.ADDON_NOT_FOUND(
|
|
398
|
-
|
|
411
|
+
message,
|
|
412
|
+
specifier,
|
|
413
|
+
parentURL,
|
|
414
|
+
candidates
|
|
399
415
|
)
|
|
400
416
|
case 'asset':
|
|
401
417
|
throw errors.ASSET_NOT_FOUND(
|
|
402
|
-
|
|
418
|
+
message,
|
|
419
|
+
specifier,
|
|
420
|
+
parentURL,
|
|
421
|
+
candidates
|
|
403
422
|
)
|
|
404
423
|
default:
|
|
405
424
|
throw errors.MODULE_NOT_FOUND(
|
|
406
|
-
|
|
425
|
+
message,
|
|
426
|
+
specifier,
|
|
427
|
+
parentURL,
|
|
428
|
+
candidates
|
|
407
429
|
)
|
|
408
430
|
}
|
|
409
431
|
}
|
package/lib/errors.js
CHANGED
|
@@ -12,28 +12,46 @@ module.exports = class ModuleTraverseError extends Error {
|
|
|
12
12
|
return 'ModuleTraverseError'
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
static MODULE_NOT_FOUND(msg) {
|
|
16
|
-
|
|
15
|
+
static MODULE_NOT_FOUND(msg, specifier, referrer = null, candidates = []) {
|
|
16
|
+
const err = new ModuleTraverseError(
|
|
17
17
|
msg,
|
|
18
18
|
'MODULE_NOT_FOUND',
|
|
19
19
|
ModuleTraverseError.MODULE_NOT_FOUND
|
|
20
20
|
)
|
|
21
|
+
|
|
22
|
+
err.specifier = specifier
|
|
23
|
+
err.referrer = referrer
|
|
24
|
+
err.candidates = candidates
|
|
25
|
+
|
|
26
|
+
return err
|
|
21
27
|
}
|
|
22
28
|
|
|
23
|
-
static ADDON_NOT_FOUND(msg) {
|
|
24
|
-
|
|
29
|
+
static ADDON_NOT_FOUND(msg, specifier, referrer = null, candidates = []) {
|
|
30
|
+
const err = new ModuleTraverseError(
|
|
25
31
|
msg,
|
|
26
32
|
'ADDON_NOT_FOUND',
|
|
27
33
|
ModuleTraverseError.ADDON_NOT_FOUND
|
|
28
34
|
)
|
|
35
|
+
|
|
36
|
+
err.specifier = specifier
|
|
37
|
+
err.referrer = referrer
|
|
38
|
+
err.candidates = candidates
|
|
39
|
+
|
|
40
|
+
return err
|
|
29
41
|
}
|
|
30
42
|
|
|
31
|
-
static ASSET_NOT_FOUND(msg) {
|
|
32
|
-
|
|
43
|
+
static ASSET_NOT_FOUND(msg, specifier, referrer = null, candidates = []) {
|
|
44
|
+
const err = new ModuleTraverseError(
|
|
33
45
|
msg,
|
|
34
46
|
'ASSET_NOT_FOUND',
|
|
35
47
|
ModuleTraverseError.ASSET_NOT_FOUND
|
|
36
48
|
)
|
|
49
|
+
|
|
50
|
+
err.specifier = specifier
|
|
51
|
+
err.referrer = referrer
|
|
52
|
+
err.candidates = candidates
|
|
53
|
+
|
|
54
|
+
return err
|
|
37
55
|
}
|
|
38
56
|
|
|
39
57
|
static INVALID_IMPORTS_MAP(msg) {
|