diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2018-07-13 03:24:07 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-07-18 15:43:50 -0400 |
commit | 3e51605bc9ca98522fc21a0673e690105f48da98 (patch) | |
tree | 1c31da16173d95d6623721414b402d1dcdf069b4 /js/os.ts | |
parent | 8a4e3dfda4975540d6e0059248477facfe03c31c (diff) |
Execute JS for the first time in Rust rewrite.
Implements code_fetch handler in Rust.
Add ability to embed string assets (for typescript declaration files)
Remove deno_cc and deno_cc_nosnapshot targets.
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 { |