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.
- package/binding.c +14 -5
- package/index.js +25 -0
- 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
|
-
|
|
473
|
-
|
|
474
|
-
|
|
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
|