From 29eac1be2aade1f2f1e0650649e3ebce402fec0e Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Thu, 4 May 2023 13:58:29 -0700
Subject: [PATCH 1/7] Test for checkJs
---
.../unittests/tscWatch/programUpdates.ts | 36 ++++
.../when-changing-`checkJs`-of-config-file.js | 172 ++++++++++++++++++
2 files changed, 208 insertions(+)
create mode 100644 tests/baselines/reference/tscWatch/programUpdates/when-changing-`checkJs`-of-config-file.js
diff --git a/src/testRunner/unittests/tscWatch/programUpdates.ts b/src/testRunner/unittests/tscWatch/programUpdates.ts
index 229aadd9e1501..f5c5c35507197 100644
--- a/src/testRunner/unittests/tscWatch/programUpdates.ts
+++ b/src/testRunner/unittests/tscWatch/programUpdates.ts
@@ -2047,4 +2047,40 @@ import { x } from "../b";`),
},
]
});
+
+ verifyTscWatch({
+ scenario,
+ subScenario: "when changing `checkJs` of config file",
+ commandLineArgs: ["-w", "-p", ".", "--extendedDiagnostics"],
+ sys: () => {
+ const module1: File = {
+ path: `/user/username/projects/myproject/a.js`,
+ content: `export const aNumber: number = "string"`
+ };
+ const module2: File = {
+ path: `/user/username/projects/myproject/b.ts`,
+ content: `import { aNumber } from "./a.js";`
+ };
+ const config: File = {
+ path: `/user/username/projects/myproject/tsconfig.json`,
+ content: JSON.stringify({
+ compilerOptions: {
+ checkJs: false
+ }
+ }),
+ };
+ return createWatchedSystem([module1, module2, config, libFile], { currentDirectory: "/user/username/projects/myproject" });
+ },
+ edits: [
+ {
+ caption: "Change checkJs to true",
+ edit: sys => sys.writeFile(`/user/username/projects/myproject/tsconfig.json`, JSON.stringify({
+ compilerOptions: {
+ checkJs: true
+ }
+ })),
+ timeouts: sys => sys.runQueuedTimeoutCallbacks(),
+ },
+ ]
+ });
});
diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-changing-`checkJs`-of-config-file.js b/tests/baselines/reference/tscWatch/programUpdates/when-changing-`checkJs`-of-config-file.js
new file mode 100644
index 0000000000000..0fad28c4e73e5
--- /dev/null
+++ b/tests/baselines/reference/tscWatch/programUpdates/when-changing-`checkJs`-of-config-file.js
@@ -0,0 +1,172 @@
+currentDirectory:: /user/username/projects/myproject useCaseSensitiveFileNames: false
+Input::
+//// [/user/username/projects/myproject/a.js]
+export const aNumber: number = "string"
+
+//// [/user/username/projects/myproject/b.ts]
+import { aNumber } from "./a.js";
+
+//// [/user/username/projects/myproject/tsconfig.json]
+{"compilerOptions":{"checkJs":false}}
+
+//// [/a/lib/lib.d.ts]
+///
+interface Boolean {}
+interface Function {}
+interface CallableFunction {}
+interface NewableFunction {}
+interface IArguments {}
+interface Number { toExponential: any; }
+interface Object {}
+interface RegExp {}
+interface String { charAt: any; }
+interface Array { length: number; [n: number]: T; }
+
+
+/a/lib/tsc.js -w -p . --extendedDiagnostics
+Output::
+[[90m12:00:23 AM[0m] Starting compilation in watch mode...
+
+Current directory: /user/username/projects/myproject CaseSensitiveFileNames: false
+FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/tsconfig.json 2000 undefined Config file
+Synchronizing program
+CreatingProgramWith::
+ roots: ["/user/username/projects/myproject/b.ts"]
+ options: {"checkJs":false,"watch":true,"project":"/user/username/projects/myproject","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
+FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b.ts 250 undefined Source file
+DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/a.js 1 undefined Failed Lookup Locations
+Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/a.js 1 undefined Failed Lookup Locations
+DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Failed Lookup Locations
+Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Failed Lookup Locations
+FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 250 undefined Source file
+DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Type roots
+Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Type roots
+DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules/@types 1 undefined Type roots
+Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules/@types 1 undefined Type roots
+DirectoryWatcher:: Triggered with /user/username/projects/myproject/b.js :: WatchInfo: /user/username/projects/myproject 0 undefined Failed Lookup Locations
+Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/b.js :: WatchInfo: /user/username/projects/myproject 0 undefined Failed Lookup Locations
+[[90m12:00:26 AM[0m] Found 0 errors. Watching for file changes.
+
+DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory
+Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory
+
+
+Program root files: ["/user/username/projects/myproject/b.ts"]
+Program options: {"checkJs":false,"watch":true,"project":"/user/username/projects/myproject","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
+Program structureReused: Not
+Program files::
+/a/lib/lib.d.ts
+/user/username/projects/myproject/b.ts
+
+Semantic diagnostics in builder refreshed for::
+/a/lib/lib.d.ts
+/user/username/projects/myproject/b.ts
+
+Shape signatures in builder refreshed for::
+/a/lib/lib.d.ts (used version)
+/user/username/projects/myproject/b.ts (used version)
+
+PolledWatches::
+/user/username/projects/myproject/a.js: *new*
+ {"pollingInterval":500}
+/user/username/projects/myproject/node_modules/@types: *new*
+ {"pollingInterval":500}
+/user/username/projects/node_modules/@types: *new*
+ {"pollingInterval":500}
+
+FsWatches::
+/user/username/projects/myproject/tsconfig.json: *new*
+ {}
+/user/username/projects/myproject/b.ts: *new*
+ {}
+/user/username/projects/myproject: *new*
+ {}
+/a/lib/lib.d.ts: *new*
+ {}
+
+FsWatchesRecursive::
+/user/username/projects/myproject: *new*
+ {}
+
+exitCode:: ExitStatus.undefined
+
+//// [/user/username/projects/myproject/b.js]
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+
+
+
+Change:: Change checkJs to true
+
+Input::
+//// [/user/username/projects/myproject/tsconfig.json]
+{"compilerOptions":{"checkJs":true}}
+
+
+Before running Timeout callback:: count: 1
+1: timerToUpdateProgram
+After running Timeout callback:: count: 0
+Output::
+FileWatcher:: Triggered with /user/username/projects/myproject/tsconfig.json 1:: WatchInfo: /user/username/projects/myproject/tsconfig.json 2000 undefined Config file
+Scheduling update
+Elapsed:: *ms FileWatcher:: Triggered with /user/username/projects/myproject/tsconfig.json 1:: WatchInfo: /user/username/projects/myproject/tsconfig.json 2000 undefined Config file
+Reloading config file: /user/username/projects/myproject/tsconfig.json
+Synchronizing program
+[[90m12:00:30 AM[0m] File change detected. Starting incremental compilation...
+
+CreatingProgramWith::
+ roots: ["/user/username/projects/myproject/a.js","/user/username/projects/myproject/b.ts"]
+ options: {"checkJs":true,"watch":true,"project":"/user/username/projects/myproject","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
+FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/a.js 250 undefined Source file
+[96ma.js[0m:[93m1[0m:[93m23[0m - [91merror[0m[90m TS8010: [0mType annotations can only be used in TypeScript files.
+
+[7m1[0m export const aNumber: number = "string"
+[7m [0m [91m ~~~~~~[0m
+
+[[90m12:00:34 AM[0m] Found 1 error. Watching for file changes.
+
+
+
+Program root files: ["/user/username/projects/myproject/a.js","/user/username/projects/myproject/b.ts"]
+Program options: {"checkJs":true,"watch":true,"project":"/user/username/projects/myproject","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"}
+Program structureReused: Not
+Program files::
+/a/lib/lib.d.ts
+/user/username/projects/myproject/a.js
+/user/username/projects/myproject/b.ts
+
+Semantic diagnostics in builder refreshed for::
+/user/username/projects/myproject/a.js
+/user/username/projects/myproject/b.ts
+
+Shape signatures in builder refreshed for::
+/user/username/projects/myproject/a.js (computed .d.ts)
+/user/username/projects/myproject/b.ts (computed .d.ts)
+
+PolledWatches::
+/user/username/projects/myproject/a.js:
+ {"pollingInterval":500}
+/user/username/projects/myproject/node_modules/@types:
+ {"pollingInterval":500}
+/user/username/projects/node_modules/@types:
+ {"pollingInterval":500}
+
+FsWatches::
+/user/username/projects/myproject/tsconfig.json:
+ {}
+/user/username/projects/myproject/b.ts:
+ {}
+/user/username/projects/myproject:
+ {}
+/a/lib/lib.d.ts:
+ {}
+/user/username/projects/myproject/a.js: *new*
+ {}
+
+FsWatchesRecursive::
+/user/username/projects/myproject:
+ {}
+
+exitCode:: ExitStatus.undefined
+
+//// [/user/username/projects/myproject/b.js] file written with same contents
From 7dc8f01aeb32ce926f787173a9898d964a327a3f Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Mon, 20 Mar 2023 18:38:56 -0700
Subject: [PATCH 2/7] Mark more options as affecting errors/resolution
---
src/compiler/commandLineParser.ts | 4 +++
...based-projects-and-emits-them-correctly.js | 10 +++++---
...ved-json-files-and-emits-them-correctly.js | 15 ++++++-----
...rojects-and-concatenates-them-correctly.js | 25 +++++++++++--------
.../updates-emit-on-jsx-option-change.js | 2 ++
.../when-changing-`checkJs`-of-config-file.js | 4 +--
6 files changed, 37 insertions(+), 23 deletions(-)
diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts
index 3b2120d258c8c..b30d9c9cf3e77 100644
--- a/src/compiler/commandLineParser.ts
+++ b/src/compiler/commandLineParser.ts
@@ -652,6 +652,9 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
{
name: "checkJs",
type: "boolean",
+ affectsBuildInfo: true,
+ affectsModuleResolution: true,
+ affectsSemanticDiagnostics: true,
showInSimplifiedHelpView: true,
category: Diagnostics.JavaScript_Support,
description: Diagnostics.Enable_error_reporting_in_type_checked_JavaScript_files,
@@ -664,6 +667,7 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
affectsEmit: true,
affectsBuildInfo: true,
affectsModuleResolution: true,
+ affectsSemanticDiagnostics: true,
paramType: Diagnostics.KIND,
showInSimplifiedHelpView: true,
category: Diagnostics.Language_and_Environment,
diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-and-emits-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-and-emits-them-correctly.js
index e667e5d5af14b..f4a3548418df0 100644
--- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-and-emits-them-correctly.js
+++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-and-emits-them-correctly.js
@@ -142,7 +142,7 @@ module.exports = {};
//// [/lib/common/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../lib.d.ts","../../src/common/nominal.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},{"version":"-9003723607-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\nmodule.exports = {};\n","signature":"-13020584488-export type Nominal = T & {\n [Symbol.species]: Name;\n};\n"}],"root":[2],"options":{"composite":true,"declaration":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"latestChangedDtsFile":"./nominal.d.ts"},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../lib.d.ts","../../src/common/nominal.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},{"version":"-9003723607-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\nmodule.exports = {};\n","signature":"-13020584488-export type Nominal = T & {\n [Symbol.species]: Name;\n};\n"}],"root":[2],"options":{"checkJs":true,"composite":true,"declaration":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"latestChangedDtsFile":"./nominal.d.ts"},"version":"FakeTSVersion"}
//// [/lib/common/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -177,6 +177,7 @@ module.exports = {};
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"outDir": "..",
@@ -192,11 +193,11 @@ module.exports = {};
"latestChangedDtsFile": "./nominal.d.ts"
},
"version": "FakeTSVersion",
- "size": 1266
+ "size": 1281
}
//// [/lib/sub-project/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../lib.d.ts","../common/nominal.d.ts","../../src/sub-project/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"-13020584488-export type Nominal = T & {\n [Symbol.species]: Name;\n};\n","-23375763082-import { Nominal } from '../common/nominal';\n\n/**\n * @typedef {Nominal} MyNominal\n */\n"],"root":[3],"options":{"composite":true,"declaration":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[2,1,[3,[{"file":"../../src/sub-project/index.js","start":9,"length":7,"messageText":"'Nominal' is a type and cannot be imported in JavaScript files. Use 'import(\"../common/nominal\").Nominal' in a JSDoc type annotation.","category":1,"code":18042}]]],"affectedFilesPendingEmit":[3],"emitSignatures":[3]},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../lib.d.ts","../common/nominal.d.ts","../../src/sub-project/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"-13020584488-export type Nominal = T & {\n [Symbol.species]: Name;\n};\n","-23375763082-import { Nominal } from '../common/nominal';\n\n/**\n * @typedef {Nominal} MyNominal\n */\n"],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[2,1,[3,[{"file":"../../src/sub-project/index.js","start":9,"length":7,"messageText":"'Nominal' is a type and cannot be imported in JavaScript files. Use 'import(\"../common/nominal\").Nominal' in a JSDoc type annotation.","category":1,"code":18042}]]],"affectedFilesPendingEmit":[3],"emitSignatures":[3]},"version":"FakeTSVersion"}
//// [/lib/sub-project/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -237,6 +238,7 @@ module.exports = {};
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"outDir": "..",
@@ -281,6 +283,6 @@ module.exports = {};
]
},
"version": "FakeTSVersion",
- "size": 1566
+ "size": 1581
}
diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-with-non-moved-json-files-and-emits-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-with-non-moved-json-files-and-emits-them-correctly.js
index a97837dfd3c76..a17dd129a7a20 100644
--- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-with-non-moved-json-files-and-emits-them-correctly.js
+++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-with-non-moved-json-files-and-emits-them-correctly.js
@@ -137,7 +137,7 @@ exports.m = common_1.default;
//// [/out/sub-project/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../../lib/lib.d.ts","../../src/common/obj.json","../../src/common/index.d.ts","../../src/sub-project/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"2151907832-{\n \"val\": 42\n}","-5032674136-import x = require(\"./obj.json\");\nexport = x;\n",{"version":"-14684157955-import mod from '../common';\n\nexport const m = mod;\n","signature":"-12566182521-export const m: {\n val: number;\n};\n"}],"root":[4],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2],[3]],"referencedMap":[[3,1],[4,2]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,3,2,4],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../../lib/lib.d.ts","../../src/common/obj.json","../../src/common/index.d.ts","../../src/sub-project/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"2151907832-{\n \"val\": 42\n}","-5032674136-import x = require(\"./obj.json\");\nexport = x;\n",{"version":"-14684157955-import mod from '../common';\n\nexport const m = mod;\n","signature":"-12566182521-export const m: {\n val: number;\n};\n"}],"root":[4],"options":{"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2],[3]],"referencedMap":[[3,1],[4,2]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,3,2,4],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
//// [/out/sub-project/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -190,6 +190,7 @@ exports.m = common_1.default;
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"esModuleInterop": true,
@@ -219,7 +220,7 @@ exports.m = common_1.default;
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
- "size": 1419
+ "size": 1434
}
//// [/out/sub-project-2/index.d.ts]
@@ -245,7 +246,7 @@ exports.getVar = getVar;
//// [/out/sub-project-2/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/index.d.ts","../../src/sub-project-2/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"-12566182521-export const m: {\n val: number;\n};\n",{"version":"13545386800-import { m } from '../sub-project/index';\n\nconst variable = {\n key: m,\n};\n\nexport function getVar() {\n return variable;\n}\n","signature":"2403991005-export function getVar(): {\n key: {\n val: number;\n };\n};\n"}],"root":[3],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/index.d.ts","../../src/sub-project-2/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"-12566182521-export const m: {\n val: number;\n};\n",{"version":"13545386800-import { m } from '../sub-project/index';\n\nconst variable = {\n key: m,\n};\n\nexport function getVar() {\n return variable;\n}\n","signature":"2403991005-export function getVar(): {\n key: {\n val: number;\n };\n};\n"}],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
//// [/out/sub-project-2/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -290,6 +291,7 @@ exports.getVar = getVar;
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"esModuleInterop": true,
@@ -311,7 +313,7 @@ exports.getVar = getVar;
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
- "size": 1444
+ "size": 1459
}
//// [/src/common/index.d.ts]
@@ -326,7 +328,7 @@ module.exports = x;
//// [/src/common/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../../lib/lib.d.ts","./obj.json","./index.ts"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"2151907832-{\n \"val\": 42\n}","-5032674136-import x = require(\"./obj.json\");\nexport = x;\n"],"root":[2,3],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"../..","rootDir":"..","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,3,2],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../../lib/lib.d.ts","./obj.json","./index.ts"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"2151907832-{\n \"val\": 42\n}","-5032674136-import x = require(\"./obj.json\");\nexport = x;\n"],"root":[2,3],"options":{"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"../..","rootDir":"..","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,3,2],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
//// [/src/common/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -371,6 +373,7 @@ module.exports = x;
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"esModuleInterop": true,
@@ -396,6 +399,6 @@ module.exports = x;
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
- "size": 1188
+ "size": 1203
}
diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/modifies-outfile-js-projects-and-concatenates-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/modifies-outfile-js-projects-and-concatenates-them-correctly.js
index 278911c047efd..bbb375c9a58d6 100644
--- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/modifies-outfile-js-projects-and-concatenates-them-correctly.js
+++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/modifies-outfile-js-projects-and-concatenates-them-correctly.js
@@ -138,7 +138,7 @@ type Nominal = T & {
//// [/src/common/common.tsbuildinfo]
-{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./nominal.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"text"}],"hash":"-1932521178-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"text"}],"hash":"-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n"}},"program":{"fileNames":["../../lib/lib.d.ts","./nominal.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-1932521178-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n"],"root":[2],"options":{"composite":true,"declaration":true,"outFile":"./common.js","rootDir":"..","skipLibCheck":true},"outSignature":"-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","latestChangedDtsFile":"./common.d.ts"},"version":"FakeTSVersion"}
+{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./nominal.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"text"}],"hash":"-1932521178-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"text"}],"hash":"-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n"}},"program":{"fileNames":["../../lib/lib.d.ts","./nominal.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-1932521178-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n"],"root":[2],"options":{"checkJs":true,"composite":true,"declaration":true,"outFile":"./common.js","rootDir":"..","skipLibCheck":true},"outSignature":"-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","latestChangedDtsFile":"./common.d.ts"},"version":"FakeTSVersion"}
//// [/src/common/common.tsbuildinfo.baseline.txt]
======================================================================
@@ -205,6 +205,7 @@ type Nominal = T & {
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"outFile": "./common.js",
@@ -215,7 +216,7 @@ type Nominal = T & {
"latestChangedDtsFile": "./common.d.ts"
},
"version": "FakeTSVersion",
- "size": 1477
+ "size": 1492
}
//// [/src/sub-project/sub-project.d.ts]
@@ -241,7 +242,7 @@ var c = /** @type {*} */ (null);
//// [/src/sub-project/sub-project.tsbuildinfo]
-{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"prepend","data":"../common/common.js","texts":[{"pos":0,"end":80,"kind":"text"}]},{"pos":80,"end":174,"kind":"text"}],"hash":"-7871970258-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (null);\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"prepend","data":"../common/common.d.ts","texts":[{"pos":0,"end":61,"kind":"text"}]},{"pos":61,"end":191,"kind":"text"}],"hash":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../common/common.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","2691219051-/**\n * @typedef {Nominal} MyNominal\n */\nconst c = /** @type {*} */(null);\n"],"root":[3],"options":{"composite":true,"declaration":true,"outFile":"./sub-project.js","rootDir":"..","skipLibCheck":true},"outSignature":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","latestChangedDtsFile":"./sub-project.d.ts"},"version":"FakeTSVersion"}
+{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"prepend","data":"../common/common.js","texts":[{"pos":0,"end":80,"kind":"text"}]},{"pos":80,"end":174,"kind":"text"}],"hash":"-7871970258-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (null);\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"prepend","data":"../common/common.d.ts","texts":[{"pos":0,"end":61,"kind":"text"}]},{"pos":61,"end":191,"kind":"text"}],"hash":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../common/common.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","2691219051-/**\n * @typedef {Nominal} MyNominal\n */\nconst c = /** @type {*} */(null);\n"],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"outFile":"./sub-project.js","rootDir":"..","skipLibCheck":true},"outSignature":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","latestChangedDtsFile":"./sub-project.d.ts"},"version":"FakeTSVersion"}
//// [/src/sub-project/sub-project.tsbuildinfo.baseline.txt]
======================================================================
@@ -355,6 +356,7 @@ type MyNominal = Nominal;
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"outFile": "./sub-project.js",
@@ -365,7 +367,7 @@ type MyNominal = Nominal;
"latestChangedDtsFile": "./sub-project.d.ts"
},
"version": "FakeTSVersion",
- "size": 2189
+ "size": 2204
}
//// [/src/sub-project-2/sub-project-2.d.ts]
@@ -407,7 +409,7 @@ function getVar() {
//// [/src/sub-project-2/sub-project-2.tsbuildinfo]
-{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":174,"kind":"prepend","data":"../sub-project/sub-project.js","texts":[{"pos":0,"end":174,"kind":"text"}]},{"pos":174,"end":322,"kind":"text"}],"hash":"-4809651809-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (null);\nvar variable = {\n key: /** @type {MyNominal} */ ('value'),\n};\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"},"dts":{"sections":[{"pos":0,"end":191,"kind":"prepend","data":"../sub-project/sub-project.d.ts","texts":[{"pos":0,"end":191,"kind":"text"}]},{"pos":191,"end":339,"kind":"text"}],"hash":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/sub-project.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","2078909278-const variable = {\n key: /** @type {MyNominal} */('value'),\n};\n\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"],"root":[3],"options":{"composite":true,"declaration":true,"outFile":"./sub-project-2.js","rootDir":"..","skipLibCheck":true},"outSignature":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n","latestChangedDtsFile":"./sub-project-2.d.ts"},"version":"FakeTSVersion"}
+{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":174,"kind":"prepend","data":"../sub-project/sub-project.js","texts":[{"pos":0,"end":174,"kind":"text"}]},{"pos":174,"end":322,"kind":"text"}],"hash":"-4809651809-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (null);\nvar variable = {\n key: /** @type {MyNominal} */ ('value'),\n};\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"},"dts":{"sections":[{"pos":0,"end":191,"kind":"prepend","data":"../sub-project/sub-project.d.ts","texts":[{"pos":0,"end":191,"kind":"text"}]},{"pos":191,"end":339,"kind":"text"}],"hash":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/sub-project.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","2078909278-const variable = {\n key: /** @type {MyNominal} */('value'),\n};\n\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"outFile":"./sub-project-2.js","rootDir":"..","skipLibCheck":true},"outSignature":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n","latestChangedDtsFile":"./sub-project-2.d.ts"},"version":"FakeTSVersion"}
//// [/src/sub-project-2/sub-project-2.tsbuildinfo.baseline.txt]
======================================================================
@@ -537,6 +539,7 @@ declare namespace variable {
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"outFile": "./sub-project-2.js",
@@ -547,7 +550,7 @@ declare namespace variable {
"latestChangedDtsFile": "./sub-project-2.d.ts"
},
"version": "FakeTSVersion",
- "size": 2889
+ "size": 2904
}
@@ -580,7 +583,7 @@ var c = /** @type {*} */ (undefined);
//// [/src/sub-project/sub-project.tsbuildinfo]
-{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"prepend","data":"../common/common.js","texts":[{"pos":0,"end":80,"kind":"text"}]},{"pos":80,"end":179,"kind":"text"}],"hash":"-8079555643-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (undefined);\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"prepend","data":"../common/common.d.ts","texts":[{"pos":0,"end":61,"kind":"text"}]},{"pos":61,"end":191,"kind":"text"}],"hash":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../common/common.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","7546612770-/**\n * @typedef {Nominal} MyNominal\n */\nconst c = /** @type {*} */(undefined);\n"],"root":[3],"options":{"composite":true,"declaration":true,"outFile":"./sub-project.js","rootDir":"..","skipLibCheck":true},"outSignature":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","latestChangedDtsFile":"./sub-project.d.ts"},"version":"FakeTSVersion"}
+{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"prepend","data":"../common/common.js","texts":[{"pos":0,"end":80,"kind":"text"}]},{"pos":80,"end":179,"kind":"text"}],"hash":"-8079555643-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (undefined);\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"prepend","data":"../common/common.d.ts","texts":[{"pos":0,"end":61,"kind":"text"}]},{"pos":61,"end":191,"kind":"text"}],"hash":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../common/common.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","7546612770-/**\n * @typedef {Nominal} MyNominal\n */\nconst c = /** @type {*} */(undefined);\n"],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"outFile":"./sub-project.js","rootDir":"..","skipLibCheck":true},"outSignature":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","latestChangedDtsFile":"./sub-project.d.ts"},"version":"FakeTSVersion"}
//// [/src/sub-project/sub-project.tsbuildinfo.baseline.txt]
======================================================================
@@ -694,6 +697,7 @@ type MyNominal = Nominal;
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"outFile": "./sub-project.js",
@@ -704,7 +708,7 @@ type MyNominal = Nominal;
"latestChangedDtsFile": "./sub-project.d.ts"
},
"version": "FakeTSVersion",
- "size": 2199
+ "size": 2214
}
//// [/src/sub-project-2/sub-project-2.js]
@@ -728,7 +732,7 @@ function getVar() {
//// [/src/sub-project-2/sub-project-2.tsbuildinfo]
-{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":179,"kind":"prepend","data":"../sub-project/sub-project.js","texts":[{"pos":0,"end":179,"kind":"text"}]},{"pos":179,"end":327,"kind":"text"}],"hash":"-26783073610-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (undefined);\nvar variable = {\n key: /** @type {MyNominal} */ ('value'),\n};\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"},"dts":{"sections":[{"pos":0,"end":191,"kind":"prepend","data":"../sub-project/sub-project.d.ts","texts":[{"pos":0,"end":191,"kind":"text"}]},{"pos":191,"end":339,"kind":"text"}],"hash":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/sub-project.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","2078909278-const variable = {\n key: /** @type {MyNominal} */('value'),\n};\n\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"],"root":[3],"options":{"composite":true,"declaration":true,"outFile":"./sub-project-2.js","rootDir":"..","skipLibCheck":true},"outSignature":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n","latestChangedDtsFile":"./sub-project-2.d.ts"},"version":"FakeTSVersion"}
+{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":179,"kind":"prepend","data":"../sub-project/sub-project.js","texts":[{"pos":0,"end":179,"kind":"text"}]},{"pos":179,"end":327,"kind":"text"}],"hash":"-26783073610-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (undefined);\nvar variable = {\n key: /** @type {MyNominal} */ ('value'),\n};\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"},"dts":{"sections":[{"pos":0,"end":191,"kind":"prepend","data":"../sub-project/sub-project.d.ts","texts":[{"pos":0,"end":191,"kind":"text"}]},{"pos":191,"end":339,"kind":"text"}],"hash":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/sub-project.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","2078909278-const variable = {\n key: /** @type {MyNominal} */('value'),\n};\n\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"outFile":"./sub-project-2.js","rootDir":"..","skipLibCheck":true},"outSignature":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n","latestChangedDtsFile":"./sub-project-2.d.ts"},"version":"FakeTSVersion"}
//// [/src/sub-project-2/sub-project-2.tsbuildinfo.baseline.txt]
======================================================================
@@ -858,6 +862,7 @@ declare namespace variable {
]
],
"options": {
+ "checkJs": true,
"composite": true,
"declaration": true,
"outFile": "./sub-project-2.js",
@@ -868,6 +873,6 @@ declare namespace variable {
"latestChangedDtsFile": "./sub-project-2.d.ts"
},
"version": "FakeTSVersion",
- "size": 2895
+ "size": 2910
}
diff --git a/tests/baselines/reference/tscWatch/programUpdates/updates-emit-on-jsx-option-change.js b/tests/baselines/reference/tscWatch/programUpdates/updates-emit-on-jsx-option-change.js
index 647886b443209..804393abf0537 100644
--- a/tests/baselines/reference/tscWatch/programUpdates/updates-emit-on-jsx-option-change.js
+++ b/tests/baselines/reference/tscWatch/programUpdates/updates-emit-on-jsx-option-change.js
@@ -96,6 +96,8 @@ Program files::
/user/username/projects/myproject/index.tsx
Semantic diagnostics in builder refreshed for::
+/a/lib/lib.d.ts
+/user/username/projects/myproject/index.tsx
No shapes updated in the builder::
diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-changing-`checkJs`-of-config-file.js b/tests/baselines/reference/tscWatch/programUpdates/when-changing-`checkJs`-of-config-file.js
index 0fad28c4e73e5..ca2598b3a46a1 100644
--- a/tests/baselines/reference/tscWatch/programUpdates/when-changing-`checkJs`-of-config-file.js
+++ b/tests/baselines/reference/tscWatch/programUpdates/when-changing-`checkJs`-of-config-file.js
@@ -135,9 +135,7 @@ Program files::
/user/username/projects/myproject/a.js
/user/username/projects/myproject/b.ts
-Semantic diagnostics in builder refreshed for::
-/user/username/projects/myproject/a.js
-/user/username/projects/myproject/b.ts
+No cached semantic diagnostics in the builder::
Shape signatures in builder refreshed for::
/user/username/projects/myproject/a.js (computed .d.ts)
From e195a0a25a569ca915f91d04466c82cc70620ff7 Mon Sep 17 00:00:00 2001
From: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
Date: Fri, 5 May 2023 10:57:34 -0700
Subject: [PATCH 3/7] Drop some unused options
---
src/compiler/commandLineParser.ts | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts
index b30d9c9cf3e77..ca9ef126641c2 100644
--- a/src/compiler/commandLineParser.ts
+++ b/src/compiler/commandLineParser.ts
@@ -643,7 +643,6 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
{
name: "allowJs",
type: "boolean",
- affectsModuleResolution: true,
showInSimplifiedHelpView: true,
category: Diagnostics.JavaScript_Support,
description: Diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files,
@@ -653,7 +652,6 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
name: "checkJs",
type: "boolean",
affectsBuildInfo: true,
- affectsModuleResolution: true,
affectsSemanticDiagnostics: true,
showInSimplifiedHelpView: true,
category: Diagnostics.JavaScript_Support,
From 79fc5015e93e45b9b3029ea575f4d64496c2dbaf Mon Sep 17 00:00:00 2001
From: Sheetal Nandi
Date: Tue, 12 Sep 2023 13:07:26 -0700
Subject: [PATCH 4/7] checkJsValue
---
src/compiler/commandLineParser.ts | 6 +-
src/compiler/types.ts | 1 +
src/compiler/utilities.ts | 4 +-
.../unittests/tscWatch/programUpdates.ts | 26 +--
...based-projects-and-emits-them-correctly.js | 10 +-
...ved-json-files-and-emits-them-correctly.js | 15 +-
...rojects-and-concatenates-them-correctly.js | 25 +--
...n-no-files-are-emitted-with-incremental.js | 14 +-
.../when-changing-checkJs-of-config-file.js | 170 ++++++++++++++++++
9 files changed, 233 insertions(+), 38 deletions(-)
create mode 100644 tests/baselines/reference/tscWatch/programUpdates/when-changing-checkJs-of-config-file.js
diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts
index f2b8797dcbab8..eeb347eaf5df9 100644
--- a/src/compiler/commandLineParser.ts
+++ b/src/compiler/commandLineParser.ts
@@ -647,6 +647,8 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
{
name: "allowJs",
type: "boolean",
+ allowJsFlag: true,
+ affectsBuildInfo: true,
showInSimplifiedHelpView: true,
category: Diagnostics.JavaScript_Support,
description: Diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files,
@@ -655,9 +657,9 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
{
name: "checkJs",
type: "boolean",
- affectsBuildInfo: true,
- affectsSemanticDiagnostics: true,
affectsModuleResolution: true,
+ affectsSemanticDiagnostics: true,
+ affectsBuildInfo: true,
showInSimplifiedHelpView: true,
category: Diagnostics.JavaScript_Support,
description: Diagnostics.Enable_error_reporting_in_type_checked_JavaScript_files,
diff --git a/src/compiler/types.ts b/src/compiler/types.ts
index 56b0009e53a9f..3bc7537601477 100644
--- a/src/compiler/types.ts
+++ b/src/compiler/types.ts
@@ -7349,6 +7349,7 @@ export interface CommandLineOptionBase {
showInSimplifiedHelpView?: boolean;
category?: DiagnosticMessage;
strictFlag?: true; // true if the option is one of the flag under strict
+ allowJsFlag?: true;
affectsSourceFile?: true; // true if we should recreate SourceFiles after this option changes
affectsModuleResolution?: true; // currently same effect as `affectsSourceFile`
affectsBindDiagnostics?: true; // true if this affects binding (currently same effect as `affectsSourceFile`)
diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts
index 4d63c9124a7ac..209d9fd49d8e1 100644
--- a/src/compiler/utilities.ts
+++ b/src/compiler/utilities.ts
@@ -8784,7 +8784,9 @@ export function compilerOptionsAffectDeclarationPath(newOptions: CompilerOptions
/** @internal */
export function getCompilerOptionValue(options: CompilerOptions, option: CommandLineOption): unknown {
- return option.strictFlag ? getStrictOptionValue(options, option.name as StrictOptionName) : options[option.name];
+ return option.strictFlag ? getStrictOptionValue(options, option.name as StrictOptionName) :
+ option.allowJsFlag ? getAllowJSCompilerOption(options) :
+ options[option.name];
}
/** @internal */
diff --git a/src/testRunner/unittests/tscWatch/programUpdates.ts b/src/testRunner/unittests/tscWatch/programUpdates.ts
index 4dd07cbc6d9d3..b1fe56c06b324 100644
--- a/src/testRunner/unittests/tscWatch/programUpdates.ts
+++ b/src/testRunner/unittests/tscWatch/programUpdates.ts
@@ -2141,23 +2141,23 @@ import { x } from "../b";`,
verifyTscWatch({
scenario,
- subScenario: "when changing `checkJs` of config file",
+ subScenario: "when changing checkJs of config file",
commandLineArgs: ["-w", "-p", ".", "--extendedDiagnostics"],
sys: () => {
const module1: File = {
path: `/user/username/projects/myproject/a.js`,
- content: `export const aNumber: number = "string"`
+ content: `export const aNumber: number = "string"`,
};
const module2: File = {
path: `/user/username/projects/myproject/b.ts`,
- content: `import { aNumber } from "./a.js";`
+ content: `import { aNumber } from "./a.js";`,
};
const config: File = {
path: `/user/username/projects/myproject/tsconfig.json`,
content: JSON.stringify({
compilerOptions: {
- checkJs: false
- }
+ checkJs: false,
+ },
}),
};
return createWatchedSystem([module1, module2, config, libFile], { currentDirectory: "/user/username/projects/myproject" });
@@ -2165,13 +2165,17 @@ import { x } from "../b";`,
edits: [
{
caption: "Change checkJs to true",
- edit: sys => sys.writeFile(`/user/username/projects/myproject/tsconfig.json`, JSON.stringify({
- compilerOptions: {
- checkJs: true
- }
- })),
+ edit: sys =>
+ sys.writeFile(
+ `/user/username/projects/myproject/tsconfig.json`,
+ JSON.stringify({
+ compilerOptions: {
+ checkJs: true,
+ },
+ }),
+ ),
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
},
- ]
+ ],
});
});
diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-and-emits-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-and-emits-them-correctly.js
index f4a3548418df0..8475891dde8d8 100644
--- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-and-emits-them-correctly.js
+++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-and-emits-them-correctly.js
@@ -142,7 +142,7 @@ module.exports = {};
//// [/lib/common/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../lib.d.ts","../../src/common/nominal.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},{"version":"-9003723607-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\nmodule.exports = {};\n","signature":"-13020584488-export type Nominal = T & {\n [Symbol.species]: Name;\n};\n"}],"root":[2],"options":{"checkJs":true,"composite":true,"declaration":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"latestChangedDtsFile":"./nominal.d.ts"},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../lib.d.ts","../../src/common/nominal.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},{"version":"-9003723607-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\nmodule.exports = {};\n","signature":"-13020584488-export type Nominal = T & {\n [Symbol.species]: Name;\n};\n"}],"root":[2],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"latestChangedDtsFile":"./nominal.d.ts"},"version":"FakeTSVersion"}
//// [/lib/common/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -177,6 +177,7 @@ module.exports = {};
]
],
"options": {
+ "allowJs": true,
"checkJs": true,
"composite": true,
"declaration": true,
@@ -193,11 +194,11 @@ module.exports = {};
"latestChangedDtsFile": "./nominal.d.ts"
},
"version": "FakeTSVersion",
- "size": 1281
+ "size": 1296
}
//// [/lib/sub-project/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../lib.d.ts","../common/nominal.d.ts","../../src/sub-project/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"-13020584488-export type Nominal = T & {\n [Symbol.species]: Name;\n};\n","-23375763082-import { Nominal } from '../common/nominal';\n\n/**\n * @typedef {Nominal} MyNominal\n */\n"],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[2,1,[3,[{"file":"../../src/sub-project/index.js","start":9,"length":7,"messageText":"'Nominal' is a type and cannot be imported in JavaScript files. Use 'import(\"../common/nominal\").Nominal' in a JSDoc type annotation.","category":1,"code":18042}]]],"affectedFilesPendingEmit":[3],"emitSignatures":[3]},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../lib.d.ts","../common/nominal.d.ts","../../src/sub-project/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"-13020584488-export type Nominal = T & {\n [Symbol.species]: Name;\n};\n","-23375763082-import { Nominal } from '../common/nominal';\n\n/**\n * @typedef {Nominal} MyNominal\n */\n"],"root":[3],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[2,1,[3,[{"file":"../../src/sub-project/index.js","start":9,"length":7,"messageText":"'Nominal' is a type and cannot be imported in JavaScript files. Use 'import(\"../common/nominal\").Nominal' in a JSDoc type annotation.","category":1,"code":18042}]]],"affectedFilesPendingEmit":[3],"emitSignatures":[3]},"version":"FakeTSVersion"}
//// [/lib/sub-project/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -238,6 +239,7 @@ module.exports = {};
]
],
"options": {
+ "allowJs": true,
"checkJs": true,
"composite": true,
"declaration": true,
@@ -283,6 +285,6 @@ module.exports = {};
]
},
"version": "FakeTSVersion",
- "size": 1581
+ "size": 1596
}
diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-with-non-moved-json-files-and-emits-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-with-non-moved-json-files-and-emits-them-correctly.js
index a17dd129a7a20..37b4cbf53c862 100644
--- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-with-non-moved-json-files-and-emits-them-correctly.js
+++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/loads-js-based-projects-with-non-moved-json-files-and-emits-them-correctly.js
@@ -137,7 +137,7 @@ exports.m = common_1.default;
//// [/out/sub-project/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../../lib/lib.d.ts","../../src/common/obj.json","../../src/common/index.d.ts","../../src/sub-project/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"2151907832-{\n \"val\": 42\n}","-5032674136-import x = require(\"./obj.json\");\nexport = x;\n",{"version":"-14684157955-import mod from '../common';\n\nexport const m = mod;\n","signature":"-12566182521-export const m: {\n val: number;\n};\n"}],"root":[4],"options":{"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2],[3]],"referencedMap":[[3,1],[4,2]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,3,2,4],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../../lib/lib.d.ts","../../src/common/obj.json","../../src/common/index.d.ts","../../src/sub-project/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"2151907832-{\n \"val\": 42\n}","-5032674136-import x = require(\"./obj.json\");\nexport = x;\n",{"version":"-14684157955-import mod from '../common';\n\nexport const m = mod;\n","signature":"-12566182521-export const m: {\n val: number;\n};\n"}],"root":[4],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2],[3]],"referencedMap":[[3,1],[4,2]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,3,2,4],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
//// [/out/sub-project/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -190,6 +190,7 @@ exports.m = common_1.default;
]
],
"options": {
+ "allowJs": true,
"checkJs": true,
"composite": true,
"declaration": true,
@@ -220,7 +221,7 @@ exports.m = common_1.default;
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
- "size": 1434
+ "size": 1449
}
//// [/out/sub-project-2/index.d.ts]
@@ -246,7 +247,7 @@ exports.getVar = getVar;
//// [/out/sub-project-2/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/index.d.ts","../../src/sub-project-2/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"-12566182521-export const m: {\n val: number;\n};\n",{"version":"13545386800-import { m } from '../sub-project/index';\n\nconst variable = {\n key: m,\n};\n\nexport function getVar() {\n return variable;\n}\n","signature":"2403991005-export function getVar(): {\n key: {\n val: number;\n };\n};\n"}],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/index.d.ts","../../src/sub-project-2/index.js"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"-12566182521-export const m: {\n val: number;\n};\n",{"version":"13545386800-import { m } from '../sub-project/index';\n\nconst variable = {\n key: m,\n};\n\nexport function getVar() {\n return variable;\n}\n","signature":"2403991005-export function getVar(): {\n key: {\n val: number;\n };\n};\n"}],"root":[3],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"..","rootDir":"../../src","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
//// [/out/sub-project-2/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -291,6 +292,7 @@ exports.getVar = getVar;
]
],
"options": {
+ "allowJs": true,
"checkJs": true,
"composite": true,
"declaration": true,
@@ -313,7 +315,7 @@ exports.getVar = getVar;
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
- "size": 1459
+ "size": 1474
}
//// [/src/common/index.d.ts]
@@ -328,7 +330,7 @@ module.exports = x;
//// [/src/common/tsconfig.tsbuildinfo]
-{"program":{"fileNames":["../../lib/lib.d.ts","./obj.json","./index.ts"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"2151907832-{\n \"val\": 42\n}","-5032674136-import x = require(\"./obj.json\");\nexport = x;\n"],"root":[2,3],"options":{"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"../..","rootDir":"..","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,3,2],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
+{"program":{"fileNames":["../../lib/lib.d.ts","./obj.json","./index.ts"],"fileInfos":[{"version":"-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","affectsGlobalScope":true},"2151907832-{\n \"val\": 42\n}","-5032674136-import x = require(\"./obj.json\");\nexport = x;\n"],"root":[2,3],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"esModuleInterop":true,"outDir":"../..","rootDir":"..","skipLibCheck":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,3,2],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
//// [/src/common/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@@ -373,6 +375,7 @@ module.exports = x;
]
],
"options": {
+ "allowJs": true,
"checkJs": true,
"composite": true,
"declaration": true,
@@ -399,6 +402,6 @@ module.exports = x;
"latestChangedDtsFile": "./index.d.ts"
},
"version": "FakeTSVersion",
- "size": 1203
+ "size": 1218
}
diff --git a/tests/baselines/reference/tsbuild/javascriptProjectEmit/modifies-outfile-js-projects-and-concatenates-them-correctly.js b/tests/baselines/reference/tsbuild/javascriptProjectEmit/modifies-outfile-js-projects-and-concatenates-them-correctly.js
index bbb375c9a58d6..cf5493e1d4669 100644
--- a/tests/baselines/reference/tsbuild/javascriptProjectEmit/modifies-outfile-js-projects-and-concatenates-them-correctly.js
+++ b/tests/baselines/reference/tsbuild/javascriptProjectEmit/modifies-outfile-js-projects-and-concatenates-them-correctly.js
@@ -138,7 +138,7 @@ type Nominal = T & {
//// [/src/common/common.tsbuildinfo]
-{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./nominal.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"text"}],"hash":"-1932521178-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"text"}],"hash":"-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n"}},"program":{"fileNames":["../../lib/lib.d.ts","./nominal.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-1932521178-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n"],"root":[2],"options":{"checkJs":true,"composite":true,"declaration":true,"outFile":"./common.js","rootDir":"..","skipLibCheck":true},"outSignature":"-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","latestChangedDtsFile":"./common.d.ts"},"version":"FakeTSVersion"}
+{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./nominal.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"text"}],"hash":"-1932521178-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"text"}],"hash":"-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n"}},"program":{"fileNames":["../../lib/lib.d.ts","./nominal.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-1932521178-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n"],"root":[2],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"outFile":"./common.js","rootDir":"..","skipLibCheck":true},"outSignature":"-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","latestChangedDtsFile":"./common.d.ts"},"version":"FakeTSVersion"}
//// [/src/common/common.tsbuildinfo.baseline.txt]
======================================================================
@@ -205,6 +205,7 @@ type Nominal = T & {
]
],
"options": {
+ "allowJs": true,
"checkJs": true,
"composite": true,
"declaration": true,
@@ -216,7 +217,7 @@ type Nominal = T & {
"latestChangedDtsFile": "./common.d.ts"
},
"version": "FakeTSVersion",
- "size": 1492
+ "size": 1507
}
//// [/src/sub-project/sub-project.d.ts]
@@ -242,7 +243,7 @@ var c = /** @type {*} */ (null);
//// [/src/sub-project/sub-project.tsbuildinfo]
-{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"prepend","data":"../common/common.js","texts":[{"pos":0,"end":80,"kind":"text"}]},{"pos":80,"end":174,"kind":"text"}],"hash":"-7871970258-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (null);\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"prepend","data":"../common/common.d.ts","texts":[{"pos":0,"end":61,"kind":"text"}]},{"pos":61,"end":191,"kind":"text"}],"hash":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../common/common.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","2691219051-/**\n * @typedef {Nominal} MyNominal\n */\nconst c = /** @type {*} */(null);\n"],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"outFile":"./sub-project.js","rootDir":"..","skipLibCheck":true},"outSignature":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","latestChangedDtsFile":"./sub-project.d.ts"},"version":"FakeTSVersion"}
+{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":80,"kind":"prepend","data":"../common/common.js","texts":[{"pos":0,"end":80,"kind":"text"}]},{"pos":80,"end":174,"kind":"text"}],"hash":"-7871970258-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (null);\n"},"dts":{"sections":[{"pos":0,"end":61,"kind":"prepend","data":"../common/common.d.ts","texts":[{"pos":0,"end":61,"kind":"text"}]},{"pos":61,"end":191,"kind":"text"}],"hash":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../common/common.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-12106547178-type Nominal = T & {\n [Symbol.species]: Name;\n};\n","2691219051-/**\n * @typedef {Nominal} MyNominal\n */\nconst c = /** @type {*} */(null);\n"],"root":[3],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"outFile":"./sub-project.js","rootDir":"..","skipLibCheck":true},"outSignature":"-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","latestChangedDtsFile":"./sub-project.d.ts"},"version":"FakeTSVersion"}
//// [/src/sub-project/sub-project.tsbuildinfo.baseline.txt]
======================================================================
@@ -356,6 +357,7 @@ type MyNominal = Nominal;
]
],
"options": {
+ "allowJs": true,
"checkJs": true,
"composite": true,
"declaration": true,
@@ -367,7 +369,7 @@ type MyNominal = Nominal;
"latestChangedDtsFile": "./sub-project.d.ts"
},
"version": "FakeTSVersion",
- "size": 2204
+ "size": 2219
}
//// [/src/sub-project-2/sub-project-2.d.ts]
@@ -409,7 +411,7 @@ function getVar() {
//// [/src/sub-project-2/sub-project-2.tsbuildinfo]
-{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":174,"kind":"prepend","data":"../sub-project/sub-project.js","texts":[{"pos":0,"end":174,"kind":"text"}]},{"pos":174,"end":322,"kind":"text"}],"hash":"-4809651809-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (null);\nvar variable = {\n key: /** @type {MyNominal} */ ('value'),\n};\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"},"dts":{"sections":[{"pos":0,"end":191,"kind":"prepend","data":"../sub-project/sub-project.d.ts","texts":[{"pos":0,"end":191,"kind":"text"}]},{"pos":191,"end":339,"kind":"text"}],"hash":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/sub-project.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","2078909278-const variable = {\n key: /** @type {MyNominal} */('value'),\n};\n\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"],"root":[3],"options":{"checkJs":true,"composite":true,"declaration":true,"outFile":"./sub-project-2.js","rootDir":"..","skipLibCheck":true},"outSignature":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n","latestChangedDtsFile":"./sub-project-2.d.ts"},"version":"FakeTSVersion"}
+{"bundle":{"commonSourceDirectory":"..","sourceFiles":["./index.js"],"js":{"sections":[{"pos":0,"end":174,"kind":"prepend","data":"../sub-project/sub-project.js","texts":[{"pos":0,"end":174,"kind":"text"}]},{"pos":174,"end":322,"kind":"text"}],"hash":"-4809651809-/**\n * @template T, Name\n * @typedef {T & {[Symbol.species]: Name}} Nominal\n */\n/**\n * @typedef {Nominal} MyNominal\n */\nvar c = /** @type {*} */ (null);\nvar variable = {\n key: /** @type {MyNominal} */ ('value'),\n};\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"},"dts":{"sections":[{"pos":0,"end":191,"kind":"prepend","data":"../sub-project/sub-project.d.ts","texts":[{"pos":0,"end":191,"kind":"text"}]},{"pos":191,"end":339,"kind":"text"}],"hash":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n/**\n * @return {keyof typeof variable}\n */\ndeclare function getVar(): keyof typeof variable;\ndeclare namespace variable {\n let key: MyNominal;\n}\n"}},"program":{"fileNames":["../../lib/lib.d.ts","../sub-project/sub-project.d.ts","./index.js"],"fileInfos":["-32082413277-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface SymbolConstructor {\n readonly species: symbol;\n readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n readonly [Symbol.toStringTag]: string;\n}\n","-9550245654-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal} MyNominal\n */\ndeclare const c: any;\ntype MyNominal = Nominal;\n","2078909278-const variable = {\n key: /** @type {MyNominal} */('value'),\n};\n\n/**\n * @return {keyof typeof variable}\n */\nfunction getVar() {\n return 'key';\n}\n"],"root":[3],"options":{"allowJs":true,"checkJs":true,"composite":true,"declaration":true,"outFile":"./sub-project-2.js","rootDir":"..","skipLibCheck":true},"outSignature":"-308335141-type Nominal = T & {\n [Symbol.species]: Name;\n};\n/**\n * @typedef {Nominal