diff options
Diffstat (limited to 'cli/worker.rs')
-rw-r--r-- | cli/worker.rs | 267 |
1 files changed, 16 insertions, 251 deletions
diff --git a/cli/worker.rs b/cli/worker.rs index 41de7d1ed..d93263433 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -1,8 +1,6 @@ // Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. use crate::fmt_errors::JSError; -use crate::ops::json_op; -use crate::ops::minimal_op; -use crate::ops::*; +use crate::ops; use crate::state::ThreadSafeState; use deno; use deno::ErrBox; @@ -33,255 +31,22 @@ impl Worker { let isolate = Arc::new(Mutex::new(deno::Isolate::new(startup_data, false))); { let mut i = isolate.lock().unwrap(); - let state_ = state.clone(); - - i.register_op("read", state_.cli_op(minimal_op(io::op_read))); - i.register_op("write", state_.cli_op(minimal_op(io::op_write))); - i.register_op( - "exit", - state_.cli_op(json_op(state_.stateful_op(os::op_exit))), - ); - i.register_op( - "is_tty", - state_.cli_op(json_op(state_.stateful_op(os::op_is_tty))), - ); - i.register_op( - "env", - state_.cli_op(json_op(state_.stateful_op(os::op_env))), - ); - i.register_op( - "exec_path", - state_.cli_op(json_op(state_.stateful_op(os::op_exec_path))), - ); - i.register_op( - "utime", - state_.cli_op(json_op(state_.stateful_op(fs::op_utime))), - ); - i.register_op( - "set_env", - state_.cli_op(json_op(state_.stateful_op(os::op_set_env))), - ); - i.register_op( - "get_env", - state_.cli_op(json_op(state_.stateful_op(os::op_get_env))), - ); - i.register_op( - "home_dir", - state_.cli_op(json_op(state_.stateful_op(os::op_home_dir))), - ); - i.register_op( - "start", - state_.cli_op(json_op(state_.stateful_op(os::op_start))), - ); - i.register_op( - "apply_source_map", - state_.cli_op(json_op(state_.stateful_op(errors::op_apply_source_map))), - ); - i.register_op( - "format_error", - state_.cli_op(json_op(state_.stateful_op(errors::op_format_error))), - ); - i.register_op( - "cache", - state_.cli_op(json_op(state_.stateful_op(compiler::op_cache))), - ); - i.register_op( - "fetch_source_files", - state_ - .cli_op(json_op(state_.stateful_op(compiler::op_fetch_source_files))), - ); - i.register_op( - "open", - state_.cli_op(json_op(state_.stateful_op(files::op_open))), - ); - i.register_op( - "close", - state_.cli_op(json_op(state_.stateful_op(files::op_close))), - ); - i.register_op( - "seek", - state_.cli_op(json_op(state_.stateful_op(files::op_seek))), - ); - i.register_op( - "fetch", - state_.cli_op(json_op(state_.stateful_op(fetch::op_fetch))), - ); - i.register_op( - "metrics", - state_.cli_op(json_op(state_.stateful_op(metrics::op_metrics))), - ); - i.register_op( - "repl_start", - state_.cli_op(json_op(state_.stateful_op(repl::op_repl_start))), - ); - i.register_op( - "repl_readline", - state_.cli_op(json_op(state_.stateful_op(repl::op_repl_readline))), - ); - i.register_op( - "accept", - state_.cli_op(json_op(state_.stateful_op(net::op_accept))), - ); - i.register_op( - "dial", - state_.cli_op(json_op(state_.stateful_op(net::op_dial))), - ); - i.register_op( - "dial_tls", - state_.cli_op(json_op(state_.stateful_op(net::op_dial))), - ); - i.register_op( - "shutdown", - state_.cli_op(json_op(state_.stateful_op(net::op_shutdown))), - ); - i.register_op( - "listen", - state_.cli_op(json_op(state_.stateful_op(net::op_listen))), - ); - i.register_op( - "resources", - state_.cli_op(json_op(state_.stateful_op(resources::op_resources))), - ); - i.register_op( - "get_random_values", - state_ - .cli_op(json_op(state_.stateful_op(random::op_get_random_values))), - ); - i.register_op( - "global_timer_stop", - state_ - .cli_op(json_op(state_.stateful_op(timers::op_global_timer_stop))), - ); - i.register_op( - "global_timer", - state_.cli_op(json_op(state_.stateful_op(timers::op_global_timer))), - ); - i.register_op( - "now", - state_.cli_op(json_op(state_.stateful_op(performance::op_now))), - ); - i.register_op( - "permissions", - state_.cli_op(json_op(state_.stateful_op(permissions::op_permissions))), - ); - i.register_op( - "revoke_permission", - state_.cli_op(json_op( - state_.stateful_op(permissions::op_revoke_permission), - )), - ); - i.register_op( - "create_worker", - state_.cli_op(json_op(state_.stateful_op(workers::op_create_worker))), - ); - i.register_op( - "host_get_worker_closed", - state_.cli_op(json_op( - state_.stateful_op(workers::op_host_get_worker_closed), - )), - ); - i.register_op( - "host_post_message", - state_ - .cli_op(json_op(state_.stateful_op(workers::op_host_post_message))), - ); - i.register_op( - "host_get_message", - state_ - .cli_op(json_op(state_.stateful_op(workers::op_host_get_message))), - ); - // TODO: make sure these two ops are only accessible to appropriate Worker - i.register_op( - "worker_post_message", - state_ - .cli_op(json_op(state_.stateful_op(workers::op_worker_post_message))), - ); - i.register_op( - "worker_get_message", - state_ - .cli_op(json_op(state_.stateful_op(workers::op_worker_get_message))), - ); - i.register_op( - "run", - state_.cli_op(json_op(state_.stateful_op(process::op_run))), - ); - i.register_op( - "run_status", - state_.cli_op(json_op(state_.stateful_op(process::op_run_status))), - ); - i.register_op( - "kill", - state_.cli_op(json_op(state_.stateful_op(process::op_kill))), - ); - i.register_op( - "chdir", - state_.cli_op(json_op(state_.stateful_op(fs::op_chdir))), - ); - i.register_op( - "mkdir", - state_.cli_op(json_op(state_.stateful_op(fs::op_mkdir))), - ); - i.register_op( - "chmod", - state_.cli_op(json_op(state_.stateful_op(fs::op_chmod))), - ); - i.register_op( - "chown", - state_.cli_op(json_op(state_.stateful_op(fs::op_chown))), - ); - i.register_op( - "remove", - state_.cli_op(json_op(state_.stateful_op(fs::op_remove))), - ); - i.register_op( - "copy_file", - state_.cli_op(json_op(state_.stateful_op(fs::op_copy_file))), - ); - i.register_op( - "stat", - state_.cli_op(json_op(state_.stateful_op(fs::op_stat))), - ); - i.register_op( - "read_dir", - state_.cli_op(json_op(state_.stateful_op(fs::op_read_dir))), - ); - i.register_op( - "rename", - state_.cli_op(json_op(state_.stateful_op(fs::op_rename))), - ); - i.register_op( - "link", - state_.cli_op(json_op(state_.stateful_op(fs::op_link))), - ); - i.register_op( - "symlink", - state_.cli_op(json_op(state_.stateful_op(fs::op_symlink))), - ); - i.register_op( - "read_link", - state_.cli_op(json_op(state_.stateful_op(fs::op_read_link))), - ); - i.register_op( - "truncate", - state_.cli_op(json_op(state_.stateful_op(fs::op_truncate))), - ); - i.register_op( - "make_temp_dir", - state_.cli_op(json_op(state_.stateful_op(fs::op_make_temp_dir))), - ); - i.register_op( - "cwd", - state_.cli_op(json_op(state_.stateful_op(fs::op_cwd))), - ); - i.register_op( - "fetch_asset", - state_.cli_op(json_op(state_.stateful_op(compiler::op_fetch_asset))), - ); - i.register_op( - "hostname", - state_.cli_op(json_op(state_.stateful_op(os::op_hostname))), - ); + ops::compiler::init(&mut i, &state); + ops::errors::init(&mut i, &state); + ops::fetch::init(&mut i, &state); + ops::files::init(&mut i, &state); + ops::fs::init(&mut i, &state); + ops::io::init(&mut i, &state); + ops::net::init(&mut i, &state); + ops::os::init(&mut i, &state); + ops::permissions::init(&mut i, &state); + ops::process::init(&mut i, &state); + ops::random::init(&mut i, &state); + ops::repl::init(&mut i, &state); + ops::resources::init(&mut i, &state); + ops::timers::init(&mut i, &state); + ops::workers::init(&mut i, &state); let state_ = state.clone(); i.set_dyn_import(move |id, specifier, referrer| { |