summaryrefslogtreecommitdiff
path: root/js/fbs_util.ts
diff options
context:
space:
mode:
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;
+ }
+}