bare-module 1.11.3 → 1.12.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/binding.c +14 -5
  2. package/index.js +25 -0
  3. package/package.json +1 -1
package/binding.c CHANGED
@@ -437,12 +437,12 @@ bare_module_exists (js_env_t *env, js_callback_info_t *info) {
437
437
 
438
438
  uv_stat_t *st = req.result < 0 ? NULL : req.ptr;
439
439
 
440
- uv_fs_req_cleanup(&req);
441
-
442
440
  js_value_t *result;
443
441
  err = js_get_boolean(env, st && st->st_mode & S_IFREG, &result);
444
442
  assert(err == 0);
445
443
 
444
+ uv_fs_req_cleanup(&req);
445
+
446
446
  return result;
447
447
  }
448
448
 
@@ -469,9 +469,12 @@ bare_module_realpath (js_env_t *env, js_callback_info_t *info) {
469
469
  uv_fs_t req;
470
470
  uv_fs_realpath(loop, &req, (char *) path, NULL);
471
471
 
472
- if (req.result < 0) {
473
- js_throw_error(env, uv_err_name(err), uv_strerror(err));
474
- return NULL;
472
+ int res = req.result;
473
+
474
+ if (res < 0) {
475
+ uv_fs_req_cleanup(&req);
476
+ err = res;
477
+ goto err;
475
478
  }
476
479
 
477
480
  js_value_t *result;
@@ -481,6 +484,11 @@ bare_module_realpath (js_env_t *env, js_callback_info_t *info) {
481
484
  uv_fs_req_cleanup(&req);
482
485
 
483
486
  return result;
487
+
488
+ err:
489
+ js_throw_error(env, uv_err_name(err), uv_strerror(err));
490
+
491
+ return NULL;
484
492
  }
485
493
 
486
494
  static js_value_t *
@@ -536,6 +544,7 @@ bare_module_read (js_env_t *env, js_callback_info_t *info) {
536
544
  if (res < 0) {
537
545
  uv_fs_close(loop, &req, fd, NULL);
538
546
  uv_fs_req_cleanup(&req);
547
+ err = res;
539
548
  goto err;
540
549
  }
541
550
 
package/index.js CHANGED
@@ -116,6 +116,31 @@ const Module = module.exports = class Module {
116
116
  return name in this._builtins
117
117
  }
118
118
 
119
+ static createRequire (filename) {
120
+ const module = new Module(filename)
121
+ const referrer = module
122
+
123
+ const resolve = (specifier) => {
124
+ return this.resolve(specifier, module.dirname, {
125
+ referrer
126
+ })
127
+ }
128
+
129
+ const require = (specifier) => {
130
+ const module = this.load(resolve(specifier), {
131
+ referrer
132
+ })
133
+
134
+ return module.exports
135
+ }
136
+
137
+ require.main = module.main
138
+ require.cache = this.cache
139
+ require.resolve = resolve
140
+
141
+ return require
142
+ }
143
+
119
144
  static load (specifier, source = null, opts = {}) {
120
145
  if (!ArrayBuffer.isView(source) && typeof source !== 'string' && source !== null) {
121
146
  opts = source
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-module",
3
- "version": "1.11.3",
3
+ "version": "1.12.0",
4
4
  "description": "Module support for JavaScript",
5
5
  "main": "index.js",
6
6
  "files": [