diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-05-20 12:06:57 -0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-05-29 07:53:39 -0400 |
commit | 856c44213b7faf507d4b481cfc170b2fd08f971a (patch) | |
tree | b2971883b0aeb43437a9be0076b4ffacde55d5b8 /js/os.ts | |
parent | 64d2b7bc90cf6fdba661d6d3fe243fe332c076ee (diff) |
TS compiler refactor
* Compiler no longer has its own Tokio runtime. Compiler handles one
message and then exits.
* Uses the simpler ts.CompilerHost interface instead of
ts.LanguageServiceHost.
* avoids recompiling the same module by introducing a hacky but simple
`hashset<string>` that stores the module names that have been already
compiled.
* Removes the CompilerConfig op.
* Removes a lot of the mocking stuff in compiler.ts like `this._ts`. It
is not useful as we don't even have tests.
* Turns off checkJs because it causes fmt_test to die with OOM.
Diffstat (limited to 'js/os.ts')
-rw-r--r-- | js/os.ts | 45 |
1 files changed, 0 insertions, 45 deletions
@@ -3,7 +3,6 @@ import * as msg from "gen/cli/msg_generated"; import { core } from "./core"; import { handleAsyncMsgFromRust, sendSync } from "./dispatch"; import * as flatbuffers from "./flatbuffers"; -import { TextDecoder } from "./text_encoding"; import { assert } from "./util"; import * as util from "./util"; import { window } from "./window"; @@ -24,13 +23,6 @@ function setGlobals(pid_: number, noColor_: boolean, execPath_: string): void { execPath = execPath_; } -interface ResponseModuleMetaData { - moduleName: string | undefined; - filename: string | undefined; - mediaType: msg.MediaType; - sourceCode: string | undefined; -} - /** Check if running in terminal. * * console.log(Deno.isTTY().stdout); @@ -54,43 +46,6 @@ export function exit(exitCode = 0): never { return util.unreachable(); } -const decoder = new TextDecoder(); - -// @internal -export function fetchModuleMetaData( - specifier: string, - referrer: string -): ResponseModuleMetaData { - util.log("os.fetchModuleMetaData", { specifier, referrer }); - // Send FetchModuleMetaData message - const builder = flatbuffers.createBuilder(); - const specifier_ = builder.createString(specifier); - const referrer_ = builder.createString(referrer); - const inner = msg.FetchModuleMetaData.createFetchModuleMetaData( - builder, - specifier_, - referrer_ - ); - const baseRes = sendSync(builder, msg.Any.FetchModuleMetaData, inner); - assert(baseRes != null); - assert( - msg.Any.FetchModuleMetaDataRes === baseRes!.innerType(), - `base.innerType() unexpectedly is ${baseRes!.innerType()}` - ); - const fetchModuleMetaDataRes = new msg.FetchModuleMetaDataRes(); - assert(baseRes!.inner(fetchModuleMetaDataRes) != null); - const dataArray = fetchModuleMetaDataRes.dataArray(); - const sourceCode = dataArray ? decoder.decode(dataArray) : undefined; - // flatbuffers returns `null` for an empty value, this does not fit well with - // idiomatic TypeScript under strict null checks, so converting to `undefined` - return { - moduleName: fetchModuleMetaDataRes.moduleName() || undefined, - filename: fetchModuleMetaDataRes.filename() || undefined, - mediaType: fetchModuleMetaDataRes.mediaType(), - sourceCode - }; -} - function setEnv(key: string, value: string): void { const builder = flatbuffers.createBuilder(); const key_ = builder.createString(key); |