Skip to content

Commit

Permalink
Upgrade TypeScript (3.0.1)
Browse files Browse the repository at this point in the history
Update runtime to use lib.deno.d.ts

Add proper console declaration

Upgrade prettier (There was an issue formatting lib.deno.d.ts)
  • Loading branch information
kitsonk authored and ry committed Aug 1, 2018
1 parent b44c235 commit 36fa1ce
Show file tree
Hide file tree
Showing 10 changed files with 83 additions and 28 deletions.
1 change: 1 addition & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ run_node("bundle") {
"js/deno.d.ts",
"js/dispatch.ts",
"js/globals.ts",
"js/lib.deno.d.ts",
"js/main.ts",
"js/os.ts",
"js/runtime.ts",
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## A secure TypeScript runtime built on V8

* Supports TypeScript 2.8 out of the box. Uses V8 6.9.297. That is, it's
* Supports TypeScript 3.0.1 out of the box. Uses V8 6.9.297. That is, it's
very modern JavaScript.

* No `package.json`. No npm. Not explicitly compatible with Node.
Expand Down
40 changes: 28 additions & 12 deletions js/assets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
// There is a rollup plugin that will inline any module ending with `!string`
// tslint:disable:max-line-length
import denoDts from "/js/deno.d.ts!string";
import libDts from "/third_party/node_modules/typescript/lib/lib.d.ts!string";
import libDomIterableDts from "/third_party/node_modules/typescript/lib/lib.dom.iterable.d.ts!string";
// import libDts from "/third_party/node_modules/typescript/lib/lib.d.ts!string";
import libDenoDts from "/js/lib.deno.d.ts!string";
// import libDomD qts from "/third_party/node_modules/typescript/lib/lib.dom.d.ts!string";
// import libDomIterableDts from "/third_party/node_modules/typescript/lib/lib.dom.iterable.d.ts!string";
import libEs2015Dts from "/third_party/node_modules/typescript/lib/lib.es2015.d.ts!string";
import libEs2015CollectionDts from "/third_party/node_modules/typescript/lib/lib.es2015.collection.d.ts!string";
import libEs2015CoreDts from "/third_party/node_modules/typescript/lib/lib.es2015.core.d.ts!string";
import libEs2015GeneratorDts from "/third_party/node_modules/typescript/lib/lib.es2015.generator.d.ts!string";
Expand All @@ -17,29 +20,38 @@ import libEs2015ProxyDts from "/third_party/node_modules/typescript/lib/lib.es20
import libEs2015ReflectDts from "/third_party/node_modules/typescript/lib/lib.es2015.reflect.d.ts!string";
import libEs2015SymbolDts from "/third_party/node_modules/typescript/lib/lib.es2015.symbol.d.ts!string";
import libEs2015SymbolWellknownDts from "/third_party/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts!string";
import libEs2016Dts from "/third_party/node_modules/typescript/lib/lib.es2016.d.ts!string";
import libEs2016ArrayIncludeDts from "/third_party/node_modules/typescript/lib/lib.es2016.array.include.d.ts!string";
import libEs2017Dts from "/third_party/node_modules/typescript/lib/lib.es2017.d.ts!string";
import libEs2017IntlDts from "/third_party/node_modules/typescript/lib/lib.es2017.intl.d.ts!string";
import libEs2017ObjectDts from "/third_party/node_modules/typescript/lib/lib.es2017.object.d.ts!string";
import libEs2017SharedmemoryDts from "/third_party/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts!string";
import libEs2017StringDts from "/third_party/node_modules/typescript/lib/lib.es2017.string.d.ts!string";
import libEs2017TypedarraysDts from "/third_party/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts!string";
import libEs2018Dts from "/third_party/node_modules/typescript/lib/lib.es2018.d.ts!string";
import libEs2018IntlDts from "/third_party/node_modules/typescript/lib/lib.es2018.intl.d.ts!string";
import libEs2018PromiseDts from "/third_party/node_modules/typescript/lib/lib.es2018.promise.d.ts!string";
import libEs2018RegexpDts from "/third_party/node_modules/typescript/lib/lib.es2018.regexp.d.ts!string";
import libEs5Dts from "/third_party/node_modules/typescript/lib/lib.es5.d.ts!string";
import libEsnextArrayDts from "/third_party/node_modules/typescript/lib/lib.esnext.array.d.ts!string";
import libEsnextAsynciterablesDts from "/third_party/node_modules/typescript/lib/lib.esnext.asynciterable.d.ts!string";
import libEsnextDts from "/third_party/node_modules/typescript/lib/lib.esnext.d.ts!string";
import libEsnextIntlDts from "/third_party/node_modules/typescript/lib/lib.esnext.intl.d.ts!string";
import libEsnextSymbolDts from "/third_party/node_modules/typescript/lib/lib.esnext.symbol.d.ts!string";
// import libScripthost from "/third_party/node_modules/typescript/lib/lib.scripthost.d.ts!string";
// import libWebworkerImportscripts from "/third_party/node_modules/typescript/lib/lib.webworker.importscripts.d.ts!string";
import typescriptDts from "/third_party/node_modules/typescript/lib/typescript.d.ts!string";

// prettier-ignore
export const assetSourceCode: { [key: string]: string } = {
"deno.d.ts": denoDts,
"lib.d.ts": libDts,
//"lib.dom.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.dom.d.ts", "utf8"),
"lib.dom.iterable.d.ts": libDomIterableDts,
// "lib.d.ts": libDts,
"lib.deno.d.ts": libDenoDts,
// "lib.dom.d.ts": libDomDts,
// "lib.dom.iterable.d.ts": libDomIterableDts,
"lib.es2015.collection.d.ts": libEs2015CollectionDts,
"lib.es2015.core.d.ts": libEs2015CoreDts,
//"lib.es2015.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.es2015.d.ts", "utf8"),
"lib.es2015.d.ts": libEs2015Dts,
"lib.es2015.generator.d.ts": libEs2015GeneratorDts,
"lib.es2015.iterable.d.ts": libEs2015IterableDts,
"lib.es2015.promise.d.ts": libEs2015PromiseDts,
Expand All @@ -48,9 +60,9 @@ export const assetSourceCode: { [key: string]: string } = {
"lib.es2015.symbol.d.ts": libEs2015SymbolDts,
"lib.es2015.symbol.wellknown.d.ts": libEs2015SymbolWellknownDts,
"lib.es2016.array.include.d.ts": libEs2016ArrayIncludeDts,
//"lib.es2016.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.es2016.d.ts", "utf8"),
"lib.es2016.d.ts": libEs2016Dts,
//"lib.es2016.full.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.es2016.full.d.ts", "utf8"),
//"lib.es2017.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.es2017.d.ts", "utf8"),
"lib.es2017.d.ts": libEs2017Dts,
//"lib.es2017.full.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.es2017.full.d.ts", "utf8"),
"lib.es2017.intl.d.ts": libEs2017IntlDts,
"lib.es2017.object.d.ts": libEs2017ObjectDts,
Expand All @@ -59,16 +71,20 @@ export const assetSourceCode: { [key: string]: string } = {
"lib.es2017.typedarrays.d.ts": libEs2017TypedarraysDts,
"lib.es2018.d.ts": libEs2018Dts,
//"lib.es2018.full.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.es2018.full.d.ts", "utf8"),
"lib.es2018.intl.d.ts": libEs2018IntlDts,
"lib.es2018.promise.d.ts": libEs2018PromiseDts,
"lib.es2018.regexp.d.ts": libEs2018RegexpDts,
//"lib.es5.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.es5.d.ts", "utf8"),
"lib.es5.d.ts": libEs5Dts,
//"lib.es6.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.es6.d.ts", "utf8"),
"lib.esnext.d.ts": libEsnextDts,
"lib.esnext.array.d.ts": libEsnextArrayDts,
"lib.esnext.asynciterable.d.ts": libEsnextAsynciterablesDts,
"lib.esnext.d.ts": libEsnextDts,
"lib.esnext.intl.d.ts": libEsnextIntlDts,
"lib.esnext.symbol.d.ts": libEsnextSymbolDts,
//"lib.esnext.full.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.esnext.full.d.ts", "utf8"),
//"lib.scripthost.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.scripthost.d.ts", "utf8"),
//"lib.webworker.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/lib.webworker.d.ts", "utf8"),
// "lib.scripthost.d.ts": libScripthost,
// "lib.webworker.d.ts": libWebworker,
// "lib.webworker.importscripts.d.ts": libWebworkerImportscripts,
//"protocol.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/protocol.d.ts", "utf8"),
//"tsserverlibrary.d.ts": readFileSync(__dirname + "/../third_party/node_modules/typescript/lib/tsserverlibrary.d.ts", "utf8"),
"typescript.d.ts": typescriptDts,
Expand Down
34 changes: 34 additions & 0 deletions js/lib.deno.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// Copyright 2018 the Deno authors. All rights reserved. MIT license.

// This file contains the default TypeScript libraries for the runtime

/// <reference no-default-lib="true"/>

/// <reference lib="esnext" />

// TODO generate `console.d.ts` and inline it in `assets.ts` and remove
// declaration of `Console`
// import { Console } from 'gen/console';

declare class Console {
// tslint:disable-next-line:no-any
log(...args: any[]): void;
// tslint:disable-next-line:no-any
debug(...args: any[]): void;
// tslint:disable-next-line:no-any
info(...args: any[]): void;
// tslint:disable-next-line:no-any
warn(...args: any[]): void;
// tslint:disable-next-line:no-any
error(...args: any[]): void;
// tslint:disable-next-line:no-any
assert(condition: boolean, ...args: any[]): void;
}

interface Window {
console: Console;
}

// Globals in the runtime environment
declare let console: Console;
declare const window: Window;
5 changes: 2 additions & 3 deletions js/runtime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,8 @@ class Compiler {
module: ts.ModuleKind.AMD,
outDir: "$deno$",
inlineSourceMap: true,
lib: ["es2017"],
inlineSources: true,
target: ts.ScriptTarget.ES2017
target: ts.ScriptTarget.ESNext
};
/*
allowJs: true,
Expand Down Expand Up @@ -317,7 +316,7 @@ class TypeScriptHost implements ts.LanguageServiceHost {
}

getDefaultLibFileName(options: ts.CompilerOptions): string {
const fn = "lib.d.ts"; // ts.getDefaultLibFileName(options);
const fn = "lib.deno.d.ts"; // ts.getDefaultLibFileName(options);
util.log("getDefaultLibFileName", fn);
const m = resolveModule(fn, "/$asset$/");
return m.fileName;
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"@types/flatbuffers": "^1.9.0",
"@types/source-map-support": "^0.4.1",
"flatbuffers": "^1.9.0",
"prettier": "^1.13.7",
"prettier": "^1.14.0",
"rollup": "^0.63.2",
"rollup-pluginutils": "^2.3.0",
"rollup-plugin-alias": "^1.4.0",
Expand All @@ -18,6 +18,6 @@
"tslint": "^5.10.0",
"tslint-eslint-rules": "^5.3.1",
"tslint-no-circular-imports": "^0.5.0",
"typescript": "2.8.3"
"typescript": "3.0.1"
}
}
9 changes: 7 additions & 2 deletions rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ import { plugin as analyze } from "rollup-plugin-analyzer";
import commonjs from "rollup-plugin-commonjs";
import globals from "rollup-plugin-node-globals";
import nodeResolve from "rollup-plugin-node-resolve";
import typescript from "rollup-plugin-typescript2";
import typescriptPlugin from "rollup-plugin-typescript2";
import { createFilter } from "rollup-pluginutils";
import typescript from "typescript";

const mockPath = path.join(__dirname, "js", "mock_builtin");
const tsconfig = path.join(__dirname, "tsconfig.json");
Expand Down Expand Up @@ -122,13 +123,17 @@ export default function makeConfig(commandOptions) {
}
}),

typescript({
typescriptPlugin({
// The build script is invoked from `out/:target` so passing an absolute file path is needed
tsconfig,

// This provides any overrides to the `tsconfig.json` that are needed to bundle
tsconfigOverride,

// This provides the locally configured version of TypeScript instead of the plugins
// default version
typescript,

// By default, the include path only includes the cwd and below, need to include the root of the project
// and build path to be passed to this plugin. This is different front tsconfig.json include
include: ["*.ts", `${__dirname}/**/*.ts`, `${process.cwd()}/**/*.ts`],
Expand Down
2 changes: 1 addition & 1 deletion third_party
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"sourceMap": true,
"removeComments": true,
"preserveConstEnums": true,
"target": "es2017",
"target": "esnext",
"moduleResolution": "node",
"noImplicitReturns": true,
"pretty": true,
Expand Down
12 changes: 6 additions & 6 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -448,9 +448,9 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"

prettier@^1.13.7:
version "1.13.7"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281"
prettier@^1.14.0:
version "1.14.0"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.0.tgz#847c235522035fd988100f1f43cf20a7d24f9372"

process-es6@^0.11.6:
version "0.11.6"
Expand Down Expand Up @@ -650,9 +650,9 @@ tsutils@^2.12.1:
dependencies:
tslib "^1.8.1"

typescript@2.8.3:
version "2.8.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.3.tgz#5d817f9b6f31bb871835f4edf0089f21abe6c170"
typescript@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.1.tgz#43738f29585d3a87575520a4b93ab6026ef11fdb"

universalify@^0.1.0:
version "0.1.2"
Expand Down

0 comments on commit 36fa1ce

Please sign in to comment.