diff options
author | Bartek Iwańczuk <biwanczuk@gmail.com> | 2023-06-14 00:36:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-13 22:36:16 +0000 |
commit | 60bf79c18410fd332b6b9b7c222e6d3d62bfe3f8 (patch) | |
tree | 070934eb82d906ee341d1ad4d1390f0b75860529 /runtime/build.rs | |
parent | 82dd90f98d6817caadcb9b6bd81aba80b2ee848d (diff) |
Revert "refactor(core): cleanup feature flags for js source inclusion… (#19490)
… (#19463)"
This reverts commit ceb03cfb037cf7024a5048b17b508ddda59cfa05.
This is being reverted because it causes 3.5Mb increase in the binary
size,
due to runtime JS code being included in the binary, even though it's
already snapshotted.
CC @nayeemrmn
Diffstat (limited to 'runtime/build.rs')
-rw-r--r-- | runtime/build.rs | 59 |
1 files changed, 33 insertions, 26 deletions
diff --git a/runtime/build.rs b/runtime/build.rs index d7b4018fb..f656682a1 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -35,7 +35,7 @@ mod startup_snapshot { file_source.specifier ), }; - let code = file_source.load(); + let code = file_source.load()?; if !should_transpile { return Ok(code); @@ -264,20 +264,22 @@ mod startup_snapshot { ], ); - #[cfg(not(feature = "exclude_js_main_from_snapshot"))] + #[cfg(not(feature = "snapshot_from_snapshot"))] deno_core::extension!( runtime_main, deps = [runtime], customizer = |ext: &mut deno_core::ExtensionBuilder| { ext.esm(vec![ExtensionFileSource { specifier: "ext:runtime_main/js/99_main.js", - code: include_str!("js/99_main.js"), + code: deno_core::ExtensionFileSourceCode::IncludedInBinary( + include_str!("js/99_main.js"), + ), }]); ext.esm_entry_point("ext:runtime_main/js/99_main.js"); } ); - #[cfg(feature = "exclude_js_main_from_snapshot")] + #[cfg(feature = "snapshot_from_snapshot")] deno_core::extension!( runtime_main, deps = [runtime], @@ -292,48 +294,50 @@ mod startup_snapshot { // `runtime/worker.rs`, `runtime/web_worker.rs` and `cli/build.rs`! let fs = std::sync::Arc::new(deno_fs::RealFs); let extensions: Vec<Extension> = vec![ - deno_webidl::deno_webidl::init(), - deno_console::deno_console::init(), - deno_url::deno_url::init(), - deno_web::deno_web::init::<Permissions>( + deno_webidl::deno_webidl::init_ops_and_esm(), + deno_console::deno_console::init_ops_and_esm(), + deno_url::deno_url::init_ops_and_esm(), + deno_web::deno_web::init_ops_and_esm::<Permissions>( deno_web::BlobStore::default(), Default::default(), ), - deno_fetch::deno_fetch::init::<Permissions>(Default::default()), - deno_cache::deno_cache::init::<SqliteBackedCache>(None), - deno_websocket::deno_websocket::init::<Permissions>( + deno_fetch::deno_fetch::init_ops_and_esm::<Permissions>( + Default::default(), + ), + deno_cache::deno_cache::init_ops_and_esm::<SqliteBackedCache>(None), + deno_websocket::deno_websocket::init_ops_and_esm::<Permissions>( "".to_owned(), None, None, ), - deno_webstorage::deno_webstorage::init(None), - deno_crypto::deno_crypto::init(None), - deno_broadcast_channel::deno_broadcast_channel::init( + deno_webstorage::deno_webstorage::init_ops_and_esm(None), + deno_crypto::deno_crypto::init_ops_and_esm(None), + deno_broadcast_channel::deno_broadcast_channel::init_ops_and_esm( deno_broadcast_channel::InMemoryBroadcastChannel::default(), false, // No --unstable. ), - deno_ffi::deno_ffi::init::<Permissions>(false), - deno_net::deno_net::init::<Permissions>( + deno_ffi::deno_ffi::init_ops_and_esm::<Permissions>(false), + deno_net::deno_net::init_ops_and_esm::<Permissions>( None, false, // No --unstable. None, ), - deno_tls::deno_tls::init(), - deno_kv::deno_kv::init( + deno_tls::deno_tls::init_ops_and_esm(), + deno_kv::deno_kv::init_ops_and_esm( deno_kv::sqlite::SqliteDbHandler::<Permissions>::new(None), false, // No --unstable ), - deno_napi::deno_napi::init::<Permissions>(), - deno_http::deno_http::init::<DefaultHttpPropertyExtractor>(), - deno_io::deno_io::init(Default::default()), - deno_fs::deno_fs::init::<Permissions>(false, fs.clone()), - runtime::init(), + deno_napi::deno_napi::init_ops_and_esm::<Permissions>(), + deno_http::deno_http::init_ops_and_esm::<DefaultHttpPropertyExtractor>(), + deno_io::deno_io::init_ops_and_esm(Default::default()), + deno_fs::deno_fs::init_ops_and_esm::<Permissions>(false, fs.clone()), + runtime::init_ops_and_esm(), // FIXME(bartlomieju): these extensions are specified last, because they // depend on `runtime`, even though it should be other way around - deno_node::deno_node::init::<Permissions>(None, fs), - runtime_main::init(), + deno_node::deno_node::init_ops_and_esm::<Permissions>(None, fs), + runtime_main::init_ops_and_esm(), ]; - create_snapshot(CreateSnapshotOptions { + let output = create_snapshot(CreateSnapshotOptions { cargo_manifest_dir: env!("CARGO_MANIFEST_DIR"), snapshot_path, startup_snapshot: None, @@ -341,6 +345,9 @@ mod startup_snapshot { compression_cb: None, snapshot_module_load_cb: Some(Box::new(transpile_ts_for_snapshotting)), }); + for path in output.files_loaded_during_snapshot { + println!("cargo:rerun-if-changed={}", path.display()); + } } } |