summaryrefslogtreecommitdiff
path: root/cli/build.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2023-03-09 10:56:19 -0400
committerGitHub <noreply@github.com>2023-03-09 14:56:19 +0000
commit8f207c0f3f3a43d77e0c88cfdc840b4b742b9708 (patch)
treea8699bca5ffffff03a9d72f1bed9208a349338ba /cli/build.rs
parent99da8a69e7260b72e55d7214ec96f6ac5e759f35 (diff)
refactor: Split extension registration for runtime and snapshotting (#18095)
This commit splits "<ext_name>::init" functions into "init_ops" and "init_ops_and_esm". That way we don't have to construct list of ESM sources on each startup if we're running with a snapshot. In a follow up commit "deno_core" will be changed to not have a split between "extensions" and "extensions_with_js" - it will be embedders' responsibility to pass appropriately configured extensions. Prerequisite for https://github.com/denoland/deno/pull/18080
Diffstat (limited to 'cli/build.rs')
-rw-r--r--cli/build.rs40
1 files changed, 22 insertions, 18 deletions
diff --git a/cli/build.rs b/cli/build.rs
index 956293b78..6687b1e44 100644
--- a/cli/build.rs
+++ b/cli/build.rs
@@ -322,36 +322,40 @@ mod ts {
fn create_cli_snapshot(snapshot_path: PathBuf) {
let extensions: Vec<Extension> = vec![
- deno_webidl::init(),
- deno_console::init(),
- deno_url::init(),
+ deno_webidl::init_esm(),
+ deno_console::init_esm(),
+ deno_url::init_ops_and_esm(),
deno_tls::init(),
- deno_web::init::<PermissionsContainer>(
+ deno_web::init_ops_and_esm::<PermissionsContainer>(
deno_web::BlobStore::default(),
Default::default(),
),
- deno_fetch::init::<PermissionsContainer>(Default::default()),
- deno_cache::init::<SqliteBackedCache>(None),
- deno_websocket::init::<PermissionsContainer>("".to_owned(), None, None),
- deno_webstorage::init(None),
- deno_crypto::init(None),
- deno_webgpu::init(false),
- deno_broadcast_channel::init(
+ deno_fetch::init_ops_and_esm::<PermissionsContainer>(Default::default()),
+ deno_cache::init_ops_and_esm::<SqliteBackedCache>(None),
+ deno_websocket::init_ops_and_esm::<PermissionsContainer>(
+ "".to_owned(),
+ None,
+ None,
+ ),
+ deno_webstorage::init_ops_and_esm(None),
+ deno_crypto::init_ops_and_esm(None),
+ deno_webgpu::init_ops_and_esm(false),
+ deno_broadcast_channel::init_ops_and_esm(
deno_broadcast_channel::InMemoryBroadcastChannel::default(),
false, // No --unstable.
),
- deno_io::init(Default::default()),
- deno_fs::init::<PermissionsContainer>(false),
- deno_node::init::<PermissionsContainer>(None), // No --unstable.
+ deno_io::init_ops_and_esm(Default::default()),
+ deno_fs::init_ops_and_esm::<PermissionsContainer>(false),
+ deno_node::init_ops_and_esm::<PermissionsContainer>(None), // No --unstable.
deno_node::init_polyfill_ops_and_esm(),
- deno_ffi::init::<PermissionsContainer>(false),
- deno_net::init::<PermissionsContainer>(
+ deno_ffi::init_ops_and_esm::<PermissionsContainer>(false),
+ deno_net::init_ops_and_esm::<PermissionsContainer>(
None, false, // No --unstable.
None,
),
deno_napi::init::<PermissionsContainer>(),
- deno_http::init(),
- deno_flash::init::<PermissionsContainer>(false), // No --unstable
+ deno_http::init_ops_and_esm(),
+ deno_flash::init_ops_and_esm::<PermissionsContainer>(false), // No --unstable
];
let mut esm_files = include_js_files!(