bare-module 2.0.0 → 2.0.2

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 CHANGED
@@ -6,7 +6,6 @@ const Protocol = require('./lib/protocol')
6
6
  const constants = require('./lib/constants')
7
7
  const errors = require('./lib/errors')
8
8
  const binding = require('./binding')
9
- const addon = require.addon.bind(require)
10
9
 
11
10
  const Module = module.exports = exports = class Module {
12
11
  constructor (filename) {
@@ -186,9 +185,10 @@ const Module = module.exports = exports = class Module {
186
185
  module._protocol = protocol
187
186
 
188
187
  const referrer = module
188
+ const dirname = path.dirname(module._filename)
189
189
 
190
190
  const resolve = (specifier) => {
191
- return this.resolve(specifier, path.dirname(module._filename), {
191
+ return this.resolve(specifier, dirname, {
192
192
  protocol: this._protocolFor(specifier, protocol),
193
193
  imports,
194
194
  referrer
@@ -205,10 +205,16 @@ const Module = module.exports = exports = class Module {
205
205
  return module._exports
206
206
  }
207
207
 
208
+ const addon = (specifier = '.') => {
209
+ return Bare.Addon.load(Bare.Addon.resolve(specifier, dirname, {
210
+ referrer
211
+ }))
212
+ }
213
+
208
214
  require.main = module._main
209
215
  require.cache = this._cache
210
216
  require.resolve = resolve
211
- require.addon = (specifier = path.dirname(module._filename)) => addon(specifier)
217
+ require.addon = addon
212
218
 
213
219
  return require
214
220
  }
@@ -395,8 +401,10 @@ const Module = module.exports = exports = class Module {
395
401
  }
396
402
 
397
403
  static * _resolveNodeModules (specifier, dirname, protocol) {
404
+ const [, name, expansion = '.'] = /^((?:@[^/\\%]+\/)?[^./\\%][^/\\%]*)(\/.*)?$/.exec(specifier) || []
405
+
398
406
  for (const nodeModules of this._resolveNodeModulesPaths(dirname)) {
399
- const [, name, expansion = '.'] = /^((?:@[^/\\%]+\/)?[^./\\%][^/\\%]*)(\/.*)?$/.exec(specifier) || []
407
+ let resolved = specifier
400
408
 
401
409
  if (name) {
402
410
  const pkg = path.join(nodeModules, name, 'package.json')
@@ -409,16 +417,16 @@ const Module = module.exports = exports = class Module {
409
417
 
410
418
  if (info) {
411
419
  if (info.exports) {
412
- specifier = this._mapConditionalExport(expansion, dirname, info.exports)
420
+ resolved = this._mapConditionalExport(expansion, dirname, info.exports)
413
421
 
414
- if (specifier) specifier = path.join(name, specifier)
422
+ if (resolved) resolved = path.join(name, resolved)
415
423
  else return
416
424
  }
417
425
  }
418
426
  }
419
427
  }
420
428
 
421
- const filename = path.join(nodeModules, specifier)
429
+ const filename = path.join(nodeModules, resolved)
422
430
 
423
431
  yield * this._resolveFile(filename, protocol)
424
432
  yield * this._resolveDirectory(filename, protocol)
@@ -622,8 +630,10 @@ Module._extensions['.cjs'] = function (module, source, referrer, protocol, impor
622
630
 
623
631
  referrer = module
624
632
 
633
+ const dirname = path.dirname(module._filename)
634
+
625
635
  const resolve = (specifier) => {
626
- return this.resolve(specifier, path.dirname(module._filename), {
636
+ return this.resolve(specifier, dirname, {
627
637
  protocol: this._protocolFor(specifier, protocol),
628
638
  imports,
629
639
  referrer
@@ -640,12 +650,18 @@ Module._extensions['.cjs'] = function (module, source, referrer, protocol, impor
640
650
  return module._exports
641
651
  }
642
652
 
643
- module._exports = {}
653
+ const addon = (specifier = '.') => {
654
+ return Bare.Addon.load(Bare.Addon.resolve(specifier, dirname, {
655
+ referrer
656
+ }))
657
+ }
644
658
 
645
659
  require.main = module._main
646
660
  require.cache = this._cache
647
661
  require.resolve = resolve
648
- require.addon = (specifier = path.dirname(module._filename)) => addon(specifier)
662
+ require.addon = addon
663
+
664
+ module._exports = {}
649
665
 
650
666
  binding.createFunction(module._filename, ['require', 'module', 'exports', '__filename', '__dirname'], source, 0)(
651
667
  require,
@@ -694,7 +710,7 @@ Module._extensions['.bare'] = function (module, source, referrer, protocol, impo
694
710
  module._protocol = protocol
695
711
  module._imports = imports
696
712
 
697
- module._exports = addon(module._filename)
713
+ module._exports = Bare.Addon.load(module._filename)
698
714
  }
699
715
 
700
716
  Module._extensions['.node'] = function (module, source, referrer, protocol, imports) {
@@ -702,7 +718,7 @@ Module._extensions['.node'] = function (module, source, referrer, protocol, impo
702
718
  module._protocol = protocol
703
719
  module._imports = imports
704
720
 
705
- module._exports = addon(module._filename)
721
+ module._exports = Bare.Addon.load(module._filename)
706
722
  }
707
723
 
708
724
  Module._extensions['.bundle'] = function (module, source, referrer, protocol, imports) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-module",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "Module support for JavaScript",
5
5
  "main": "index.js",
6
6
  "files": [