bare-module 4.3.2 → 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 +31 -25
- 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
|
|
|
@@ -823,6 +819,16 @@ Bare
|
|
|
823
819
|
binding.destroy(Module._handle)
|
|
824
820
|
})
|
|
825
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
|
+
|
|
826
832
|
function urlToPath (url) {
|
|
827
833
|
if (url.protocol === 'file:') return fileURLToPath(url)
|
|
828
834
|
|