Skip to main content

rew_extensions/ext/io/
mod.rs

1use super::ExtensionTrait;
2use deno_core::{Extension, extension};
3
4#[cfg(windows)]
5mod tty_windows;
6#[cfg(windows)]
7use tty_windows as tty;
8
9#[cfg(unix)]
10mod tty_unix;
11#[cfg(unix)]
12use tty_unix as tty;
13
14extension!(
15    init_io,
16    esm_entry_point = "ext:init_io/init_io.js",
17    esm = [ dir "src/ext/io", "init_io.js" ],
18);
19impl ExtensionTrait<()> for init_io {
20  fn init((): ()) -> Extension {
21    init_io::init()
22  }
23}
24impl ExtensionTrait<Option<deno_io::Stdio>> for deno_io::deno_io {
25  fn init(pipes: Option<deno_io::Stdio>) -> Extension {
26    deno_io::deno_io::init(pipes)
27  }
28}
29impl ExtensionTrait<()> for tty::deno_tty {
30  fn init((): ()) -> Extension {
31    tty::deno_tty::init()
32  }
33}
34
35pub fn extensions(pipes: Option<deno_io::Stdio>, is_snapshot: bool) -> Vec<Extension> {
36  vec![
37    deno_io::deno_io::build(pipes, is_snapshot),
38    tty::deno_tty::build((), is_snapshot),
39    init_io::build((), is_snapshot),
40  ]
41}