rew_extensions/ext/io/
mod.rs1use 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}