mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 10:59:13 +00:00
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
This commit is contained in:
parent
99da8a69e7
commit
8f207c0f3f
26 changed files with 1015 additions and 496 deletions
40
cli/build.rs
40
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!(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue