diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2018-07-04 14:50:28 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2018-07-04 16:43:08 -0400 |
commit | 06a28998ea3fd38a2173d71eeb3fae5fb5559b2e (patch) | |
tree | 79307e9e8c745ec56bc8c18570faccb498219c1a /js | |
parent | 72cd03a1c53633a216f5e284bd1820ea52bf795c (diff) |
Replace protobufs with flatbuffers
Diffstat (limited to 'js')
-rwxr-xr-x | js/flatbufferjs_hack.py | 33 | ||||
-rw-r--r-- | js/main.ts | 28 | ||||
-rw-r--r-- | js/msg.pb.d.ts | 314 | ||||
-rw-r--r-- | js/msg.pb.js | 1100 | ||||
-rw-r--r-- | js/msg_generated.ts | 161 | ||||
-rw-r--r-- | js/package.json | 10 | ||||
-rwxr-xr-x | js/pbjs_hack.py | 48 |
7 files changed, 211 insertions, 1483 deletions
diff --git a/js/flatbufferjs_hack.py b/js/flatbufferjs_hack.py new file mode 100755 index 000000000..2f411c1db --- /dev/null +++ b/js/flatbufferjs_hack.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +""" +gn can only run python scripts. + +Generates flatbuffer TypeScript code. +""" +import subprocess +import sys +import os +import shutil + +# TODO(ry) Ideally flatc output files should be written into target_gen_dir, but +# its difficult to get this working in a way that parcel can resolve their +# location. (Parcel does not support NODE_PATH.) Therefore this hack: write the +# generated msg_generated.ts outputs into the js/ folder, and we check them into +# the repo. Hopefully this hack can be removed at some point. If msg.fps is +# changed, commit changes to the generated JS file. + +src = sys.argv[1] +dst = sys.argv[2] +stamp_file = sys.argv[3] + +shutil.copyfile(src, dst) + + +def touch(fname): + if os.path.exists(fname): + os.utime(fname, None) + else: + open(fname, 'a').close() + + +touch(stamp_file) diff --git a/js/main.ts b/js/main.ts index ae98ad5d4..3613f3c89 100644 --- a/js/main.ts +++ b/js/main.ts @@ -1,7 +1,9 @@ // tslint:disable-next-line:no-reference /// <reference path="deno.d.ts" /> import * as ts from "typescript"; -import { deno as pb } from "./msg.pb"; + +import { flatbuffers } from "flatbuffers"; +import { deno as fbs } from "./msg_generated"; const globalEval = eval; const window = globalEval("this"); @@ -11,22 +13,20 @@ window["denoMain"] = () => { const res = deno.send("startDeno2", emptyArrayBuffer()); // deno.print(`after`); const resUi8 = new Uint8Array(res); - deno.print(`before`); - const msg = pb.Msg.decode(resUi8); - deno.print(`after`); - const { - startCwd: cwd, - startArgv: argv, - startDebugFlag: debugFlag, - startMainJs: mainJs, - startMainMap: mainMap - } = msg; + const bb = new flatbuffers.ByteBuffer(resUi8); + const msg = fbs.Msg.getRootAsMsg(bb); + + // startDebugFlag: debugFlag, + // startMainJs: mainJs, + // startMainMap: mainMap + const cwd = msg.startCwd(); deno.print(`cwd: ${cwd}`); - deno.print(`debugFlag: ${debugFlag}`); - for (let i = 0; i < argv.length; i++) { - deno.print(`argv[${i}] ${argv[i]}`); + const argv: string[] = []; + for (let i = 0; i < msg.startArgvLength(); i++) { + const arg = msg.startArgv(i); + deno.print(`argv[${i}] ${arg}`); } }; diff --git a/js/msg.pb.d.ts b/js/msg.pb.d.ts deleted file mode 100644 index 081e2abf1..000000000 --- a/js/msg.pb.d.ts +++ /dev/null @@ -1,314 +0,0 @@ -import * as $protobuf from "protobufjs"; - -/** Namespace deno. */ -export namespace deno { - - /** Properties of a Msg. */ - interface IMsg { - - /** Msg command */ - command?: (deno.Msg.Command|null); - - /** Msg error */ - error?: (string|null); - - /** Msg startCwd */ - startCwd?: (string|null); - - /** Msg startArgv */ - startArgv?: (string[]|null); - - /** Msg startDebugFlag */ - startDebugFlag?: (boolean|null); - - /** Msg startMainJs */ - startMainJs?: (string|null); - - /** Msg startMainMap */ - startMainMap?: (string|null); - - /** Msg codeFetchModuleSpecifier */ - codeFetchModuleSpecifier?: (string|null); - - /** Msg codeFetchContainingFile */ - codeFetchContainingFile?: (string|null); - - /** Msg codeFetchResModuleName */ - codeFetchResModuleName?: (string|null); - - /** Msg codeFetchResFilename */ - codeFetchResFilename?: (string|null); - - /** Msg codeFetchResSourceCode */ - codeFetchResSourceCode?: (string|null); - - /** Msg codeFetchResOutputCode */ - codeFetchResOutputCode?: (string|null); - - /** Msg codeCacheFilename */ - codeCacheFilename?: (string|null); - - /** Msg codeCacheSourceCode */ - codeCacheSourceCode?: (string|null); - - /** Msg codeCacheOutputCode */ - codeCacheOutputCode?: (string|null); - - /** Msg exitCode */ - exitCode?: (number|null); - - /** Msg timerStartId */ - timerStartId?: (number|null); - - /** Msg timerStartInterval */ - timerStartInterval?: (boolean|null); - - /** Msg timerStartDelay */ - timerStartDelay?: (number|null); - - /** Msg timerReadyId */ - timerReadyId?: (number|null); - - /** Msg timerReadyDone */ - timerReadyDone?: (boolean|null); - - /** Msg timerClearId */ - timerClearId?: (number|null); - - /** Msg fetchReqId */ - fetchReqId?: (number|null); - - /** Msg fetchReqUrl */ - fetchReqUrl?: (string|null); - - /** Msg fetchResId */ - fetchResId?: (number|null); - - /** Msg fetchResStatus */ - fetchResStatus?: (number|null); - - /** Msg fetchResHeaderLine */ - fetchResHeaderLine?: (string[]|null); - - /** Msg fetchResBody */ - fetchResBody?: (Uint8Array|null); - - /** Msg readFileSyncFilename */ - readFileSyncFilename?: (string|null); - - /** Msg readFileSyncData */ - readFileSyncData?: (Uint8Array|null); - - /** Msg writeFileSyncFilename */ - writeFileSyncFilename?: (string|null); - - /** Msg writeFileSyncData */ - writeFileSyncData?: (Uint8Array|null); - - /** Msg writeFileSyncPerm */ - writeFileSyncPerm?: (number|null); - } - - /** Represents a Msg. */ - class Msg implements IMsg { - - /** - * Constructs a new Msg. - * @param [properties] Properties to set - */ - constructor(properties?: deno.IMsg); - - /** Msg command. */ - public command: deno.Msg.Command; - - /** Msg error. */ - public error: string; - - /** Msg startCwd. */ - public startCwd: string; - - /** Msg startArgv. */ - public startArgv: string[]; - - /** Msg startDebugFlag. */ - public startDebugFlag: boolean; - - /** Msg startMainJs. */ - public startMainJs: string; - - /** Msg startMainMap. */ - public startMainMap: string; - - /** Msg codeFetchModuleSpecifier. */ - public codeFetchModuleSpecifier: string; - - /** Msg codeFetchContainingFile. */ - public codeFetchContainingFile: string; - - /** Msg codeFetchResModuleName. */ - public codeFetchResModuleName: string; - - /** Msg codeFetchResFilename. */ - public codeFetchResFilename: string; - - /** Msg codeFetchResSourceCode. */ - public codeFetchResSourceCode: string; - - /** Msg codeFetchResOutputCode. */ - public codeFetchResOutputCode: string; - - /** Msg codeCacheFilename. */ - public codeCacheFilename: string; - - /** Msg codeCacheSourceCode. */ - public codeCacheSourceCode: string; - - /** Msg codeCacheOutputCode. */ - public codeCacheOutputCode: string; - - /** Msg exitCode. */ - public exitCode: number; - - /** Msg timerStartId. */ - public timerStartId: number; - - /** Msg timerStartInterval. */ - public timerStartInterval: boolean; - - /** Msg timerStartDelay. */ - public timerStartDelay: number; - - /** Msg timerReadyId. */ - public timerReadyId: number; - - /** Msg timerReadyDone. */ - public timerReadyDone: boolean; - - /** Msg timerClearId. */ - public timerClearId: number; - - /** Msg fetchReqId. */ - public fetchReqId: number; - - /** Msg fetchReqUrl. */ - public fetchReqUrl: string; - - /** Msg fetchResId. */ - public fetchResId: number; - - /** Msg fetchResStatus. */ - public fetchResStatus: number; - - /** Msg fetchResHeaderLine. */ - public fetchResHeaderLine: string[]; - - /** Msg fetchResBody. */ - public fetchResBody: Uint8Array; - - /** Msg readFileSyncFilename. */ - public readFileSyncFilename: string; - - /** Msg readFileSyncData. */ - public readFileSyncData: Uint8Array; - - /** Msg writeFileSyncFilename. */ - public writeFileSyncFilename: string; - - /** Msg writeFileSyncData. */ - public writeFileSyncData: Uint8Array; - - /** Msg writeFileSyncPerm. */ - public writeFileSyncPerm: number; - - /** - * Creates a new Msg instance using the specified properties. - * @param [properties] Properties to set - * @returns Msg instance - */ - public static create(properties?: deno.IMsg): deno.Msg; - - /** - * Encodes the specified Msg message. Does not implicitly {@link deno.Msg.verify|verify} messages. - * @param message Msg message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encode(message: deno.IMsg, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Encodes the specified Msg message, length delimited. Does not implicitly {@link deno.Msg.verify|verify} messages. - * @param message Msg message or plain object to encode - * @param [writer] Writer to encode to - * @returns Writer - */ - public static encodeDelimited(message: deno.IMsg, writer?: $protobuf.Writer): $protobuf.Writer; - - /** - * Decodes a Msg message from the specified reader or buffer. - * @param reader Reader or buffer to decode from - * @param [length] Message length if known beforehand - * @returns Msg - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): deno.Msg; - - /** - * Decodes a Msg message from the specified reader or buffer, length delimited. - * @param reader Reader or buffer to decode from - * @returns Msg - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): deno.Msg; - - /** - * Verifies a Msg message. - * @param message Plain object to verify - * @returns `null` if valid, otherwise the reason why it is not - */ - public static verify(message: { [k: string]: any }): (string|null); - - /** - * Creates a Msg message from a plain object. Also converts values to their respective internal types. - * @param object Plain object - * @returns Msg - */ - public static fromObject(object: { [k: string]: any }): deno.Msg; - - /** - * Creates a plain object from a Msg message. Also converts values to other types if specified. - * @param message Msg - * @param [options] Conversion options - * @returns Plain object - */ - public static toObject(message: deno.Msg, options?: $protobuf.IConversionOptions): { [k: string]: any }; - - /** - * Converts this Msg to JSON. - * @returns JSON object - */ - public toJSON(): { [k: string]: any }; - } - - namespace Msg { - - /** Command enum. */ - enum Command { - ERROR = 0, - START = 1, - CODE_FETCH = 2, - CODE_FETCH_RES = 3, - CODE_CACHE = 4, - EXIT = 5, - TIMER_START = 6, - TIMER_READY = 7, - TIMER_CLEAR = 8, - FETCH_REQ = 9, - FETCH_RES = 10, - READ_FILE_SYNC = 11, - READ_FILE_SYNC_RES = 12, - WRITE_FILE_SYNC = 13 - } - } -} diff --git a/js/msg.pb.js b/js/msg.pb.js deleted file mode 100644 index 7ac7fbbcc..000000000 --- a/js/msg.pb.js +++ /dev/null @@ -1,1100 +0,0 @@ -/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/ -(function(global, factory) { /* global define, require, module */ - - /* AMD */ if (typeof define === 'function' && define.amd) - define(["protobufjs/minimal"], factory); - - /* CommonJS */ else if (typeof require === 'function' && typeof module === 'object' && module && module.exports) - module.exports = factory(require("protobufjs/minimal")); - -})(this, function($protobuf) { - "use strict"; - - // Common aliases - var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; - - // Exported root namespace - var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); - - $root.deno = (function() { - - /** - * Namespace deno. - * @exports deno - * @namespace - */ - var deno = {}; - - deno.Msg = (function() { - - /** - * Properties of a Msg. - * @memberof deno - * @interface IMsg - * @property {deno.Msg.Command|null} [command] Msg command - * @property {string|null} [error] Msg error - * @property {string|null} [startCwd] Msg startCwd - * @property {Array.<string>|null} [startArgv] Msg startArgv - * @property {boolean|null} [startDebugFlag] Msg startDebugFlag - * @property {string|null} [startMainJs] Msg startMainJs - * @property {string|null} [startMainMap] Msg startMainMap - * @property {string|null} [codeFetchModuleSpecifier] Msg codeFetchModuleSpecifier - * @property {string|null} [codeFetchContainingFile] Msg codeFetchContainingFile - * @property {string|null} [codeFetchResModuleName] Msg codeFetchResModuleName - * @property {string|null} [codeFetchResFilename] Msg codeFetchResFilename - * @property {string|null} [codeFetchResSourceCode] Msg codeFetchResSourceCode - * @property {string|null} [codeFetchResOutputCode] Msg codeFetchResOutputCode - * @property {string|null} [codeCacheFilename] Msg codeCacheFilename - * @property {string|null} [codeCacheSourceCode] Msg codeCacheSourceCode - * @property {string|null} [codeCacheOutputCode] Msg codeCacheOutputCode - * @property {number|null} [exitCode] Msg exitCode - * @property {number|null} [timerStartId] Msg timerStartId - * @property {boolean|null} [timerStartInterval] Msg timerStartInterval - * @property {number|null} [timerStartDelay] Msg timerStartDelay - * @property {number|null} [timerReadyId] Msg timerReadyId - * @property {boolean|null} [timerReadyDone] Msg timerReadyDone - * @property {number|null} [timerClearId] Msg timerClearId - * @property {number|null} [fetchReqId] Msg fetchReqId - * @property {string|null} [fetchReqUrl] Msg fetchReqUrl - * @property {number|null} [fetchResId] Msg fetchResId - * @property {number|null} [fetchResStatus] Msg fetchResStatus - * @property {Array.<string>|null} [fetchResHeaderLine] Msg fetchResHeaderLine - * @property {Uint8Array|null} [fetchResBody] Msg fetchResBody - * @property {string|null} [readFileSyncFilename] Msg readFileSyncFilename - * @property {Uint8Array|null} [readFileSyncData] Msg readFileSyncData - * @property {string|null} [writeFileSyncFilename] Msg writeFileSyncFilename - * @property {Uint8Array|null} [writeFileSyncData] Msg writeFileSyncData - * @property {number|null} [writeFileSyncPerm] Msg writeFileSyncPerm - */ - - /** - * Constructs a new Msg. - * @memberof deno - * @classdesc Represents a Msg. - * @implements IMsg - * @constructor - * @param {deno.IMsg=} [properties] Properties to set - */ - function Msg(properties) { - this.startArgv = []; - this.fetchResHeaderLine = []; - if (properties) - for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) - if (properties[keys[i]] != null) - this[keys[i]] = properties[keys[i]]; - } - - /** - * Msg command. - * @member {deno.Msg.Command} command - * @memberof deno.Msg - * @instance - */ - Msg.prototype.command = 0; - - /** - * Msg error. - * @member {string} error - * @memberof deno.Msg - * @instance - */ - Msg.prototype.error = ""; - - /** - * Msg startCwd. - * @member {string} startCwd - * @memberof deno.Msg - * @instance - */ - Msg.prototype.startCwd = ""; - - /** - * Msg startArgv. - * @member {Array.<string>} startArgv - * @memberof deno.Msg - * @instance - */ - Msg.prototype.startArgv = $util.emptyArray; - - /** - * Msg startDebugFlag. - * @member {boolean} startDebugFlag - * @memberof deno.Msg - * @instance - */ - Msg.prototype.startDebugFlag = false; - - /** - * Msg startMainJs. - * @member {string} startMainJs - * @memberof deno.Msg - * @instance - */ - Msg.prototype.startMainJs = ""; - - /** - * Msg startMainMap. - * @member {string} startMainMap - * @memberof deno.Msg - * @instance - */ - Msg.prototype.startMainMap = ""; - - /** - * Msg codeFetchModuleSpecifier. - * @member {string} codeFetchModuleSpecifier - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeFetchModuleSpecifier = ""; - - /** - * Msg codeFetchContainingFile. - * @member {string} codeFetchContainingFile - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeFetchContainingFile = ""; - - /** - * Msg codeFetchResModuleName. - * @member {string} codeFetchResModuleName - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeFetchResModuleName = ""; - - /** - * Msg codeFetchResFilename. - * @member {string} codeFetchResFilename - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeFetchResFilename = ""; - - /** - * Msg codeFetchResSourceCode. - * @member {string} codeFetchResSourceCode - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeFetchResSourceCode = ""; - - /** - * Msg codeFetchResOutputCode. - * @member {string} codeFetchResOutputCode - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeFetchResOutputCode = ""; - - /** - * Msg codeCacheFilename. - * @member {string} codeCacheFilename - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeCacheFilename = ""; - - /** - * Msg codeCacheSourceCode. - * @member {string} codeCacheSourceCode - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeCacheSourceCode = ""; - - /** - * Msg codeCacheOutputCode. - * @member {string} codeCacheOutputCode - * @memberof deno.Msg - * @instance - */ - Msg.prototype.codeCacheOutputCode = ""; - - /** - * Msg exitCode. - * @member {number} exitCode - * @memberof deno.Msg - * @instance - */ - Msg.prototype.exitCode = 0; - - /** - * Msg timerStartId. - * @member {number} timerStartId - * @memberof deno.Msg - * @instance - */ - Msg.prototype.timerStartId = 0; - - /** - * Msg timerStartInterval. - * @member {boolean} timerStartInterval - * @memberof deno.Msg - * @instance - */ - Msg.prototype.timerStartInterval = false; - - /** - * Msg timerStartDelay. - * @member {number} timerStartDelay - * @memberof deno.Msg - * @instance - */ - Msg.prototype.timerStartDelay = 0; - - /** - * Msg timerReadyId. - * @member {number} timerReadyId - * @memberof deno.Msg - * @instance - */ - Msg.prototype.timerReadyId = 0; - - /** - * Msg timerReadyDone. - * @member {boolean} timerReadyDone - * @memberof deno.Msg - * @instance - */ - Msg.prototype.timerReadyDone = false; - - /** - * Msg timerClearId. - * @member {number} timerClearId - * @memberof deno.Msg - * @instance - */ - Msg.prototype.timerClearId = 0; - - /** - * Msg fetchReqId. - * @member {number} fetchReqId - * @memberof deno.Msg - * @instance - */ - Msg.prototype.fetchReqId = 0; - - /** - * Msg fetchReqUrl. - * @member {string} fetchReqUrl - * @memberof deno.Msg - * @instance - */ - Msg.prototype.fetchReqUrl = ""; - - /** - * Msg fetchResId. - * @member {number} fetchResId - * @memberof deno.Msg - * @instance - */ - Msg.prototype.fetchResId = 0; - - /** - * Msg fetchResStatus. - * @member {number} fetchResStatus - * @memberof deno.Msg - * @instance - */ - Msg.prototype.fetchResStatus = 0; - - /** - * Msg fetchResHeaderLine. - * @member {Array.<string>} fetchResHeaderLine - * @memberof deno.Msg - * @instance - */ - Msg.prototype.fetchResHeaderLine = $util.emptyArray; - - /** - * Msg fetchResBody. - * @member {Uint8Array} fetchResBody - * @memberof deno.Msg - * @instance - */ - Msg.prototype.fetchResBody = $util.newBuffer([]); - - /** - * Msg readFileSyncFilename. - * @member {string} readFileSyncFilename - * @memberof deno.Msg - * @instance - */ - Msg.prototype.readFileSyncFilename = ""; - - /** - * Msg readFileSyncData. - * @member {Uint8Array} readFileSyncData - * @memberof deno.Msg - * @instance - */ - Msg.prototype.readFileSyncData = $util.newBuffer([]); - - /** - * Msg writeFileSyncFilename. - * @member {string} writeFileSyncFilename - * @memberof deno.Msg - * @instance - */ - Msg.prototype.writeFileSyncFilename = ""; - - /** - * Msg writeFileSyncData. - * @member {Uint8Array} writeFileSyncData - * @memberof deno.Msg - * @instance - */ - Msg.prototype.writeFileSyncData = $util.newBuffer([]); - - /** - * Msg writeFileSyncPerm. - * @member {number} writeFileSyncPerm - * @memberof deno.Msg - * @instance - */ - Msg.prototype.writeFileSyncPerm = 0; - - /** - * Creates a new Msg instance using the specified properties. - * @function create - * @memberof deno.Msg - * @static - * @param {deno.IMsg=} [properties] Properties to set - * @returns {deno.Msg} Msg instance - */ - Msg.create = function create(properties) { - return new Msg(properties); - }; - - /** - * Encodes the specified Msg message. Does not implicitly {@link deno.Msg.verify|verify} messages. - * @function encode - * @memberof deno.Msg - * @static - * @param {deno.IMsg} message Msg message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Msg.encode = function encode(message, writer) { - if (!writer) - writer = $Writer.create(); - if (message.command != null && message.hasOwnProperty("command")) - writer.uint32(/* id 1, wireType 0 =*/8).int32(message.command); - if (message.error != null && message.hasOwnProperty("error")) - writer.uint32(/* id 2, wireType 2 =*/18).string(message.error); - if (message.startCwd != null && message.hasOwnProperty("startCwd")) - writer.uint32(/* id 10, wireType 2 =*/82).string(message.startCwd); - if (message.startArgv != null && message.startArgv.length) - for (var i = 0; i < message.startArgv.length; ++i) - writer.uint32(/* id 11, wireType 2 =*/90).string(message.startArgv[i]); - if (message.startDebugFlag != null && message.hasOwnProperty("startDebugFlag")) - writer.uint32(/* id 12, wireType 0 =*/96).bool(message.startDebugFlag); - if (message.startMainJs != null && message.hasOwnProperty("startMainJs")) - writer.uint32(/* id 13, wireType 2 =*/106).string(message.startMainJs); - if (message.startMainMap != null && message.hasOwnProperty("startMainMap")) - writer.uint32(/* id 14, wireType 2 =*/114).string(message.startMainMap); - if (message.codeFetchModuleSpecifier != null && message.hasOwnProperty("codeFetchModuleSpecifier")) - writer.uint32(/* id 20, wireType 2 =*/162).string(message.codeFetchModuleSpecifier); - if (message.codeFetchContainingFile != null && message.hasOwnProperty("codeFetchContainingFile")) - writer.uint32(/* id 21, wireType 2 =*/170).string(message.codeFetchContainingFile); - if (message.codeFetchResModuleName != null && message.hasOwnProperty("codeFetchResModuleName")) - writer.uint32(/* id 30, wireType 2 =*/242).string(message.codeFetchResModuleName); - if (message.codeFetchResFilename != null && message.hasOwnProperty("codeFetchResFilename")) - writer.uint32(/* id 31, wireType 2 =*/250).string(message.codeFetchResFilename); - if (message.codeFetchResSourceCode != null && message.hasOwnProperty("codeFetchResSourceCode")) - writer.uint32(/* id 32, wireType 2 =*/258).string(message.codeFetchResSourceCode); - if (message.codeFetchResOutputCode != null && message.hasOwnProperty("codeFetchResOutputCode")) - writer.uint32(/* id 33, wireType 2 =*/266).string(message.codeFetchResOutputCode); - if (message.codeCacheFilename != null && message.hasOwnProperty("codeCacheFilename")) - writer.uint32(/* id 41, wireType 2 =*/330).string(message.codeCacheFilename); - if (message.codeCacheSourceCode != null && message.hasOwnProperty("codeCacheSourceCode")) - writer.uint32(/* id 42, wireType 2 =*/338).string(message.codeCacheSourceCode); - if (message.codeCacheOutputCode != null && message.hasOwnProperty("codeCacheOutputCode")) - writer.uint32(/* id 43, wireType 2 =*/346).string(message.codeCacheOutputCode); - if (message.exitCode != null && message.hasOwnProperty("exitCode")) - writer.uint32(/* id 50, wireType 0 =*/400).int32(message.exitCode); - if (message.timerStartId != null && message.hasOwnProperty("timerStartId")) - writer.uint32(/* id 60, wireType 0 =*/480).int32(message.timerStartId); - if (message.timerStartInterval != null && message.hasOwnProperty("timerStartInterval")) - writer.uint32(/* id 61, wireType 0 =*/488).bool(message.timerStartInterval); - if (message.timerStartDelay != null && message.hasOwnProperty("timerStartDelay")) - writer.uint32(/* id 62, wireType 0 =*/496).int32(message.timerStartDelay); - if (message.timerReadyId != null && message.hasOwnProperty("timerReadyId")) - writer.uint32(/* id 70, wireType 0 =*/560).int32(message.timerReadyId); - if (message.timerReadyDone != null && message.hasOwnProperty("timerReadyDone")) - writer.uint32(/* id 71, wireType 0 =*/568).bool(message.timerReadyDone); - if (message.timerClearId != null && message.hasOwnProperty("timerClearId")) - writer.uint32(/* id 80, wireType 0 =*/640).int32(message.timerClearId); - if (message.fetchReqId != null && message.hasOwnProperty("fetchReqId")) - writer.uint32(/* id 90, wireType 0 =*/720).int32(message.fetchReqId); - if (message.fetchReqUrl != null && message.hasOwnProperty("fetchReqUrl")) - writer.uint32(/* id 91, wireType 2 =*/730).string(message.fetchReqUrl); - if (message.fetchResId != null && message.hasOwnProperty("fetchResId")) - writer.uint32(/* id 100, wireType 0 =*/800).int32(message.fetchResId); - if (message.fetchResStatus != null && message.hasOwnProperty("fetchResStatus")) - writer.uint32(/* id 101, wireType 0 =*/808).int32(message.fetchResStatus); - if (message.fetchResHeaderLine != null && message.fetchResHeaderLine.length) - for (var i = 0; i < message.fetchResHeaderLine.length; ++i) - writer.uint32(/* id 102, wireType 2 =*/818).string(message.fetchResHeaderLine[i]); - if (message.fetchResBody != null && message.hasOwnProperty("fetchResBody")) - writer.uint32(/* id 103, wireType 2 =*/826).bytes(message.fetchResBody); - if (message.readFileSyncFilename != null && message.hasOwnProperty("readFileSyncFilename")) - writer.uint32(/* id 110, wireType 2 =*/882).string(message.readFileSyncFilename); - if (message.readFileSyncData != null && message.hasOwnProperty("readFileSyncData")) - writer.uint32(/* id 120, wireType 2 =*/962).bytes(message.readFileSyncData); - if (message.writeFileSyncFilename != null && message.hasOwnProperty("writeFileSyncFilename")) - writer.uint32(/* id 130, wireType 2 =*/1042).string(message.writeFileSyncFilename); - if (message.writeFileSyncData != null && message.hasOwnProperty("writeFileSyncData")) - writer.uint32(/* id 131, wireType 2 =*/1050).bytes(message.writeFileSyncData); - if (message.writeFileSyncPerm != null && message.hasOwnProperty("writeFileSyncPerm")) - writer.uint32(/* id 132, wireType 0 =*/1056).uint32(message.writeFileSyncPerm); - return writer; - }; - - /** - * Encodes the specified Msg message, length delimited. Does not implicitly {@link deno.Msg.verify|verify} messages. - * @function encodeDelimited - * @memberof deno.Msg - * @static - * @param {deno.IMsg} message Msg message or plain object to encode - * @param {$protobuf.Writer} [writer] Writer to encode to - * @returns {$protobuf.Writer} Writer - */ - Msg.encodeDelimited = function encodeDelimited(message, writer) { - return this.encode(message, writer).ldelim(); - }; - - /** - * Decodes a Msg message from the specified reader or buffer. - * @function decode - * @memberof deno.Msg - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @param {number} [length] Message length if known beforehand - * @returns {deno.Msg} Msg - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Msg.decode = function decode(reader, length) { - if (!(reader instanceof $Reader)) - reader = $Reader.create(reader); - var end = length === undefined ? reader.len : reader.pos + length, message = new $root.deno.Msg(); - while (reader.pos < end) { - var tag = reader.uint32(); - switch (tag >>> 3) { - case 1: - message.command = reader.int32(); - break; - case 2: - message.error = reader.string(); - break; - case 10: - message.startCwd = reader.string(); - break; - case 11: - if (!(message.startArgv && message.startArgv.length)) - message.startArgv = []; - message.startArgv.push(reader.string()); - break; - case 12: - message.startDebugFlag = reader.bool(); - break; - case 13: - message.startMainJs = reader.string(); - break; - case 14: - message.startMainMap = reader.string(); - break; - case 20: - message.codeFetchModuleSpecifier = reader.string(); - break; - case 21: - message.codeFetchContainingFile = reader.string(); - break; - case 30: - message.codeFetchResModuleName = reader.string(); - break; - case 31: - message.codeFetchResFilename = reader.string(); - break; - case 32: - message.codeFetchResSourceCode = reader.string(); - break; - case 33: - message.codeFetchResOutputCode = reader.string(); - break; - case 41: - message.codeCacheFilename = reader.string(); - break; - case 42: - message.codeCacheSourceCode = reader.string(); - break; - case 43: - message.codeCacheOutputCode = reader.string(); - break; - case 50: - message.exitCode = reader.int32(); - break; - case 60: - message.timerStartId = reader.int32(); - break; - case 61: - message.timerStartInterval = reader.bool(); - break; - case 62: - message.timerStartDelay = reader.int32(); - break; - case 70: - message.timerReadyId = reader.int32(); - break; - case 71: - message.timerReadyDone = reader.bool(); - break; - case 80: - message.timerClearId = reader.int32(); - break; - case 90: - message.fetchReqId = reader.int32(); - break; - case 91: - message.fetchReqUrl = reader.string(); - break; - case 100: - message.fetchResId = reader.int32(); - break; - case 101: - message.fetchResStatus = reader.int32(); - break; - case 102: - if (!(message.fetchResHeaderLine && message.fetchResHeaderLine.length)) - message.fetchResHeaderLine = []; - message.fetchResHeaderLine.push(reader.string()); - break; - case 103: - message.fetchResBody = reader.bytes(); - break; - case 110: - message.readFileSyncFilename = reader.string(); - break; - case 120: - message.readFileSyncData = reader.bytes(); - break; - case 130: - message.writeFileSyncFilename = reader.string(); - break; - case 131: - message.writeFileSyncData = reader.bytes(); - break; - case 132: - message.writeFileSyncPerm = reader.uint32(); - break; - default: - reader.skipType(tag & 7); - break; - } - } - return message; - }; - - /** - * Decodes a Msg message from the specified reader or buffer, length delimited. - * @function decodeDelimited - * @memberof deno.Msg - * @static - * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from - * @returns {deno.Msg} Msg - * @throws {Error} If the payload is not a reader or valid buffer - * @throws {$protobuf.util.ProtocolError} If required fields are missing - */ - Msg.decodeDelimited = function decodeDelimited(reader) { - if (!(reader instanceof $Reader)) - reader = new $Reader(reader); - return this.decode(reader, reader.uint32()); - }; - - /** - * Verifies a Msg message. - * @function verify - * @memberof deno.Msg - * @static - * @param {Object.<string,*>} message Plain object to verify - * @returns {string|null} `null` if valid, otherwise the reason why it is not - */ - Msg.verify = function verify(message) { - if (typeof message !== "object" || message === null) - return "object expected"; - if (message.command != null && message.hasOwnProperty("command")) - switch (message.command) { - default: - return "command: enum value expected"; - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - break; - } - if (message.error != null && message.hasOwnProperty("error")) - if (!$util.isString(message.error)) - return "error: string expected"; - if (message.startCwd != null && message.hasOwnProperty("startCwd")) - if (!$util.isString(message.startCwd)) - return "startCwd: string expected"; - if (message.startArgv != null && message.hasOwnProperty("startArgv")) { - if (!Array.isArray(message.startArgv)) - return "startArgv: array expected"; - for (var i = 0; i < message.startArgv.length; ++i) - if (!$util.isString(message.startArgv[i])) - return "startArgv: string[] expected"; - } - if (message.startDebugFlag != null && message.hasOwnProperty("startDebugFlag")) - if (typeof message.startDebugFlag !== "boolean") - return "startDebugFlag: boolean expected"; - if (message.startMainJs != null && message.hasOwnProperty("startMainJs")) - if (!$util.isString(message.startMainJs)) - return "startMainJs: string expected"; - if (message.startMainMap != null && message.hasOwnProperty("startMainMap")) - if (!$util.isString(message.startMainMap)) - return "startMainMap: string expected"; - if (message.codeFetchModuleSpecifier != null && message.hasOwnProperty("codeFetchModuleSpecifier")) - if (!$util.isString(message.codeFetchModuleSpecifier)) - return "codeFetchModuleSpecifier: string expected"; - if (message.codeFetchContainingFile != null && message.hasOwnProperty("codeFetchContainingFile")) - if (!$util.isString(message.codeFetchContainingFile)) - return "codeFetchContainingFile: string expected"; - if (message.codeFetchResModuleName != null && message.hasOwnProperty("codeFetchResModuleName")) - if (!$util.isString(message.codeFetchResModuleName)) - return "codeFetchResModuleName: string expected"; - if (message.codeFetchResFilename != null && message.hasOwnProperty("codeFetchResFilename")) - if (!$util.isString(message.codeFetchResFilename)) - return "codeFetchResFilename: string expected"; - if (message.codeFetchResSourceCode != null && message.hasOwnProperty("codeFetchResSourceCode")) - if (!$util.isString(message.codeFetchResSourceCode)) - return "codeFetchResSourceCode: string expected"; - if (message.codeFetchResOutputCode != null && message.hasOwnProperty("codeFetchResOutputCode")) - if (!$util.isString(message.codeFetchResOutputCode)) - return "codeFetchResOutputCode: string expected"; - if (message.codeCacheFilename != null && message.hasOwnProperty("codeCacheFilename")) - if (!$util.isString(message.codeCacheFilename)) - return "codeCacheFilename: string expected"; - if (message.codeCacheSourceCode != null && message.hasOwnProperty("codeCacheSourceCode")) - if (!$util.isString(message.codeCacheSourceCode)) - return "codeCacheSourceCode: string expected"; - if (message.codeCacheOutputCode != null && message.hasOwnProperty("codeCacheOutputCode")) - if (!$util.isString(message.codeCacheOutputCode)) - return "codeCacheOutputCode: string expected"; - if (message.exitCode != null && message.hasOwnProperty("exitCode")) - if (!$util.isInteger(message.exitCode)) - return "exitCode: integer expected"; - if (message.timerStartId != null && message.hasOwnProperty("timerStartId")) - if (!$util.isInteger(message.timerStartId)) - return "timerStartId: integer expected"; - if (message.timerStartInterval != null && message.hasOwnProperty("timerStartInterval")) - if (typeof message.timerStartInterval !== "boolean") - return "timerStartInterval: boolean expected"; - if (message.timerStartDelay != null && message.hasOwnProperty("timerStartDelay")) - if (!$util.isInteger(message.timerStartDelay)) - return "timerStartDelay: integer expected"; - if (message.timerReadyId != null && message.hasOwnProperty("timerReadyId")) - if (!$util.isInteger(message.timerReadyId)) - return "timerReadyId: integer expected"; - if (message.timerReadyDone != null && message.hasOwnProperty("timerReadyDone")) - if (typeof message.timerReadyDone !== "boolean") - return "timerReadyDone: boolean expected"; - if (message.timerClearId != null && message.hasOwnProperty("timerClearId")) - if (!$util.isInteger(message.timerClearId)) - return "timerClearId: integer expected"; - if (message.fetchReqId != null && message.hasOwnProperty("fetchReqId")) - if (!$util.isInteger(message.fetchReqId)) - return "fetchReqId: integer expected"; - if (message.fetchReqUrl != null && message.hasOwnProperty("fetchReqUrl")) - if (!$util.isString(message.fetchReqUrl)) - return "fetchReqUrl: string expected"; - if (message.fetchResId != null && message.hasOwnProperty("fetchResId")) - if (!$util.isInteger(message.fetchResId)) - return "fetchResId: integer expected"; - if (message.fetchResStatus != null && message.hasOwnProperty("fetchResStatus")) - if (!$util.isInteger(message.fetchResStatus)) - return "fetchResStatus: integer expected"; - if (message.fetchResHeaderLine != null && message.hasOwnProperty("fetchResHeaderLine")) { - if (!Array.isArray(message.fetchResHeaderLine)) - return "fetchResHeaderLine: array expected"; - for (var i = 0; i < message.fetchResHeaderLine.length; ++i) - if (!$util.isString(message.fetchResHeaderLine[i])) - return "fetchResHeaderLine: string[] expected"; - } - if (message.fetchResBody != null && message.hasOwnProperty("fetchResBody")) - if (!(message.fetchResBody && typeof message.fetchResBody.length === "number" || $util.isString(message.fetchResBody))) - return "fetchResBody: buffer expected"; - if (message.readFileSyncFilename != null && message.hasOwnProperty("readFileSyncFilename")) - if (!$util.isString(message.readFileSyncFilename)) - return "readFileSyncFilename: string expected"; - if (message.readFileSyncData != null && message.hasOwnProperty("readFileSyncData")) - if (!(message.readFileSyncData && typeof message.readFileSyncData.length === "number" || $util.isString(message.readFileSyncData))) - return "readFileSyncData: buffer expected"; - if (message.writeFileSyncFilename != null && message.hasOwnProperty("writeFileSyncFilename")) - if (!$util.isString(message.writeFileSyncFilename)) - return "writeFileSyncFilename: string expected"; - if (message.writeFileSyncData != null && message.hasOwnProperty("writeFileSyncData")) - if (!(message.writeFileSyncData && typeof message.writeFileSyncData.length === "number" || $util.isString(message.writeFileSyncData))) - return "writeFileSyncData: buffer expected"; - if (message.writeFileSyncPerm != null && message.hasOwnProperty("writeFileSyncPerm")) - if (!$util.isInteger(message.writeFileSyncPerm)) - return "writeFileSyncPerm: integer expected"; - return null; - }; - - /** - * Creates a Msg message from a plain object. Also converts values to their respective internal types. - * @function fromObject - * @memberof deno.Msg - * @static - * @param {Object.<string,*>} object Plain object - * @returns {deno.Msg} Msg - */ - Msg.fromObject = function fromObject(object) { - if (object instanceof $root.deno.Msg) - return object; - var message = new $root.deno.Msg(); - switch (object.command) { - case "ERROR": - case 0: - message.command = 0; - break; - case "START": - case 1: - message.command = 1; - break; - case "CODE_FETCH": - case 2: - message.command = 2; - break; - case "CODE_FETCH_RES": - case 3: - message.command = 3; - break; - case "CODE_CACHE": - case 4: - message.command = 4; - break; - case "EXIT": - case 5: - message.command = 5; - break; - case "TIMER_START": - case 6: - message.command = 6; - break; - case "TIMER_READY": - case 7: - message.command = 7; - break; - case "TIMER_CLEAR": - case 8: - message.command = 8; - break; - case "FETCH_REQ": - case 9: - message.command = 9; - break; - case "FETCH_RES": - case 10: - message.command = 10; - break; - case "READ_FILE_SYNC": - case 11: - message.command = 11; - break; - case "READ_FILE_SYNC_RES": - case 12: - message.command = 12; - break; - case "WRITE_FILE_SYNC": - case 13: - message.command = 13; - break; - } - if (object.error != null) - message.error = String(object.error); - if (object.startCwd != null) - message.startCwd = String(object.startCwd); - if (object.startArgv) { - if (!Array.isArray(object.startArgv)) - throw TypeError(".deno.Msg.startArgv: array expected"); - message.startArgv = []; - for (var i = 0; i < object.startArgv.length; ++i) - message.startArgv[i] = String(object.startArgv[i]); - } - if (object.startDebugFlag != null) - message.startDebugFlag = Boolean(object.startDebugFlag); - if (object.startMainJs != null) - message.startMainJs = String(object.startMainJs); - if (object.startMainMap != null) - message.startMainMap = String(object.startMainMap); - if (object.codeFetchModuleSpecifier != null) - message.codeFetchModuleSpecifier = String(object.codeFetchModuleSpecifier); - if (object.codeFetchContainingFile != null) - message.codeFetchContainingFile = String(object.codeFetchContainingFile); - if (object.codeFetchResModuleName != null) - message.codeFetchResModuleName = String(object.codeFetchResModuleName); - if (object.codeFetchResFilename != null) - message.codeFetchResFilename = String(object.codeFetchResFilename); - if (object.codeFetchResSourceCode != null) - message.codeFetchResSourceCode = String(object.codeFetchResSourceCode); - if (object.codeFetchResOutputCode != null) - message.codeFetchResOutputCode = String(object.codeFetchResOutputCode); - if (object.codeCacheFilename != null) - message.codeCacheFilename = String(object.codeCacheFilename); - if (object.codeCacheSourceCode != null) - message.codeCacheSourceCode = String(object.codeCacheSourceCode); - if (object.codeCacheOutputCode != null) - message.codeCacheOutputCode = String(object.codeCacheOutputCode); - if (object.exitCode != null) - message.exitCode = object.exitCode | 0; - if (object.timerStartId != null) - message.timerStartId = object.timerStartId | 0; - if (object.timerStartInterval != null) - message.timerStartInterval = Boolean(object.timerStartInterval); - if (object.timerStartDelay != null) - message.timerStartDelay = object.timerStartDelay | 0; - if (object.timerReadyId != null) - message.timerReadyId = object.timerReadyId | 0; - if (object.timerReadyDone != null) - message.timerReadyDone = Boolean(object.timerReadyDone); - if (object.timerClearId != null) - message.timerClearId = object.timerClearId | 0; - if (object.fetchReqId != null) - message.fetchReqId = object.fetchReqId | 0; - if (object.fetchReqUrl != null) - message.fetchReqUrl = String(object.fetchReqUrl); - if (object.fetchResId != null) - message.fetchResId = object.fetchResId | 0; - if (object.fetchResStatus != null) - message.fetchResStatus = object.fetchResStatus | 0; - if (object.fetchResHeaderLine) { - if (!Array.isArray(object.fetchResHeaderLine)) - throw TypeError(".deno.Msg.fetchResHeaderLine: array expected"); - message.fetchResHeaderLine = []; - for (var i = 0; i < object.fetchResHeaderLine.length; ++i) - message.fetchResHeaderLine[i] = String(object.fetchResHeaderLine[i]); - } - if (object.fetchResBody != null) - if (typeof object.fetchResBody === "string") - $util.base64.decode(object.fetchResBody, message.fetchResBody = $util.newBuffer($util.base64.length(object.fetchResBody)), 0); - else if (object.fetchResBody.length) - message.fetchResBody = object.fetchResBody; - if (object.readFileSyncFilename != null) - message.readFileSyncFilename = String(object.readFileSyncFilename); - if (object.readFileSyncData != null) - if (typeof object.readFileSyncData === "string") - $util.base64.decode(object.readFileSyncData, message.readFileSyncData = $util.newBuffer($util.base64.length(object.readFileSyncData)), 0); - else if (object.readFileSyncData.length) - message.readFileSyncData = object.readFileSyncData; - if (object.writeFileSyncFilename != null) - message.writeFileSyncFilename = String(object.writeFileSyncFilename); - if (object.writeFileSyncData != null) - if (typeof object.writeFileSyncData === "string") - $util.base64.decode(object.writeFileSyncData, message.writeFileSyncData = $util.newBuffer($util.base64.length(object.writeFileSyncData)), 0); - else if (object.writeFileSyncData.length) - message.writeFileSyncData = object.writeFileSyncData; - if (object.writeFileSyncPerm != null) - message.writeFileSyncPerm = object.writeFileSyncPerm >>> 0; - return message; - }; - - /** - * Creates a plain object from a Msg message. Also converts values to other types if specified. - * @function toObject - * @memberof deno.Msg - * @static - * @param {deno.Msg} message Msg - * @param {$protobuf.IConversionOptions} [options] Conversion options - * @returns {Object.<string,*>} Plain object - */ - Msg.toObject = function toObject(message, options) { - if (!options) - options = {}; - var object = {}; - if (options.arrays || options.defaults) { - object.startArgv = []; - object.fetchResHeaderLine = []; - } - if (options.defaults) { - object.command = options.enums === String ? "ERROR" : 0; - object.error = ""; - object.startCwd = ""; - object.startDebugFlag = false; - object.startMainJs = ""; - object.startMainMap = ""; - object.codeFetchModuleSpecifier = ""; - object.codeFetchContainingFile = ""; - object.codeFetchResModuleName = ""; - object.codeFetchResFilename = ""; - object.codeFetchResSourceCode = ""; - object.codeFetchResOutputCode = ""; - object.codeCacheFilename = ""; - object.codeCacheSourceCode = ""; - object.codeCacheOutputCode = ""; - object.exitCode = 0; - object.timerStartId = 0; - object.timerStartInterval = false; - object.timerStartDelay = 0; - object.timerReadyId = 0; - object.timerReadyDone = false; - object.timerClearId = 0; - object.fetchReqId = 0; - object.fetchReqUrl = ""; - object.fetchResId = 0; - object.fetchResStatus = 0; - object.fetchResBody = options.bytes === String ? "" : []; - object.readFileSyncFilename = ""; - object.readFileSyncData = options.bytes === String ? "" : []; - object.writeFileSyncFilename = ""; - object.writeFileSyncData = options.bytes === String ? "" : []; - object.writeFileSyncPerm = 0; - } - if (message.command != null && message.hasOwnProperty("command")) - object.command = options.enums === String ? $root.deno.Msg.Command[message.command] : message.command; - if (message.error != null && message.hasOwnProperty("error")) - object.error = message.error; - if (message.startCwd != null && message.hasOwnProperty("startCwd")) - object.startCwd = message.startCwd; - if (message.startArgv && message.startArgv.length) { - object.startArgv = []; - for (var j = 0; j < message.startArgv.length; ++j) - object.startArgv[j] = message.startArgv[j]; - } - if (message.startDebugFlag != null && message.hasOwnProperty("startDebugFlag")) - object.startDebugFlag = message.startDebugFlag; - if (message.startMainJs != null && message.hasOwnProperty("startMainJs")) - object.startMainJs = message.startMainJs; - if (message.startMainMap != null && message.hasOwnProperty("startMainMap")) - object.startMainMap = message.startMainMap; - if (message.codeFetchModuleSpecifier != null && message.hasOwnProperty("codeFetchModuleSpecifier")) - object.codeFetchModuleSpecifier = message.codeFetchModuleSpecifier; - if (message.codeFetchContainingFile != null && message.hasOwnProperty("codeFetchContainingFile")) - object.codeFetchContainingFile = message.codeFetchContainingFile; - if (message.codeFetchResModuleName != null && message.hasOwnProperty("codeFetchResModuleName")) - object.codeFetchResModuleName = message.codeFetchResModuleName; - if (message.codeFetchResFilename != null && message.hasOwnProperty("codeFetchResFilename")) - object.codeFetchResFilename = message.codeFetchResFilename; - if (message.codeFetchResSourceCode != null && message.hasOwnProperty("codeFetchResSourceCode")) - object.codeFetchResSourceCode = message.codeFetchResSourceCode; - if (message.codeFetchResOutputCode != null && message.hasOwnProperty("codeFetchResOutputCode")) - object.codeFetchResOutputCode = message.codeFetchResOutputCode; - if (message.codeCacheFilename != null && message.hasOwnProperty("codeCacheFilename")) - object.codeCacheFilename = message.codeCacheFilename; - if (message.codeCacheSourceCode != null && message.hasOwnProperty("codeCacheSourceCode")) - object.codeCacheSourceCode = message.codeCacheSourceCode; - if (message.codeCacheOutputCode != null && message.hasOwnProperty("codeCacheOutputCode")) - object.codeCacheOutputCode = message.codeCacheOutputCode; - if (message.exitCode != null && message.hasOwnProperty("exitCode")) - object.exitCode = message.exitCode; - if (message.timerStartId != null && message.hasOwnProperty("timerStartId")) - object.timerStartId = message.timerStartId; - if (message.timerStartInterval != null && message.hasOwnProperty("timerStartInterval")) - object.timerStartInterval = message.timerStartInterval; - if (message.timerStartDelay != null && message.hasOwnProperty("timerStartDelay")) - object.timerStartDelay = message.timerStartDelay; - if (message.timerReadyId != null && message.hasOwnProperty("timerReadyId")) - object.timerReadyId = message.timerReadyId; - if (message.timerReadyDone != null && message.hasOwnProperty("timerReadyDone")) - object.timerReadyDone = message.timerReadyDone; - if (message.timerClearId != null && message.hasOwnProperty("timerClearId")) - object.timerClearId = message.timerClearId; - if (message.fetchReqId != null && message.hasOwnProperty("fetchReqId")) - object.fetchReqId = message.fetchReqId; - if (message.fetchReqUrl != null && message.hasOwnProperty("fetchReqUrl")) - object.fetchReqUrl = message.fetchReqUrl; - if (message.fetchResId != null && message.hasOwnProperty("fetchResId")) - object.fetchResId = message.fetchResId; - if (message.fetchResStatus != null && message.hasOwnProperty("fetchResStatus")) - object.fetchResStatus = message.fetchResStatus; - if (message.fetchResHeaderLine && message.fetchResHeaderLine.length) { - object.fetchResHeaderLine = []; - for (var j = 0; j < message.fetchResHeaderLine.length; ++j) - object.fetchResHeaderLine[j] = message.fetchResHeaderLine[j]; - } - if (message.fetchResBody != null && message.hasOwnProperty("fetchResBody")) - object.fetchResBody = options.bytes === String ? $util.base64.encode(message.fetchResBody, 0, message.fetchResBody.length) : options.bytes === Array ? Array.prototype.slice.call(message.fetchResBody) : message.fetchResBody; - if (message.readFileSyncFilename != null && message.hasOwnProperty("readFileSyncFilename")) - object.readFileSyncFilename = message.readFileSyncFilename; - if (message.readFileSyncData != null && message.hasOwnProperty("readFileSyncData")) - object.readFileSyncData = options.bytes === String ? $util.base64.encode(message.readFileSyncData, 0, message.readFileSyncData.length) : options.bytes === Array ? Array.prototype.slice.call(message.readFileSyncData) : message.readFileSyncData; - if (message.writeFileSyncFilename != null && message.hasOwnProperty("writeFileSyncFilename")) - object.writeFileSyncFilename = message.writeFileSyncFilename; - if (message.writeFileSyncData != null && message.hasOwnProperty("writeFileSyncData")) - object.writeFileSyncData = options.bytes === String ? $util.base64.encode(message.writeFileSyncData, 0, message.writeFileSyncData.length) : options.bytes === Array ? Array.prototype.slice.call(message.writeFileSyncData) : message.writeFileSyncData; - if (message.writeFileSyncPerm != null && message.hasOwnProperty("writeFileSyncPerm")) - object.writeFileSyncPerm = message.writeFileSyncPerm; - return object; - }; - - /** - * Converts this Msg to JSON. - * @function toJSON - * @memberof deno.Msg - * @instance - * @returns {Object.<string,*>} JSON object - */ - Msg.prototype.toJSON = function toJSON() { - return this.constructor.toObject(this, $protobuf.util.toJSONOptions); - }; - - /** - * Command enum. - * @name deno.Msg.Command - * @enum {string} - * @property {number} ERROR=0 ERROR value - * @property {number} START=1 START value - * @property {number} CODE_FETCH=2 CODE_FETCH value - * @property {number} CODE_FETCH_RES=3 CODE_FETCH_RES value - * @property {number} CODE_CACHE=4 CODE_CACHE value - * @property {number} EXIT=5 EXIT value - * @property {number} TIMER_START=6 TIMER_START value - * @property {number} TIMER_READY=7 TIMER_READY value - * @property {number} TIMER_CLEAR=8 TIMER_CLEAR value - * @property {number} FETCH_REQ=9 FETCH_REQ value - * @property {number} FETCH_RES=10 FETCH_RES value - * @property {number} READ_FILE_SYNC=11 READ_FILE_SYNC value - * @property {number} READ_FILE_SYNC_RES=12 READ_FILE_SYNC_RES value - * @property {number} WRITE_FILE_SYNC=13 WRITE_FILE_SYNC value - */ - Msg.Command = (function() { - var valuesById = {}, values = Object.create(valuesById); - values[valuesById[0] = "ERROR"] = 0; - values[valuesById[1] = "START"] = 1; - values[valuesById[2] = "CODE_FETCH"] = 2; - values[valuesById[3] = "CODE_FETCH_RES"] = 3; - values[valuesById[4] = "CODE_CACHE"] = 4; - values[valuesById[5] = "EXIT"] = 5; - values[valuesById[6] = "TIMER_START"] = 6; - values[valuesById[7] = "TIMER_READY"] = 7; - values[valuesById[8] = "TIMER_CLEAR"] = 8; - values[valuesById[9] = "FETCH_REQ"] = 9; - values[valuesById[10] = "FETCH_RES"] = 10; - values[valuesById[11] = "READ_FILE_SYNC"] = 11; - values[valuesById[12] = "READ_FILE_SYNC_RES"] = 12; - values[valuesById[13] = "WRITE_FILE_SYNC"] = 13; - return values; - })(); - - return Msg; - })(); - - return deno; - })(); - - return $root; -}); diff --git a/js/msg_generated.ts b/js/msg_generated.ts new file mode 100644 index 000000000..aa8f00012 --- /dev/null +++ b/js/msg_generated.ts @@ -0,0 +1,161 @@ +// automatically generated by the FlatBuffers compiler, do not modify + +/** + * @enum + */ +export namespace deno{ +export enum Command{ + START= 0 +}}; + +/** + * @constructor + */ +export namespace deno{ +export class Msg { + /** + * @type {flatbuffers.ByteBuffer} + */ + bb: flatbuffers.ByteBuffer|null = null; + + /** + * @type {number} + */ + bb_pos:number = 0; +/** + * @param {number} i + * @param {flatbuffers.ByteBuffer} bb + * @returns {Msg} + */ +__init(i:number, bb:flatbuffers.ByteBuffer):Msg { + this.bb_pos = i; + this.bb = bb; + return this; +}; + +/** + * @param {flatbuffers.ByteBuffer} bb + * @param {Msg=} obj + * @returns {Msg} + */ +static getRootAsMsg(bb:flatbuffers.ByteBuffer, obj?:Msg):Msg { + return (obj || new Msg).__init(bb.readInt32(bb.position()) + bb.position(), bb); +}; + +/** + * @returns {deno.Command} + */ +command():deno.Command { + var offset = this.bb!.__offset(this.bb_pos, 4); + return offset ? /** @type {deno.Command} */ (this.bb!.readInt8(this.bb_pos + offset)) : deno.Command.START; +}; + +/** + * @param {deno.Command} value + * @returns {boolean} + */ +mutate_command(value:deno.Command):boolean { + var offset = this.bb!.__offset(this.bb_pos, 4); + + if (offset === 0) { + return false; + } + + this.bb!.writeInt8(this.bb_pos + offset, value); + return true; +}; + +/** + * @param {flatbuffers.Encoding=} optionalEncoding + * @returns {string|Uint8Array|null} + */ +startCwd():string|null +startCwd(optionalEncoding:flatbuffers.Encoding):string|Uint8Array|null +startCwd(optionalEncoding?:any):string|Uint8Array|null { + var offset = this.bb!.__offset(this.bb_pos, 6); + return offset ? this.bb!.__string(this.bb_pos + offset, optionalEncoding) : null; +}; + +/** + * @param {number} index + * @param {flatbuffers.Encoding=} optionalEncoding + * @returns {string|Uint8Array} + */ +startArgv(index: number):string +startArgv(index: number,optionalEncoding:flatbuffers.Encoding):string|Uint8Array +startArgv(index: number,optionalEncoding?:any):string|Uint8Array|null { + var offset = this.bb!.__offset(this.bb_pos, 8); + return offset ? this.bb!.__string(this.bb!.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null; +}; + +/** + * @returns {number} + */ +startArgvLength():number { + var offset = this.bb!.__offset(this.bb_pos, 8); + return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; +}; + +/** + * @param {flatbuffers.Builder} builder + */ +static startMsg(builder:flatbuffers.Builder) { + builder.startObject(3); +}; + +/** + * @param {flatbuffers.Builder} builder + * @param {deno.Command} command + */ +static addCommand(builder:flatbuffers.Builder, command:deno.Command) { + builder.addFieldInt8(0, command, deno.Command.START); +}; + +/** + * @param {flatbuffers.Builder} builder + * @param {flatbuffers.Offset} startCwdOffset + */ +static addStartCwd(builder:flatbuffers.Builder, startCwdOffset:flatbuffers.Offset) { + builder.addFieldOffset(1, startCwdOffset, 0); +}; + +/** + * @param {flatbuffers.Builder} builder + * @param {flatbuffers.Offset} startArgvOffset + */ +static addStartArgv(builder:flatbuffers.Builder, startArgvOffset:flatbuffers.Offset) { + builder.addFieldOffset(2, startArgvOffset, 0); +}; + +/** + * @param {flatbuffers.Builder} builder + * @param {Array.<flatbuffers.Offset>} data + * @returns {flatbuffers.Offset} + */ +static createStartArgvVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { + builder.startVector(4, data.length, 4); + for (var i = data.length - 1; i >= 0; i--) { + builder.addOffset(data[i]); + } + return builder.endVector(); +}; + +/** + * @param {flatbuffers.Builder} builder + * @param {number} numElems + */ +static startStartArgvVector(builder:flatbuffers.Builder, numElems:number) { + builder.startVector(4, numElems, 4); +}; + +/** + * @param {flatbuffers.Builder} builder + * @returns {flatbuffers.Offset} + */ +static endMsg(builder:flatbuffers.Builder):flatbuffers.Offset { + var offset = builder.endObject(); + return offset; +}; + +} +} diff --git a/js/package.json b/js/package.json index 3451843c9..e93ab1f1b 100644 --- a/js/package.json +++ b/js/package.json @@ -1,18 +1,14 @@ { "devDependencies": { "@types/base64-js": "^1.2.5", + "@types/flatbuffers": "^1.9.0", "@types/source-map-support": "^0.4.1", - "espree": "^3.5.3", - "jsdoc": "^3.5.5", - "minimist": "^1.2.0", + "flatbuffers": "^1.9.0", "parcel-bundler": "^1.8.1", - "protobufjs": "^6.8.6", - "tmp": "0.0.33", "tslint": "^5.10.0", "tslint-eslint-rules": "^5.3.1", "tslint-no-circular-imports": "^0.5.0", - "typescript": "^2.9.1", - "uglify-js": "^2.8.29" + "typescript": "^2.9.1" }, "browserslist": [ "chrome 69" diff --git a/js/pbjs_hack.py b/js/pbjs_hack.py deleted file mode 100755 index 19b7c1691..000000000 --- a/js/pbjs_hack.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env python -""" -gn can only run python scripts. - -Generates protobufjs code. -""" -import subprocess -import sys -import os -# TODO(ry) Ideally protobufjs output files should be written into -# target_gen_dir, but its difficult to get this working in a way that parcel can -# resolve their location. (Parcel does not support NODE_PATH.) Therefore this -# hack: write the generated msg.pb.js and msg.pb.d.ts outputs into the js/ -# folder, and we check them into the repo. Hopefully this hack can be removed at -# some point. If msg.proto is changed, commit changes to the generated JS -# files. - -js_path = os.path.dirname(os.path.realpath(__file__)) -pbjs_path = os.path.join(js_path, "node_modules", "protobufjs", "bin") -pbjs_bin = os.path.join(pbjs_path, "pbjs") -pbts_bin = os.path.join(pbjs_path, "pbts") -msg_pbjs_out = os.path.join(js_path, "msg.pb.js") -msg_pbts_out = os.path.join(js_path, "msg.pb.d.ts") -assert os.path.exists(pbjs_bin) -assert os.path.exists(pbts_bin) - -proto_in = sys.argv[1] -stamp_file = sys.argv[2] - - -def touch(fname): - if os.path.exists(fname): - os.utime(fname, None) - else: - open(fname, 'a').close() - - -subprocess.check_call([ - "node", pbjs_bin, "--target=static-module", "--wrapper=commonjs", - "--out=" + msg_pbjs_out, proto_in -]) -assert os.path.exists(msg_pbjs_out) - -subprocess.check_call( - ["node", pbts_bin, "--out=" + msg_pbts_out, msg_pbjs_out]) -assert os.path.exists(msg_pbts_out) - -touch(stamp_file) |