summaryrefslogtreecommitdiff
path: root/cli/js/dispatch.ts
diff options
context:
space:
mode:
authorAndy Finch <andyfinch7@gmail.com>2020-01-17 08:26:11 -0500
committerRy Dahl <ry@tinyclouds.org>2020-01-17 08:26:11 -0500
commitfe5662058e0c7767e7b2724451f9d5a3f133ffbf (patch)
treebe43744898f64af6605246ba95ede55a869f7ab4 /cli/js/dispatch.ts
parentd8ad81d3fb5b4b9502ea021edfc99201538553e6 (diff)
feat: support individual async handler for each op (#3690)
Diffstat (limited to 'cli/js/dispatch.ts')
-rw-r--r--cli/js/dispatch.ts57
1 files changed, 6 insertions, 51 deletions
diff --git a/cli/js/dispatch.ts b/cli/js/dispatch.ts
index 31c42c224..d658c5de7 100644
--- a/cli/js/dispatch.ts
+++ b/cli/js/dispatch.ts
@@ -85,57 +85,12 @@ export function setPluginAsyncHandler(
PLUGIN_ASYNC_HANDLER_MAP.set(opId, handler);
}
-export function asyncMsgFromRust(opId: number, ui8: Uint8Array): void {
- switch (opId) {
- case OP_WRITE:
- case OP_READ:
- minimal.asyncMsgFromRust(opId, ui8);
- break;
- case OP_GET_DIR:
- case OP_EXIT:
- case OP_IS_TTY:
- case OP_ENV:
- case OP_EXEC_PATH:
- case OP_UTIME:
- case OP_OPEN:
- case OP_SEEK:
- case OP_FETCH:
- case OP_REPL_START:
- case OP_REPL_READLINE:
- case OP_ACCEPT:
- case OP_ACCEPT_TLS:
- case OP_DIAL:
- case OP_GLOBAL_TIMER:
- case OP_HOST_GET_WORKER_CLOSED:
- case OP_HOST_GET_MESSAGE:
- case OP_WORKER_GET_MESSAGE:
- case OP_RUN_STATUS:
- case OP_MKDIR:
- case OP_CHMOD:
- case OP_CHOWN:
- case OP_REMOVE:
- case OP_COPY_FILE:
- case OP_STAT:
- case OP_REALPATH:
- case OP_READ_DIR:
- case OP_RENAME:
- case OP_LINK:
- case OP_SYMLINK:
- case OP_READ_LINK:
- case OP_TRUNCATE:
- case OP_MAKE_TEMP_DIR:
- case OP_DIAL_TLS:
- case OP_FETCH_SOURCE_FILES:
- case OP_COMPILE:
- case OP_TRANSPILE:
- json.asyncMsgFromRust(opId, ui8);
- break;
+export function getAsyncHandler(opName: string): (msg: Uint8Array) => void {
+ switch (opName) {
+ case "OP_WRITE":
+ case "OP_READ":
+ return minimal.asyncMsgFromRust;
default:
- const handler = PLUGIN_ASYNC_HANDLER_MAP.get(opId);
- if (handler) {
- handler(ui8);
- } else {
- throw Error("bad async opId");
- }
+ return json.asyncMsgFromRust;
}
}