developit / developit/web-worker

dynamic imports throw an error in module mode

Open
#51 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
1.2k
Forks
57
PR merge metrics
No merged PRs in 30d

Description

I was made aware that make-asynchronous does't import dynamic imports (https://github.com/sindresorhus/make-asynchronous/blob/7fce502f8c5f7d2a4af20f253e9dbb14c68fa21c/test.js#L68-L74). So I looked into this by testing dynamic imports in web-worker, and I found that they somehow throw an error in "module" mode. Why?

```
> new (await import('web-worker')).default('data:,import("make-asynchronous").then(console.log)');
Worker {}
> new (await import('web-worker')).default('data:,import("make-asynchronous").then(console.log)', {type: "module"});
Worker {}
> TypeError [ERR_INVALID_URL]: Invalid URL
at new NodeError (node:internal/errors:405:5)
at getSource (node:internal/modules/esm/load:47:13)
at defaultLoad (node:internal/modules/esm/load:111:38)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async ModuleLoader.load (node:internal/modules/esm/loader:417:7)
at async ModuleLoader.moduleProvider (node:internal/modules/esm/loader:288:11)
at async link (node:internal/modules/esm/module_job:67:21) {
input: 'data:,import("make-asynchronous").then(console.log)',
code: 'ERR_INVALID_URL'
}
```

Through some debugging I got to an error involving ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.