From 0162eca15fabe21a44d053ede62c5d9ef2c2c8f1 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Wed, 30 May 2018 18:47:26 +0200 Subject: [PATCH] Allow importing of the compiled in typescript Fixes #18. --- Makefile | 2 +- runtime.ts | 4 ++++ testdata/import_typescript.ts | 3 +++ testdata/import_typescript.ts.out | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 testdata/import_typescript.ts create mode 100644 testdata/import_typescript.ts.out diff --git a/Makefile b/Makefile index 9bcc37f3cf..a5c1978b97 100644 --- a/Makefile +++ b/Makefile @@ -39,7 +39,7 @@ deno: msg.pb.go $(GO_FILES) go build -o deno ./cmd assets.go: dist/main.js - cp node_modules/typescript/lib/lib.*d.ts dist/ + cp node_modules/typescript/lib/*d.ts dist/ cp deno.d.ts dist/ go-bindata -pkg deno -o assets.go dist/ diff --git a/runtime.ts b/runtime.ts index 0ef893ab3f..1b6e7cfcd8 100644 --- a/runtime.ts +++ b/runtime.ts @@ -130,6 +130,8 @@ export function makeDefine(fileName: string): AmdDefine { return localRequire; } else if (dep === "exports") { return localExports; + } else if (dep === "typescript") { + return ts; } else if (dep === "deno") { return deno; } else { @@ -310,6 +312,8 @@ class TypeScriptHost implements ts.LanguageServiceHost { let resolvedFileName; if (name === "deno") { resolvedFileName = resolveModuleName("deno.d.ts", "/$asset$/"); + } else if (name === "typescript") { + resolvedFileName = resolveModuleName("typescript.d.ts", "/$asset$/"); } else { resolvedFileName = resolveModuleName(name, containingFile); } diff --git a/testdata/import_typescript.ts b/testdata/import_typescript.ts new file mode 100644 index 0000000000..0f161ceb0a --- /dev/null +++ b/testdata/import_typescript.ts @@ -0,0 +1,3 @@ +import * as ts from "typescript"; + +console.log("typescript version", ts.version); diff --git a/testdata/import_typescript.ts.out b/testdata/import_typescript.ts.out new file mode 100644 index 0000000000..0a142219b3 --- /dev/null +++ b/testdata/import_typescript.ts.out @@ -0,0 +1 @@ +typescript version 2.8.3