bare-module 3.0.5 → 3.0.7
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.js +21 -5
- package/lib/errors.js +4 -0
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -14,6 +14,7 @@ const Module = module.exports = exports = class Module {
|
|
|
14
14
|
this._state = 0
|
|
15
15
|
this._type = 0
|
|
16
16
|
this._defaultType = this._type
|
|
17
|
+
this._cache = null
|
|
17
18
|
this._main = null
|
|
18
19
|
this._exports = null
|
|
19
20
|
this._imports = null
|
|
@@ -47,6 +48,10 @@ const Module = module.exports = exports = class Module {
|
|
|
47
48
|
return this._defaultType
|
|
48
49
|
}
|
|
49
50
|
|
|
51
|
+
get cache () {
|
|
52
|
+
return this._cache
|
|
53
|
+
}
|
|
54
|
+
|
|
50
55
|
get main () {
|
|
51
56
|
return this._main
|
|
52
57
|
}
|
|
@@ -159,14 +164,22 @@ const Module = module.exports = exports = class Module {
|
|
|
159
164
|
|
|
160
165
|
static _extensions = Object.create(null)
|
|
161
166
|
static _protocols = Object.create(null)
|
|
162
|
-
static _cache = Object.create(null)
|
|
167
|
+
static _cache = module.cache || Object.create(null)
|
|
163
168
|
static _modules = new Set()
|
|
164
169
|
static _conditions = ['bare', 'node']
|
|
165
170
|
|
|
166
171
|
static _handle = binding.init(this, this._onimport, this._onevaluate, this._onmeta)
|
|
167
172
|
|
|
168
173
|
static _onimport (specifier, assertions, referrerURL, isDynamicImport) {
|
|
169
|
-
const referrer = this._cache[referrerURL]
|
|
174
|
+
const referrer = this._cache[referrerURL] || null
|
|
175
|
+
|
|
176
|
+
if (referrer === null) {
|
|
177
|
+
let msg = `Cannot find referrer for module '${specifier}'`
|
|
178
|
+
|
|
179
|
+
if (referrerURL) msg += ` imported from '${referrerURL}'`
|
|
180
|
+
|
|
181
|
+
throw errors.REFERRER_MISSING(msg)
|
|
182
|
+
}
|
|
170
183
|
|
|
171
184
|
const url = this.resolve(specifier, referrer._url, {
|
|
172
185
|
isImport: true,
|
|
@@ -215,6 +228,7 @@ const Module = module.exports = exports = class Module {
|
|
|
215
228
|
|
|
216
229
|
meta.url = module._url.href
|
|
217
230
|
meta.main = module._main === module
|
|
231
|
+
meta.cache = module._cache
|
|
218
232
|
meta.resolve = resolve
|
|
219
233
|
meta.addon = addon
|
|
220
234
|
|
|
@@ -259,6 +273,7 @@ const Module = module.exports = exports = class Module {
|
|
|
259
273
|
referrer = null,
|
|
260
274
|
type = 0,
|
|
261
275
|
defaultType = referrer ? referrer._defaultType : 0,
|
|
276
|
+
cache = referrer ? referrer._cache : self._cache,
|
|
262
277
|
main = referrer ? referrer._main : null,
|
|
263
278
|
protocol = referrer ? referrer._protocol : self._protocols['file:'],
|
|
264
279
|
imports = referrer ? referrer._imports : null,
|
|
@@ -277,8 +292,9 @@ const Module = module.exports = exports = class Module {
|
|
|
277
292
|
break
|
|
278
293
|
|
|
279
294
|
default: {
|
|
280
|
-
module._main = main || module
|
|
281
295
|
module._defaultType = defaultType
|
|
296
|
+
module._cache = cache
|
|
297
|
+
module._main = main || module
|
|
282
298
|
module._protocol = protocol
|
|
283
299
|
module._imports = imports
|
|
284
300
|
module._resolutions = resolutions
|
|
@@ -420,7 +436,7 @@ exports.createRequire = function createRequire (parentURL, opts = {}) {
|
|
|
420
436
|
addon.host = Bare.Addon.host
|
|
421
437
|
|
|
422
438
|
require.main = module._main
|
|
423
|
-
require.cache =
|
|
439
|
+
require.cache = module._cache
|
|
424
440
|
require.resolve = resolve
|
|
425
441
|
require.addon = addon
|
|
426
442
|
|
|
@@ -503,7 +519,7 @@ Module._extensions['.cjs'] = function (module, source, referrer) {
|
|
|
503
519
|
addon.host = Bare.Addon.host
|
|
504
520
|
|
|
505
521
|
require.main = module._main
|
|
506
|
-
require.cache =
|
|
522
|
+
require.cache = module._cache
|
|
507
523
|
require.resolve = resolve
|
|
508
524
|
require.addon = addon
|
|
509
525
|
|
package/lib/errors.js
CHANGED
|
@@ -23,4 +23,8 @@ module.exports = class ModuleError extends Error {
|
|
|
23
23
|
static INVALID_BUNDLE_EXTENSION (msg) {
|
|
24
24
|
return new ModuleError(msg, 'INVALID_BUNDLE_EXTENSION', ModuleError.INVALID_BUNDLE_EXTENSION)
|
|
25
25
|
}
|
|
26
|
+
|
|
27
|
+
static REFERRER_MISSING (msg) {
|
|
28
|
+
return new ModuleError(msg, 'REFERRER_MISSING', ModuleError.REFERRER_MISSING)
|
|
29
|
+
}
|
|
26
30
|
}
|