bare-module 5.0.2 → 6.0.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 CHANGED
@@ -66,14 +66,14 @@ err:
66
66
  return NULL;
67
67
  }
68
68
 
69
- static js_module_t *
69
+ static js_value_t *
70
70
  bare_module__on_dynamic_import(js_env_t *env, js_value_t *specifier, js_value_t *assertions, js_value_t *referrer, void *data) {
71
71
  bare_module_context_t *context = (bare_module_context_t *) data;
72
72
 
73
73
  int err;
74
74
 
75
- js_handle_scope_t *scope;
76
- err = js_open_handle_scope(env, &scope);
75
+ js_escapable_handle_scope_t *scope;
76
+ err = js_open_escapable_handle_scope(env, &scope);
77
77
  assert(err == 0);
78
78
 
79
79
  js_value_t *ctx;
@@ -93,17 +93,16 @@ bare_module__on_dynamic_import(js_env_t *env, js_value_t *specifier, js_value_t
93
93
  err = js_call_function(env, ctx, on_import, 4, args, &result);
94
94
  if (err < 0) goto err;
95
95
 
96
- js_module_t *module;
97
- err = js_get_value_external(env, result, (void **) &module);
98
- if (err < 0) goto err;
96
+ err = js_escape_handle(env, scope, result, &result);
97
+ assert(err == 0);
99
98
 
100
- err = js_close_handle_scope(env, scope);
99
+ err = js_close_escapable_handle_scope(env, scope);
101
100
  assert(err == 0);
102
101
 
103
- return module;
102
+ return result;
104
103
 
105
104
  err:
106
- err = js_close_handle_scope(env, scope);
105
+ err = js_close_escapable_handle_scope(env, scope);
107
106
  assert(err == 0);
108
107
 
109
108
  return NULL;
@@ -249,7 +248,10 @@ bare_module_init(js_env_t *env, js_callback_info_t *info) {
249
248
  err = js_add_teardown_callback(env, bare_module__on_teardown, context);
250
249
  assert(err == 0);
251
250
 
252
- err = js_on_dynamic_import(env, bare_module__on_dynamic_import, (void *) context);
251
+ err = js_on_dynamic_import(env, NULL, NULL);
252
+ assert(err == 0);
253
+
254
+ err = js_on_dynamic_import_transitional(env, bare_module__on_dynamic_import, (void *) context);
253
255
  assert(err == 0);
254
256
 
255
257
  return result;
@@ -477,7 +479,7 @@ bare_module_run_module(js_env_t *env, js_callback_info_t *info) {
477
479
  js_call_function(env, ctx, argv[2], 3, args, NULL);
478
480
  }
479
481
 
480
- return NULL;
482
+ return promise;
481
483
  }
482
484
 
483
485
  static js_value_t *
package/index.js CHANGED
@@ -16,7 +16,7 @@ const { startsWithWindowsDriveLetter } = resolve
16
16
 
17
17
  module.exports = exports = class Module {
18
18
  static get [kind]() {
19
- return 0 // Compatibility version
19
+ return 1 // Compatibility version
20
20
  }
21
21
 
22
22
  constructor(url) {
@@ -35,6 +35,7 @@ module.exports = exports = class Module {
35
35
  this._source = null
36
36
  this._function = null
37
37
  this._names = null
38
+ this._promise = null
38
39
  this._handle = null
39
40
 
40
41
  Object.preventExtensions(this)
@@ -231,7 +232,11 @@ module.exports = exports = class Module {
231
232
 
232
233
  this._synthesize()
233
234
 
234
- binding.runModule(this._handle, Module._handle, Module._onrun)
235
+ this._promise = binding.runModule(
236
+ this._handle,
237
+ Module._handle,
238
+ Module._onrun
239
+ )
235
240
  }
236
241
 
237
242
  [Symbol.for('bare.inspect')]() {
@@ -284,7 +289,9 @@ module.exports = exports = class Module {
284
289
  attributes
285
290
  })
286
291
 
287
- return module._handle
292
+ return isDynamicImport
293
+ ? module._promise.then(() => binding.getNamespace(module._handle))
294
+ : module._handle
288
295
  }
289
296
 
290
297
  static _onevaluate(href) {
@@ -547,7 +554,7 @@ module.exports = exports = class Module {
547
554
  }
548
555
  }
549
556
 
550
- let message = `Cannot find module '${specifier}' imported from '${parentURL.href}`
557
+ let message = `Cannot find module '${specifier}' imported from '${parentURL.href}'`
551
558
 
552
559
  if (candidates.length > 0) {
553
560
  message += '\nCandidates:'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bare-module",
3
- "version": "5.0.2",
3
+ "version": "6.0.0",
4
4
  "description": "Module support for JavaScript",
5
5
  "exports": {
6
6
  ".": {
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "homepage": "https://github.com/holepunchto/bare-module#readme",
35
35
  "engines": {
36
- "bare": ">=1.20.3"
36
+ "bare": ">=1.23.0"
37
37
  },
38
38
  "dependencies": {
39
39
  "bare-bundle": "^1.3.0",