diff options
Diffstat (limited to 'js/os.ts')
-rw-r--r-- | js/os.ts | 32 |
1 files changed, 13 insertions, 19 deletions
@@ -2,7 +2,8 @@ // All rights reserved. MIT License. import { ModuleInfo } from "./types"; import { deno as fbs } from "./msg_generated"; -import { assert, typedArrayToArrayBuffer } from "./util"; +import { assert } from "./util"; +import * as util from "./util"; import { flatbuffers } from "flatbuffers"; export function exit(exitCode = 0): void { @@ -19,8 +20,7 @@ export function codeFetch( moduleSpecifier: string, containingFile: string ): ModuleInfo { - console.log("Hello from codeFetch"); - + util.log("os.ts codeFetch", moduleSpecifier, containingFile); // Send CodeFetch message const builder = new flatbuffers.Builder(); const moduleSpecifier_ = builder.createString(moduleSpecifier); @@ -33,23 +33,23 @@ export function codeFetch( fbs.Base.addMsg(builder, msg); fbs.Base.addMsgType(builder, fbs.Any.CodeFetch); builder.finish(fbs.Base.endBase(builder)); - const payload = typedArrayToArrayBuffer(builder.asUint8Array()); - const resBuf = deno.send("x", payload); - - console.log("CodeFetch sent"); - + const resBuf = deno.send(builder.asUint8Array()); // Process CodeFetchRes const bb = new flatbuffers.ByteBuffer(new Uint8Array(resBuf)); const baseRes = fbs.Base.getRootAsBase(bb); + if (fbs.Any.NONE === baseRes.msgType()) { + throw Error(baseRes.error()); + } assert(fbs.Any.CodeFetchRes === baseRes.msgType()); const codeFetchRes = new fbs.CodeFetchRes(); assert(baseRes.msg(codeFetchRes) != null); - return { + const r = { moduleName: codeFetchRes.moduleName(), filename: codeFetchRes.filename(), sourceCode: codeFetchRes.sourceCode(), outputCode: codeFetchRes.outputCode() }; + return r; } export function codeCache( @@ -57,28 +57,22 @@ export function codeCache( sourceCode: string, outputCode: string ): void { + util.log("os.ts codeCache", filename, sourceCode, outputCode); const builder = new flatbuffers.Builder(); - const filename_ = builder.createString(filename); const sourceCode_ = builder.createString(sourceCode); const outputCode_ = builder.createString(outputCode); - fbs.CodeCache.startCodeCache(builder); fbs.CodeCache.addFilename(builder, filename_); fbs.CodeCache.addSourceCode(builder, sourceCode_); fbs.CodeCache.addOutputCode(builder, outputCode_); const msg = fbs.CodeCache.endCodeCache(builder); - fbs.Base.startBase(builder); fbs.Base.addMsg(builder, msg); + fbs.Base.addMsgType(builder, fbs.Any.CodeCache); builder.finish(fbs.Base.endBase(builder)); - - // Maybe need to do another step? - // Base.finishBaseBuffer(builder, base); - - const payload = typedArrayToArrayBuffer(builder.asUint8Array()); - const resBuf = deno.send("x", payload); - assert(resBuf === null); + const resBuf = deno.send(builder.asUint8Array()); + assert(resBuf == null); } export function readFileSync(filename: string): Uint8Array { |