diff options
author | Mathias Lafeldt <mathias.lafeldt@gmail.com> | 2024-05-02 00:00:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-01 22:00:32 +0000 |
commit | ee122c5af6b8251329c213b4042a6d71ff5d9b71 (patch) | |
tree | ffd463f955d1daa09e5d273a2462f1301b8b789c /runtime/snapshot.rs | |
parent | 505130d813eeb6381bf12ad92a3e9d688ed518a3 (diff) |
feat(runtime): allow adding custom extensions to snapshot (#23569)
This makes `create_runtime_snapshot` more useful for embedders who add
their own extension(s) to the runtime in build scripts.
---------
Signed-off-by: Matt Mastracci <matthew@mastracci.com>
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
Diffstat (limited to 'runtime/snapshot.rs')
-rw-r--r-- | runtime/snapshot.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/runtime/snapshot.rs b/runtime/snapshot.rs index d5122af84..2a7d97641 100644 --- a/runtime/snapshot.rs +++ b/runtime/snapshot.rs @@ -213,11 +213,13 @@ impl deno_kv::sqlite::SqliteDbHandlerPermissions for Permissions { pub fn create_runtime_snapshot( snapshot_path: PathBuf, snapshot_options: SnapshotOptions, + // NOTE: For embedders that wish to add additional extensions to the snapshot + custom_extensions: Vec<Extension>, ) { // NOTE(bartlomieju): ordering is important here, keep it in sync with // `runtime/worker.rs`, `runtime/web_worker.rs` and `runtime/snapshot.rs`! let fs = std::sync::Arc::new(deno_fs::RealFs); - let extensions: Vec<Extension> = vec![ + let mut extensions: Vec<Extension> = vec![ deno_webidl::deno_webidl::init_ops_and_esm(), deno_console::deno_console::init_ops_and_esm(), deno_url::deno_url::init_ops_and_esm(), @@ -269,6 +271,7 @@ pub fn create_runtime_snapshot( ops::bootstrap::deno_bootstrap::init_ops(Some(snapshot_options)), ops::web_worker::deno_web_worker::init_ops(), ]; + extensions.extend(custom_extensions); let output = create_snapshot( CreateSnapshotOptions { |