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.
Files changed (3) hide show
  1. package/README.md +2 -1
  2. package/index.js +34 -34
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -315,7 +315,8 @@ Methods include:
315
315
  resolve,
316
316
  exists,
317
317
  read,
318
- load
318
+ load,
319
+ asset
319
320
  }
320
321
  ```
321
322
 
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
- queue.push(module)
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, referrer._url, { referrer })
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, referrer._url, { referrer })
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, referrer._url, { referrer }).href
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 '${referrer._url.href}'`
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 '${referrer._url.href}'`
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, referrer._url, { referrer })
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, referrer._url, { referrer })
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, referrer._url, { referrer }))
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-module",
3
- "version": "4.3.1",
3
+ "version": "4.4.0",
4
4
  "description": "Module support for JavaScript",
5
5
  "main": "index.js",
6
6
  "files": [