bare-module 3.0.2 → 3.0.4

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 +1 -1
  2. package/index.js +41 -16
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -66,7 +66,7 @@ Options include:
66
66
 
67
67
  ### Custom `require()`
68
68
 
69
- #### `const require = Module.createRequire(url[, options])`
69
+ #### `const require = Module.createRequire(parentURL[, options])`
70
70
 
71
71
  ### Protocols
72
72
 
package/index.js CHANGED
@@ -219,11 +219,20 @@ const Module = module.exports = exports = class Module {
219
219
  meta.addon = addon
220
220
 
221
221
  function resolve (specifier) {
222
- return self.resolve(specifier, referrer._url, { referrer }).href
222
+ const resolved = self.resolve(specifier, referrer._url, { referrer })
223
+
224
+ switch (resolved.protocol) {
225
+ case 'builtin:': return resolved.pathname
226
+ default: return resolved.href
227
+ }
223
228
  }
224
229
 
225
230
  function addon (specifier = '.') {
226
- return Bare.Addon.load(Bare.Addon.resolve(specifier, referrer._url, { referrer })).exports
231
+ const resolved = Bare.Addon.resolve(specifier, referrer._url, { referrer })
232
+
233
+ const addon = Bare.Addon.load(resolved)
234
+
235
+ return addon._exports
227
236
  }
228
237
  }
229
238
 
@@ -245,10 +254,10 @@ const Module = module.exports = exports = class Module {
245
254
  return false
246
255
  }
247
256
 
248
- static createRequire (url, opts = {}) {
257
+ static createRequire (parentURL, opts = {}) {
249
258
  const self = Module
250
259
 
251
- if (typeof url === 'string') url = new URL(url, 'file:///')
260
+ if (typeof parentURL === 'string') parentURL = new URL(parentURL, 'file:')
252
261
 
253
262
  let {
254
263
  referrer = null,
@@ -262,7 +271,7 @@ const Module = module.exports = exports = class Module {
262
271
  type = constants.types.SCRIPT
263
272
  } = opts
264
273
 
265
- const module = new Module(url)
274
+ const module = new Module(parentURL)
266
275
 
267
276
  module._main = main || module
268
277
  module._type = type
@@ -285,19 +294,28 @@ const Module = module.exports = exports = class Module {
285
294
  return require
286
295
 
287
296
  function require (specifier) {
288
- const url = self.resolve(specifier, referrer._url, { referrer })
297
+ const resolved = self.resolve(specifier, referrer._url, { referrer })
289
298
 
290
- const module = self.load(url, { referrer })
299
+ const module = self.load(resolved, { referrer })
291
300
 
292
301
  return module._exports
293
302
  }
294
303
 
295
304
  function resolve (specifier) {
296
- return self.resolve(specifier, referrer._url, { referrer }).pathname
305
+ const resolved = self.resolve(specifier, referrer._url, { referrer })
306
+
307
+ switch (resolved.protocol) {
308
+ case 'builtin:': return resolved.pathname
309
+ default: return url.fileURLToPath(resolved)
310
+ }
297
311
  }
298
312
 
299
313
  function addon (specifier = '.') {
300
- return Bare.Addon.load(Bare.Addon.resolve(specifier, referrer._url, { referrer })).exports
314
+ const resolved = Bare.Addon.resolve(specifier, referrer._url, { referrer })
315
+
316
+ const addon = Bare.Addon.load(resolved)
317
+
318
+ return addon._exports
301
319
  }
302
320
  }
303
321
 
@@ -396,12 +414,10 @@ const Module = module.exports = exports = class Module {
396
414
  }, readPackage)) {
397
415
  switch (resolution.protocol) {
398
416
  case 'builtin:': return resolution
399
-
400
- case 'file:': {
417
+ default:
401
418
  if (protocol.exists(resolution)) {
402
419
  return protocol.postresolve(resolution, parentURL)
403
420
  }
404
- }
405
421
  }
406
422
  }
407
423
 
@@ -506,19 +522,28 @@ Module._extensions['.cjs'] = function (module, source, referrer) {
506
522
  )
507
523
 
508
524
  function require (specifier) {
509
- const url = self.resolve(specifier, referrer._url, { referrer })
525
+ const resolved = self.resolve(specifier, referrer._url, { referrer })
510
526
 
511
- const module = self.load(url, { referrer })
527
+ const module = self.load(resolved, { referrer })
512
528
 
513
529
  return module._exports
514
530
  }
515
531
 
516
532
  function resolve (specifier) {
517
- return self.resolve(specifier, referrer._url, { referrer }).pathname
533
+ const resolved = self.resolve(specifier, referrer._url, { referrer })
534
+
535
+ switch (resolved.protocol) {
536
+ case 'builtin:': return resolved.pathname
537
+ default: url.fileURLToPath(resolved)
538
+ }
518
539
  }
519
540
 
520
541
  function addon (specifier = '.') {
521
- return Bare.Addon.load(Bare.Addon.resolve(specifier, referrer._url, { referrer })).exports
542
+ const resolved = Bare.Addon.resolve(specifier, referrer._url, { referrer })
543
+
544
+ const addon = Bare.Addon.load(resolved)
545
+
546
+ return addon._exports
522
547
  }
523
548
  }
524
549
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-module",
3
- "version": "3.0.2",
3
+ "version": "3.0.4",
4
4
  "description": "Module support for JavaScript",
5
5
  "main": "index.js",
6
6
  "files": [