bare-module 4.3.1 → 4.4.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/README.md +2 -1
- package/index.js +34 -34
- package/package.json +1 -1
package/README.md
CHANGED
package/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* global Bare */
|
|
2
2
|
const path = require('bare-path')
|
|
3
3
|
const resolve = require('bare-module-resolve')
|
|
4
|
-
const { fileURLToPath, pathToFileURL } = require('bare-url')
|
|
4
|
+
const { isURL, fileURLToPath, pathToFileURL } = require('bare-url')
|
|
5
5
|
const Bundle = require('bare-bundle')
|
|
6
6
|
const { parse } = require('cjs-module-lexer')
|
|
7
7
|
const Protocol = require('./lib/protocol')
|
|
@@ -156,7 +156,11 @@ const Module = module.exports = exports = class Module {
|
|
|
156
156
|
|
|
157
157
|
const module = Module.load(resolved, { isImport: true, referrer })
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
if (module._names) {
|
|
160
|
+
for (const name of module._names) names.add(name)
|
|
161
|
+
} else {
|
|
162
|
+
queue.push(module)
|
|
163
|
+
}
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
break
|
|
@@ -326,8 +330,8 @@ const Module = module.exports = exports = class Module {
|
|
|
326
330
|
meta.addon = addon
|
|
327
331
|
meta.asset = asset
|
|
328
332
|
|
|
329
|
-
function resolve (specifier) {
|
|
330
|
-
const resolved = self.resolve(specifier,
|
|
333
|
+
function resolve (specifier, parentURL = referrer._url) {
|
|
334
|
+
const resolved = self.resolve(specifier, toURL(parentURL), { referrer })
|
|
331
335
|
|
|
332
336
|
switch (resolved.protocol) {
|
|
333
337
|
case 'builtin:': return resolved.pathname
|
|
@@ -335,16 +339,16 @@ const Module = module.exports = exports = class Module {
|
|
|
335
339
|
}
|
|
336
340
|
}
|
|
337
341
|
|
|
338
|
-
function addon (specifier = '.') {
|
|
339
|
-
const resolved = Bare.Addon.resolve(specifier,
|
|
342
|
+
function addon (specifier = '.', parentURL = referrer._url) {
|
|
343
|
+
const resolved = Bare.Addon.resolve(specifier, toURL(parentURL), { referrer })
|
|
340
344
|
|
|
341
345
|
const addon = Bare.Addon.load(resolved, { referrer })
|
|
342
346
|
|
|
343
347
|
return addon._exports
|
|
344
348
|
}
|
|
345
349
|
|
|
346
|
-
function asset (specifier) {
|
|
347
|
-
return self.asset(specifier,
|
|
350
|
+
function asset (specifier, parentURL = referrer._url) {
|
|
351
|
+
return self.asset(specifier, toURL(parentURL), { referrer }).href
|
|
348
352
|
}
|
|
349
353
|
}
|
|
350
354
|
|
|
@@ -481,7 +485,7 @@ const Module = module.exports = exports = class Module {
|
|
|
481
485
|
|
|
482
486
|
let msg = `Cannot find module '${specifier}'`
|
|
483
487
|
|
|
484
|
-
if (referrer) msg += ` imported from '${
|
|
488
|
+
if (referrer) msg += ` imported from '${parentURL.href}'`
|
|
485
489
|
|
|
486
490
|
throw errors.MODULE_NOT_FOUND(msg)
|
|
487
491
|
|
|
@@ -521,7 +525,7 @@ const Module = module.exports = exports = class Module {
|
|
|
521
525
|
|
|
522
526
|
let msg = `Cannot find asset '${specifier}'`
|
|
523
527
|
|
|
524
|
-
if (referrer) msg += ` imported from '${
|
|
528
|
+
if (referrer) msg += ` imported from '${parentURL.href}'`
|
|
525
529
|
|
|
526
530
|
throw errors.ASSET_NOT_FOUND(msg)
|
|
527
531
|
|
|
@@ -568,14 +572,6 @@ exports.isBuiltin = function isBuiltin () {
|
|
|
568
572
|
const createRequire = exports.createRequire = function createRequire (parentURL, opts = {}) {
|
|
569
573
|
const self = Module
|
|
570
574
|
|
|
571
|
-
if (typeof parentURL === 'string') {
|
|
572
|
-
if (startsWithWindowsDriveLetter(parentURL)) {
|
|
573
|
-
parentURL = '/' + parentURL
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
parentURL = new URL(parentURL, 'file:')
|
|
577
|
-
}
|
|
578
|
-
|
|
579
575
|
let {
|
|
580
576
|
module = null,
|
|
581
577
|
|
|
@@ -592,7 +588,7 @@ const createRequire = exports.createRequire = function createRequire (parentURL,
|
|
|
592
588
|
} = opts
|
|
593
589
|
|
|
594
590
|
if (module === null) {
|
|
595
|
-
module = new Module(parentURL)
|
|
591
|
+
module = new Module(toURL(parentURL))
|
|
596
592
|
|
|
597
593
|
module._type = type
|
|
598
594
|
module._defaultType = defaultType
|
|
@@ -625,8 +621,8 @@ const createRequire = exports.createRequire = function createRequire (parentURL,
|
|
|
625
621
|
return module._exports
|
|
626
622
|
}
|
|
627
623
|
|
|
628
|
-
function resolve (specifier) {
|
|
629
|
-
const resolved = self.resolve(specifier,
|
|
624
|
+
function resolve (specifier, parentURL = referrer._url) {
|
|
625
|
+
const resolved = self.resolve(specifier, toURL(parentURL), { referrer })
|
|
630
626
|
|
|
631
627
|
switch (resolved.protocol) {
|
|
632
628
|
case 'builtin:': return resolved.pathname
|
|
@@ -634,16 +630,16 @@ const createRequire = exports.createRequire = function createRequire (parentURL,
|
|
|
634
630
|
}
|
|
635
631
|
}
|
|
636
632
|
|
|
637
|
-
function addon (specifier = '.') {
|
|
638
|
-
const resolved = Bare.Addon.resolve(specifier,
|
|
633
|
+
function addon (specifier = '.', parentURL = referrer._url) {
|
|
634
|
+
const resolved = Bare.Addon.resolve(specifier, toURL(parentURL), { referrer })
|
|
639
635
|
|
|
640
636
|
const addon = Bare.Addon.load(resolved, { referrer })
|
|
641
637
|
|
|
642
638
|
return addon._exports
|
|
643
639
|
}
|
|
644
640
|
|
|
645
|
-
function asset (specifier) {
|
|
646
|
-
return urlToPath(self.asset(specifier,
|
|
641
|
+
function asset (specifier, parentURL = referrer._url) {
|
|
642
|
+
return urlToPath(self.asset(specifier, toURL(parentURL), { referrer }))
|
|
647
643
|
}
|
|
648
644
|
}
|
|
649
645
|
|
|
@@ -767,22 +763,16 @@ Module._extensions['.bundle'] = function (module, source, referrer) {
|
|
|
767
763
|
module._resolutions = bundle.resolutions
|
|
768
764
|
|
|
769
765
|
module._protocol = protocol.extend({
|
|
770
|
-
preresolve (context, specifier) {
|
|
771
|
-
return specifier
|
|
772
|
-
},
|
|
773
|
-
|
|
774
766
|
postresolve (context, url) {
|
|
775
|
-
return url
|
|
767
|
+
return bundle.exists(url.href) ? url : context.postresolve(url)
|
|
776
768
|
},
|
|
777
769
|
|
|
778
|
-
* resolve () {},
|
|
779
|
-
|
|
780
770
|
exists (context, url) {
|
|
781
|
-
return bundle.exists(url.href)
|
|
771
|
+
return bundle.exists(url.href) || context.exists(url)
|
|
782
772
|
},
|
|
783
773
|
|
|
784
774
|
read (context, url) {
|
|
785
|
-
return bundle.read(url.href)
|
|
775
|
+
return bundle.read(url.href) || context.read(url)
|
|
786
776
|
}
|
|
787
777
|
})
|
|
788
778
|
|
|
@@ -829,6 +819,16 @@ Bare
|
|
|
829
819
|
binding.destroy(Module._handle)
|
|
830
820
|
})
|
|
831
821
|
|
|
822
|
+
function toURL (value) {
|
|
823
|
+
if (isURL(value)) return value
|
|
824
|
+
|
|
825
|
+
if (startsWithWindowsDriveLetter(value)) {
|
|
826
|
+
return pathToFileURL(value)
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
return URL.parse(value) || pathToFileURL(value)
|
|
830
|
+
}
|
|
831
|
+
|
|
832
832
|
function urlToPath (url) {
|
|
833
833
|
if (url.protocol === 'file:') return fileURLToPath(url)
|
|
834
834
|
|