summaryrefslogtreecommitdiff
path: root/runtime.ts
diff options
context:
space:
mode:
Diffstat (limited to 'runtime.ts')
-rw-r--r--runtime.ts13
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 };
});