reorg: move JS ops implementations to cli/js/ops/, part 1 (#4264)

Following JS ops were moved to separate files in cli/js/ops directory:
- compiler
- dispatch_json
- dispatch_minimal
- errors
- fetch
- fs_events
- os
- random
- repl
- resources
- runtime_compiler
- runtime
- tty
This commit is contained in:
Bartek Iwańczuk 2020-03-08 13:09:22 +01:00 committed by GitHub
parent b9037c86ed
commit 1b6f831875
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
57 changed files with 304 additions and 213 deletions

View file

@ -5,9 +5,8 @@ import { CompilerOptions } from "./compiler_api.ts";
import { buildBundle } from "./compiler_bundler.ts";
import { ConfigureResponse, Host } from "./compiler_host.ts";
import { SourceFile } from "./compiler_sourcefile.ts";
import { sendSync } from "./dispatch_json.ts";
import { atob, TextDecoder, TextEncoder } from "./web/text_encoding.ts";
import { core } from "./core.ts";
import { atob, TextEncoder } from "./web/text_encoding.ts";
import * as compilerOps from "./ops/compiler.ts";
import * as util from "./util.ts";
import { assert } from "./util.ts";
import { writeFileSync } from "./write_file.ts";
@ -70,36 +69,21 @@ function cache(
if (emittedFileName.endsWith(".map")) {
// Source Map
sendSync("op_cache", {
extension: ".map",
moduleId,
contents
});
compilerOps.cache(".map", moduleId, contents);
} else if (
emittedFileName.endsWith(".js") ||
emittedFileName.endsWith(".json")
) {
// Compiled JavaScript
sendSync("op_cache", {
extension: ".js",
moduleId,
contents
});
compilerOps.cache(".js", moduleId, contents);
} else {
assert(false, `Trying to cache unhandled file type "${emittedFileName}"`);
}
}
const encoder = new TextEncoder();
const decoder = new TextDecoder();
/** Retrieve an asset from Rust. */
export function getAsset(name: string): string {
const opId = core.ops()["op_fetch_asset"];
// We really don't want to depend on JSON dispatch during snapshotting, so
// this op exchanges strings with Rust as raw byte arrays.
const sourceCodeBytes = core.dispatch(opId, encoder.encode(name));
return decoder.decode(sourceCodeBytes!);
return compilerOps.getAsset(name);
}
/** Generates a `writeFile` function which can be passed to the compiler `Host`