feat(npm): functionality to support child_process.fork (#15891)

This commit is contained in:
David Sherret 2022-09-28 13:04:16 -04:00 committed by GitHub
parent 23125b275f
commit d677ba67f5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 232 additions and 21 deletions

View file

@ -1,7 +1,11 @@
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.
use crate::proc_state::ProcState;
use deno_core::anyhow::bail;
use deno_core::error::AnyError;
use deno_core::op;
use deno_core::Extension;
use deno_core::OpState;
pub mod bench;
pub mod testing;
@ -12,9 +16,21 @@ pub fn cli_exts(ps: ProcState) -> Vec<Extension> {
fn init_proc_state(ps: ProcState) -> Extension {
Extension::builder()
.ops(vec![op_npm_process_state::decl()])
.state(move |state| {
state.put(ps.clone());
Ok(())
})
.build()
}
#[op]
fn op_npm_process_state(state: &mut OpState) -> Result<String, AnyError> {
let proc_state = state.borrow_mut::<ProcState>();
if !proc_state.options.unstable() {
bail!(
"Unstable use of npm process state. The --unstable flag must be provided."
)
}
Ok(proc_state.npm_resolver.get_npm_process_state())
}