summaryrefslogtreecommitdiff
path: root/js/fbs_util.ts
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2018-08-30 15:35:51 -0400
committerRyan Dahl <ry@tinyclouds.org>2018-08-31 10:43:11 -0400
commit45dafe15ee87b34d0c3c9b4bc72905c176514051 (patch)
tree6cbc39745929e51b6c44d66ae8b2dd0acbc5b251 /js/fbs_util.ts
parentcce3bd470b19e1c2eab6530d06c48949891a56fc (diff)
Refactor libdeno.send() code to reduce boilerplate.
Also removes assignCmdId as it's currently unused.
Diffstat (limited to 'js/fbs_util.ts')
-rw-r--r--js/fbs_util.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/js/fbs_util.ts b/js/fbs_util.ts
new file mode 100644
index 000000000..fd953ac88
--- /dev/null
+++ b/js/fbs_util.ts
@@ -0,0 +1,26 @@
+// Copyright 2018 the Deno authors. All rights reserved. MIT license.
+import { libdeno } from "./libdeno";
+import { flatbuffers } from "flatbuffers";
+import { maybeThrowError } from "./errors";
+import { deno as fbs } from "gen/msg_generated";
+
+export function send(
+ builder: flatbuffers.Builder,
+ msgType: fbs.Any,
+ msg: flatbuffers.Offset
+): null | fbs.Base {
+ fbs.Base.startBase(builder);
+ fbs.Base.addMsg(builder, msg);
+ fbs.Base.addMsgType(builder, msgType);
+ builder.finish(fbs.Base.endBase(builder));
+
+ const resBuf = libdeno.send(builder.asUint8Array());
+ if (resBuf == null) {
+ return null;
+ } else {
+ const bb = new flatbuffers.ByteBuffer(new Uint8Array(resBuf!));
+ const baseRes = fbs.Base.getRootAsBase(bb);
+ maybeThrowError(baseRes);
+ return baseRes;
+ }
+}