diff options
Diffstat (limited to 'runtime.ts')
-rw-r--r-- | runtime.ts | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/runtime.ts b/runtime.ts index 046a1c605..9613ab117 100644 --- a/runtime.ts +++ b/runtime.ts @@ -10,11 +10,15 @@ import * as ts from "typescript"; import * as util from "./util"; import { log } from "./util"; import * as os from "./os"; +import { pub, sub } from "./dispatch"; import * as sourceMaps from "./v8_source_maps"; import { _global, globalEval } from "./globals"; const EOL = "\n"; +// Public deno module. +const deno = { pub, sub }; + // tslint:disable-next-line:no-any type AmdFactory = (...args: any[]) => undefined | object; type AmdDefine = (deps: string[], factory: AmdFactory) => void; @@ -103,6 +107,8 @@ export function makeDefine(fileName: string): AmdDefine { return localRequire; } else if (dep === "exports") { return localExports; + } else if (dep === "deno") { + return deno; } else { const resolved = resolveModuleName(dep, fileName); const depModule = FileModule.load(resolved); @@ -262,7 +268,12 @@ class TypeScriptHost implements ts.LanguageServiceHost { ): Array<ts.ResolvedModule | undefined> { util.log("resolveModuleNames", { moduleNames, reusedNames }); return moduleNames.map((name: string) => { - const resolvedFileName = resolveModuleName(name, containingFile); + let resolvedFileName; + if (name === "deno") { + resolvedFileName = resolveModuleName("deno.d.ts", "/$asset$/"); + } else { + resolvedFileName = resolveModuleName(name, containingFile); + } const isExternalLibraryImport = false; return { resolvedFileName, isExternalLibraryImport }; }); |