From 9fa28158bb901bfd4406ea224be324050d0225fa Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Fri, 22 Feb 2019 15:32:42 -0800 Subject: [PATCH] Enable building typescript.d.ts with current source --- Gulpfile.js | 92 +++++++++++++++++++- src/compiler/commandLineParser.ts | 1 + src/compiler/parser.ts | 1 + src/compiler/program.ts | 2 + src/compiler/sys.ts | 60 +++++++++++++ src/compiler/tsconfig.json | 2 +- src/compiler/tsconfig.release.json | 2 +- src/compiler/types.ts | 1 + src/jsTyping/tsconfig.json | 2 +- src/server/editorServices.ts | 1 + src/server/tsconfig.json | 4 +- src/services/codefixes/generateTypes.ts | 1 + src/services/tsconfig.json | 2 +- src/tsconfig-library-base.json | 9 ++ src/tsserverlibrary/tsconfig.json | 15 ++++ src/tsserverlibrary/tsserverlibrary.ts | 0 src/typescriptServices/tsconfig.json | 14 +++ src/typescriptServices/typescriptServices.ts | 0 18 files changed, 201 insertions(+), 8 deletions(-) create mode 100644 src/tsconfig-library-base.json create mode 100644 src/tsserverlibrary/tsconfig.json create mode 100644 src/tsserverlibrary/tsserverlibrary.ts create mode 100644 src/typescriptServices/tsconfig.json create mode 100644 src/typescriptServices/typescriptServices.ts diff --git a/Gulpfile.js b/Gulpfile.js index 93770f9d498..765cb35f5aa 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -127,6 +127,9 @@ const buildServices = (() => { // build typescriptServices.out.js const buildTypescriptServicesOut = () => buildProject("built/local/typescriptServices.tsconfig.json", cmdLineOptions); + // build typescriptServices/typescriptServices.js + const buildTypescriptServicesOut1 = () => buildProject("src/typescriptServices/tsconfig.json", { ...cmdLineOptions, lkg: false }); + // create typescriptServices.js const createTypescriptServicesJs = () => src("built/local/typescriptServices.out.js") .pipe(newer("built/local/typescriptServices.js")) @@ -136,6 +139,15 @@ const buildServices = (() => { .pipe(sourcemaps.write(".", { includeContent: false, destPath: "built/local" })) .pipe(dest("built/local")); + // create typescriptServices1.js + const createTypescriptServicesJs1 = () => src("built/local/typescriptServices/typescriptServices.js") + .pipe(newer("built/local/typescriptServices1.js")) + .pipe(sourcemaps.init({ loadMaps: true })) + .pipe(prependFile(copyright)) + .pipe(rename("typescriptServices1.js")) + .pipe(sourcemaps.write(".", { includeContent: false, destPath: "built/local" })) + .pipe(dest("built/local")); + // create typescriptServices.d.ts const createTypescriptServicesDts = () => src("built/local/typescriptServices.out.d.ts") .pipe(newer("built/local/typescriptServices.d.ts")) @@ -144,6 +156,14 @@ const buildServices = (() => { .pipe(rename("typescriptServices.d.ts")) .pipe(dest("built/local")); + // create typescriptServices1.d.ts + const createTypescriptServicesDts1 = () => src("built/local/typescriptServices/typescriptServices.d.ts") + .pipe(newer("built/local/typescriptServices1.d.ts")) + .pipe(prependFile(copyright)) + .pipe(transform(content => content.replace(/^(\s*)(export )?const enum (\S+) {(\s*)$/gm, "$1$2enum $3 {$4"))) + .pipe(rename("typescriptServices1.d.ts")) + .pipe(dest("built/local")); + // create typescript.js const createTypescriptJs = () => src("built/local/typescriptServices.js") .pipe(newer("built/local/typescript.js")) @@ -152,6 +172,14 @@ const buildServices = (() => { .pipe(sourcemaps.write(".", { includeContent: false, destPath: "built/local" })) .pipe(dest("built/local")); + // create typescript1.js + const createTypescriptJs1 = () => src("built/local/typescriptServices1.js") + .pipe(newer("built/local/typescript1.js")) + .pipe(sourcemaps.init({ loadMaps: true })) + .pipe(rename("typescript1.js")) + .pipe(sourcemaps.write(".", { includeContent: false, destPath: "built/local" })) + .pipe(dest("built/local")); + // create typescript.d.ts const createTypescriptDts = () => src("built/local/typescriptServices.d.ts") .pipe(newer("built/local/typescript.d.ts")) @@ -159,6 +187,13 @@ const buildServices = (() => { .pipe(rename("typescript.d.ts")) .pipe(dest("built/local")); + // create typescript1.d.ts + const createTypescriptDts1 = () => src("built/local/typescriptServices1.d.ts") + .pipe(newer("built/local/typescript1.d.ts")) + .pipe(append("\nexport = ts;")) + .pipe(rename("typescript1.d.ts")) + .pipe(dest("built/local")); + // create typescript_standalone.d.ts const createTypescriptStandaloneDts = () => src("built/local/typescriptServices.d.ts") .pipe(newer("built/local/typescript_standalone.d.ts")) @@ -166,6 +201,13 @@ const buildServices = (() => { .pipe(rename("typescript_standalone.d.ts")) .pipe(dest("built/local")); + // create typescript_standalone.d.ts + const createTypescriptStandaloneDts1 = () => src("built/local/typescriptServices1.d.ts") + .pipe(newer("built/local/typescript_standalone1.d.ts")) + .pipe(transform(content => content.replace(/declare (namespace|module) ts/g, 'declare module "typescript"'))) + .pipe(rename("typescript_standalone1.d.ts")) + .pipe(dest("built/local")); + return series( flattenServicesConfig, buildTypescriptServicesOut, @@ -173,7 +215,15 @@ const buildServices = (() => { createTypescriptServicesDts, createTypescriptJs, createTypescriptDts, - createTypescriptStandaloneDts); + createTypescriptStandaloneDts, + localPreBuild, + buildTypescriptServicesOut1, + createTypescriptServicesJs1, + createTypescriptServicesDts1, + createTypescriptJs1, + createTypescriptDts1, + createTypescriptStandaloneDts1, + ); })(); task("services", series(preBuild, buildServices)); task("services").description = "Builds the language service"; @@ -193,6 +243,13 @@ const cleanServices = async () => { "built/local/typescript.js", "built/local/typescript.d.ts", "built/local/typescript_standalone.d.ts", + "built/local/typescriptServices/typescriptServices.js", + "built/local/typescriptServices/typescriptServices.js.map", + "built/local/typescriptServices/typescriptServices.d.ts", + "built/local/typescriptServices1.js", + "built/local/typescript1.js", + "built/local/typescript1.d.ts", + "built/local/typescript_standalone1.d.ts", ]); }; cleanTasks.push(cleanServices); @@ -263,6 +320,9 @@ const buildLssl = (() => { // build tsserverlibrary.out.js const buildServerLibraryOut = () => buildProject("built/local/tsserverlibrary.tsconfig.json", cmdLineOptions); + // build tsserverlibrary1.out.js + const buildServerLibraryOut1 = () => buildProject("src/tsserverlibrary/tsconfig.json", { ...cmdLineOptions, lkg: false }); + // create tsserverlibrary.js const createServerLibraryJs = () => src("built/local/tsserverlibrary.out.js") .pipe(newer("built/local/tsserverlibrary.js")) @@ -272,6 +332,15 @@ const buildLssl = (() => { .pipe(sourcemaps.write(".", { includeContent: false, destPath: "built/local" })) .pipe(dest("built/local")); + // create tsserverlibrary1.js + const createServerLibraryJs1 = () => src("built/local/tsserverlibrary/tsserverlibrary.js") + .pipe(newer("built/local/tsserverlibrary1.js")) + .pipe(sourcemaps.init({ loadMaps: true })) + .pipe(prependFile(copyright)) + .pipe(rename("tsserverlibrary1.js")) + .pipe(sourcemaps.write(".", { includeContent: false, destPath: "built/local" })) + .pipe(dest("built/local")); + // create tsserverlibrary.d.ts const createServerLibraryDts = () => src("built/local/tsserverlibrary.out.d.ts") .pipe(newer("built/local/tsserverlibrary.d.ts")) @@ -281,11 +350,25 @@ const buildLssl = (() => { .pipe(rename("tsserverlibrary.d.ts")) .pipe(dest("built/local")); + // create tsserverlibrary1.d.ts + const createServerLibraryDts1 = () => src("built/local/tsserverlibrary/tsserverlibrary.d.ts") + .pipe(newer("built/local/tsserverlibrary1.d.ts")) + .pipe(prependFile(copyright)) + .pipe(transform(content => content.replace(/^(\s*)(export )?const enum (\S+) {(\s*)$/gm, "$1$2enum $3 {$4"))) + .pipe(append("\nexport = ts;\nexport as namespace ts;")) + .pipe(rename("tsserverlibrary1.d.ts")) + .pipe(dest("built/local")); + return series( flattenTsServerProject, buildServerLibraryOut, createServerLibraryJs, - createServerLibraryDts); + createServerLibraryDts, + localPreBuild, + buildServerLibraryOut1, + createServerLibraryJs1, + createServerLibraryDts1 + ); })(); task("lssl", series(preBuild, buildLssl)); task("lssl").description = "Builds language service server library"; @@ -303,6 +386,11 @@ const cleanLssl = async () => { "built/local/tsserverlibrary.out.d.ts", "built/local/tsserverlibrary.js", "built/local/tsserverlibrary.d.ts", + "built/local/tsserverlibrary/tsserverlibrary.js", + "built/local/tsserverlibrary/tsserverlibrary.js.map", + "built/local/tsserverlibrary/tsserverlibrary.d.ts", + "built/local/tsserverlibrary1.js", + "built/local/tsserverlibrary1.d.ts", ]); }; cleanTasks.push(cleanLssl); diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index e82c2895ad0..ee120c5bfae 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -1427,6 +1427,7 @@ namespace ts { return _tsconfigRootOptions; } + /*@internal*/ interface JsonConversionNotifier { /** * Notifies parent option object is being set with the optionKey and a valid optionValue diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 4aec4f5962b..1564b78ca61 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -7762,6 +7762,7 @@ namespace ts { } } + /*@internal*/ type PragmaDiagnosticReporter = (pos: number, length: number, message: DiagnosticMessage) => void; /*@internal*/ diff --git a/src/compiler/program.ts b/src/compiler/program.ts index c30317b1142..f7abfdd29c0 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -203,6 +203,7 @@ namespace ts { return compilerHost; } + /*@internal*/ interface CompilerHostLikeForCache { fileExists(fileName: string): boolean; readFile(fileName: string, encoding?: string): string | undefined; @@ -3123,6 +3124,7 @@ namespace ts { } } + /*@internal*/ interface CompilerHostLike { useCaseSensitiveFileNames(): boolean; getCurrentDirectory(): string; diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index 33283c93803..d7faaa679c0 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -454,6 +454,66 @@ namespace ts { } } + /*@internal*/ + interface NodeBuffer extends Uint8Array { + write(str: string, offset?: number, length?: number, encoding?: string): number; + toString(encoding?: string, start?: number, end?: number): string; + toJSON(): { type: "Buffer", data: any[] }; + equals(otherBuffer: Buffer): boolean; + compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + slice(start?: number, end?: number): Buffer; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt8(offset: number, noAssert?: boolean): number; + readUInt16LE(offset: number, noAssert?: boolean): number; + readUInt16BE(offset: number, noAssert?: boolean): number; + readUInt32LE(offset: number, noAssert?: boolean): number; + readUInt32BE(offset: number, noAssert?: boolean): number; + readInt8(offset: number, noAssert?: boolean): number; + readInt16LE(offset: number, noAssert?: boolean): number; + readInt16BE(offset: number, noAssert?: boolean): number; + readInt32LE(offset: number, noAssert?: boolean): number; + readInt32BE(offset: number, noAssert?: boolean): number; + readFloatLE(offset: number, noAssert?: boolean): number; + readFloatBE(offset: number, noAssert?: boolean): number; + readDoubleLE(offset: number, noAssert?: boolean): number; + readDoubleBE(offset: number, noAssert?: boolean): number; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + writeUInt8(value: number, offset: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeInt8(value: number, offset: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset: number, noAssert?: boolean): number; + writeDoubleBE(value: number, offset: number, noAssert?: boolean): number; + fill(value: any, offset?: number, end?: number): this; + indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number; + entries(): IterableIterator<[number, number]>; + includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean; + keys(): IterableIterator; + values(): IterableIterator; + } + + /*@internal*/ + interface Buffer extends NodeBuffer { } + // TODO: GH#18217 Methods on System are often used as if they are certainly defined export interface System { args: string[]; diff --git a/src/compiler/tsconfig.json b/src/compiler/tsconfig.json index 84bedb34b7c..870f7178f59 100644 --- a/src/compiler/tsconfig.json +++ b/src/compiler/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../tsconfig-base", "compilerOptions": { - "outFile": "../../built/local/compiler.js" + "outFile": "../../built/local/compiler/compiler.js" }, "references": [], diff --git a/src/compiler/tsconfig.release.json b/src/compiler/tsconfig.release.json index 39ffc791393..77f906e0904 100644 --- a/src/compiler/tsconfig.release.json +++ b/src/compiler/tsconfig.release.json @@ -1,7 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "outFile": "../../built/local/compiler.release.js", + "outFile": "../../built/local/compiler/compiler.release.js", "removeComments": true, "preserveConstEnums": false } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index b57d4aceeb7..6f2ce33e0b8 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -6024,6 +6024,7 @@ namespace ts { // The above fallback to `object` when there's no args to allow `{}` (as intended), but not the number 2, for example // TODO: Swap to `undefined` for a cleaner API once strictNullChecks is enabled + /* @internal */ type ConcretePragmaSpecs = typeof commentPragmas; /* @internal */ diff --git a/src/jsTyping/tsconfig.json b/src/jsTyping/tsconfig.json index ac5b8b19c29..29207c92605 100644 --- a/src/jsTyping/tsconfig.json +++ b/src/jsTyping/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../tsconfig-base", "compilerOptions": { - "outFile": "../../built/local/jsTyping.js", + "outFile": "../../built/local/jsTyping/jsTyping.js", "types": [ "node" ], diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index e9d97f6e03c..43814ebbe9d 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -335,6 +335,7 @@ namespace ts.server { RootOfInferredProjectFalse = "Open file was set as not inferred root", } + /*@internal*/ interface ConfigFileExistenceInfo { /** * Cached value of existence of config file diff --git a/src/server/tsconfig.json b/src/server/tsconfig.json index 86d205d3bb1..5a3720ce737 100644 --- a/src/server/tsconfig.json +++ b/src/server/tsconfig.json @@ -1,8 +1,8 @@ { "extends": "../tsconfig-base", "compilerOptions": { - "removeComments": true, - "outFile": "../../built/local/server.js", + "removeComments": false, + "outFile": "../../built/local/server/server.js", "preserveConstEnums": true, "types": [ "node" diff --git a/src/services/codefixes/generateTypes.ts b/src/services/codefixes/generateTypes.ts index 040d58c8e11..53c474f5d35 100644 --- a/src/services/codefixes/generateTypes.ts +++ b/src/services/codefixes/generateTypes.ts @@ -16,6 +16,7 @@ namespace ts { return textChanges.getNewFileText(toStatements(valueInfo, outputKind), ScriptKind.TS, formatSettings.newLineCharacter || "\n", formatting.getFormatContext(formatSettings)); } + /* @internal */ const enum OutputKind { ExportEquals, NamedExport, NamespaceMember, Global } function toNamespaceMemberStatements(info: ValueInfo): ReadonlyArray { return toStatements(info, OutputKind.NamespaceMember); diff --git a/src/services/tsconfig.json b/src/services/tsconfig.json index 21be663055a..c3a089ddaf7 100644 --- a/src/services/tsconfig.json +++ b/src/services/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../tsconfig-base", "compilerOptions": { - "outFile": "../../built/local/services.js" + "outFile": "../../built/local/services/services.js" }, "references": [ { "path": "../compiler" }, diff --git a/src/tsconfig-library-base.json b/src/tsconfig-library-base.json new file mode 100644 index 00000000000..1ec945796ee --- /dev/null +++ b/src/tsconfig-library-base.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig-base", + "compilerOptions": { + "declarationMap": false, + "composite": false, + "declaration": true, + "stripInternal": true + } +} diff --git a/src/tsserverlibrary/tsconfig.json b/src/tsserverlibrary/tsconfig.json new file mode 100644 index 00000000000..bb9bbeed72d --- /dev/null +++ b/src/tsserverlibrary/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../tsconfig-library-base", + "compilerOptions": { + "outFile": "../../built/local/tsserverlibrary/tsserverlibrary.js" + }, + "files": [ + "tsserverlibrary.ts" + ], + "references": [ + { "path": "../compiler", "prepend": true }, + { "path": "../jsTyping", "prepend": true }, + { "path": "../services", "prepend": true }, + { "path": "../server", "prepend": true } + ] +} diff --git a/src/tsserverlibrary/tsserverlibrary.ts b/src/tsserverlibrary/tsserverlibrary.ts new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/typescriptServices/tsconfig.json b/src/typescriptServices/tsconfig.json new file mode 100644 index 00000000000..565c03ba335 --- /dev/null +++ b/src/typescriptServices/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../tsconfig-library-base", + "compilerOptions": { + "outFile": "../../built/local/typescriptServices/typescriptServices.js" + }, + "files": [ + "typescriptServices.ts" + ], + "references": [ + { "path": "../compiler", "prepend": true }, + { "path": "../jsTyping", "prepend": true }, + { "path": "../services", "prepend": true } + ] +} diff --git a/src/typescriptServices/typescriptServices.ts b/src/typescriptServices/typescriptServices.ts new file mode 100644 index 00000000000..e69de29bb2d