Add tests for package json edits

This commit is contained in:
Sheetal Nandi 2022-08-02 10:47:55 -07:00
parent 7de47805fe
commit 5c11252b71
17 changed files with 50446 additions and 4 deletions

View File

@ -10,6 +10,7 @@ import {
getFsWithMultipleProjects,
getFsWithNode16,
getFsWithOut,
getFsWithPackageJsonEdits,
getFsWithSameResolutionFromMultiplePlaces,
getPkgImportContent,
getPkgTypeRefContent,
@ -213,4 +214,53 @@ describe("unittests:: tsbuild:: cacheResolutions::", () => {
},
]
});
verifyTsc({
scenario: "cacheResolutions",
subScenario: "packageJson edited",
commandLineArgs: ["--b", "/src/projects/project/src", "--explainFiles"],
fs: getFsWithPackageJsonEdits,
baselineModulesAndTypeRefs: true,
edits: [
{
caption: "random edit",
edit: fs => appendText(fs, "/src/projects/project/src/randomFile.ts", `export const y = 10;`),
},
{
caption: "Modify package json file to add type module",
edit: fs => fs.writeFileSync(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" })),
},
{
caption: "Modify package.json file to remove type module and randmon edit",
edit: fs => {
fs.writeFileSync(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0" }));
appendText(fs, "/src/projects/project/src/randomFile.ts", `export const z = 10;`);
},
discrepancyExplanation: () => [
`Clean build and incremental build differ in emit signature and latestChangedDtsFile since incremental persists it from previous build and clean has errors`
]
},
{
caption: "Delete package.json",
edit: fs => fs.unlinkSync(`/src/projects/project/package.json`),
discrepancyExplanation: () => [
`Clean build and incremental build differ in emit signature and latestChangedDtsFile since incremental persists it from previous build and clean has errors`
]
},
{
caption: "Add package json file with type module",
edit: fs => fs.writeFileSync(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" })),
},
{
caption: "Delete package.json and random edit",
edit: fs => {
fs.unlinkSync(`/src/projects/project/package.json`);
appendText(fs, "/src/projects/project/src/randomFile.ts", `export const k = 10;`);
},
discrepancyExplanation: () => [
`Clean build and incremental build differ in emit signature and latestChangedDtsFile since incremental persists it from previous build and clean has errors`
]
},
],
});
});

View File

@ -361,4 +361,93 @@ export function getServerHostWithSameResolutionFromMultiplePlacesWithBuild() {
const system = getServerHostWithSameResolutionFromMultiplePlaces();
solutionBuildWithBaseline(system, ["/src/project"]);
return system;
}
function getFsMapWithPackageJsonEdits(): { [path: string]: string; } {
return {
"/src/projects/project/src/tsconfig.json": JSON.stringify({
compilerOptions: {
target: "es2016",
composite: true,
module: "node16",
outDir: "../out",
cacheResolutions: true,
traceResolution: true,
},
files: [
"fileA.ts",
"fileB.mts",
"randomFile.ts",
"a/randomFile.ts",
"b/ba/randomFile.ts",
"b/randomFile.ts",
"c/ca/randomFile.ts",
"c/ca/caa/randomFile.ts",
"c/ca/caa/caaa/randomFile.ts",
"c/cb/randomFile.ts",
"d/da/daa/daaa/x/y/z/randomFile.ts",
"d/da/daa/daaa/randomFile.ts",
"d/da/daa/randomFile.ts",
"d/da/randomFile.ts",
"e/ea/randomFile.ts",
"e/ea/eaa/randomFile.ts",
"e/ea/eaa/eaaa/randomFile.ts",
"e/ea/eaa/eaaa/x/y/z/randomFile.ts",
"f/fa/faa/x/y/z/randomFile.ts",
"f/fa/faa/faaa/randomFile.ts",
],
}),
"/src/projects/project/src/fileA.ts": Utils.dedent`
import { foo } from "./fileB.mjs";
foo();
`,
"/src/projects/project/src/fileB.mts": `export function foo() {}`,
"/src/projects/project/src/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/a/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/b/ba/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/b/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/c/ca/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/c/ca/caa/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/c/ca/caa/caaa/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/c/cb/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/d/da/daa/daaa/x/y/z/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/d/da/daa/daaa/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/d/da/daa/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/d/da/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/e/ea/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/e/ea/eaa/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/e/ea/eaa/eaaa/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/e/ea/eaa/eaaa/x/y/z/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/f/fa/faa/faaa/randomFile.ts": getRandomFileContent(),
"/src/projects/project/src/f/fa/faa/x/y/z/randomFile.ts": getRandomFileContent(),
"/src/projects/project/package.json": JSON.stringify({ name: "app", version: "1.0.0" }),
};
}
export function getFsWithPackageJsonEdits() {
return loadProjectFromFiles(getFsMapWithPackageJsonEdits(), /*libContentsToAppend*/ undefined, "/lib/lib.es2016.full.d.ts");
}
export function getWatchSystemWithPackageJsonEdits() {
const system = createWatchedSystem(getFsMapWithPackageJsonEdits(), { currentDirectory: "/src/projects/project" });
system.ensureFileOrFolder({ ...libFile, path: "/a/lib/lib.es2016.full.d.ts" });
return system;
}
export function getServerHostWithPackageJsonEdits() {
const system = createServerHost(getFsMapWithPackageJsonEdits(), { currentDirectory: "/src/projects/project" });
system.ensureFileOrFolder({ ...libFile, path: "/a/lib/lib.es2016.full.d.ts" });
return system;
}
export function getWatchSystemWithPackageJsonEditsWithBuild() {
const system = getWatchSystemWithPackageJsonEdits();
solutionBuildWithBaseline(system, ["/src/project/src"]);
return system;
}
export function getServerHostWithPackageJsonEditsWithBuild() {
const system = getServerHostWithPackageJsonEdits();
solutionBuildWithBaseline(system, ["/src/project/src"]);
return system;
}

View File

@ -10,6 +10,8 @@ import {
getWatchSystemWithNode16WithBuild,
getWatchSystemWithOut,
getWatchSystemWithOutWithBuild,
getWatchSystemWithPackageJsonEdits,
getWatchSystemWithPackageJsonEditsWithBuild,
getWatchSystemWithSameResolutionFromMultiplePlaces,
getWatchSystemWithSameResolutionFromMultiplePlacesWithBuild,
} from "../tsbuild/cacheResolutionsHelper";
@ -265,4 +267,56 @@ describe("unittests:: tsbuildWatch:: watchMode:: cacheResolutions::", () => {
});
}
});
describe("packageJson edited", () => {
verifyTscWatchPackageJsonEdits("packageJson edited", getWatchSystemWithPackageJsonEdits);
verifyTscWatchPackageJsonEdits("packageJson edited already built", getWatchSystemWithPackageJsonEditsWithBuild);
function verifyTscWatchPackageJsonEdits(subScenario: string, sys: () => TestServerHost) {
verifyTscWatch({
scenario: "cacheResolutions",
subScenario,
commandLineArgs: ["--b", "src", "-w", "--explainFiles", "--extendedDiagnostics"],
baselineModulesAndTypeRefs: true,
sys,
edits: [
{
caption: "random edit",
edit: sys => sys.appendFile("/src/projects/project/src/randomFile.ts", `export const y = 10;`),
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
},
{
caption: "Modify package json file to add type module",
edit: sys => sys.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" })),
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
},
{
caption: "Modify package.json file to remove type module and random edit",
edit: sys => {
sys.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0" }));
sys.appendFile("/src/projects/project/src/randomFile.ts", `export const z = 10;`);
},
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
},
{
caption: "Delete package.json",
edit: sys => sys.deleteFile(`/src/projects/project/package.json`),
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
},
{
caption: "Add package json file with type module",
edit: sys => sys.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" })),
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
},
{
caption: "Delete package.json and random edit and random edit",
edit: sys => {
sys.deleteFile(`/src/projects/project/package.json`);
sys.appendFile("/src/projects/project/src/randomFile.ts", `export const k = 10;`);
},
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
},
],
});
}
});
});

View File

@ -6,11 +6,13 @@ import {
import {
getFsWithNode16,
getFsWithOut,
getFsWithPackageJsonEdits,
getFsWithSameResolutionFromMultiplePlaces,
getPkgImportContent,
getPkgTypeRefContent,
} from "../tsbuild/cacheResolutionsHelper";
import {
appendText,
loadProjectFromFiles,
noChangeRun,
prependText,
@ -298,4 +300,38 @@ describe("unittests:: tsc:: cacheResolutions::", () => {
},
]
});
verifyTsc({
scenario: "cacheResolutions",
subScenario: "packageJson edited",
commandLineArgs: ["--p", "/src/projects/project/src", "--explainFiles"],
baselineModulesAndTypeRefs: true,
fs: getFsWithPackageJsonEdits,
edits: [
{
caption: "random edit",
edit: fs => appendText(fs, "/src/projects/project/src/randomFile.ts", `export const y = 10;`),
},
{
caption: "Modify package json file to add type module",
edit: fs => fs.writeFileSync(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" })),
},
{
caption: "Modify package.json file to remove type module",
edit: fs => fs.writeFileSync(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0" })),
},
{
caption: "Delete package.json",
edit: fs => fs.unlinkSync(`/src/projects/project/package.json`),
},
{
caption: "Add package json file with type module",
edit: fs => fs.writeFileSync(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" })),
},
{
caption: "Delete package.json and random edit",
edit: fs => fs.unlinkSync(`/src/projects/project/package.json`)
},
],
});
});

View File

@ -461,20 +461,21 @@ export function loadProjectFromDisk(
*/
export function loadProjectFromFiles(
files: vfs.FileSet,
libContentToAppend?: string
libContentToAppend?: string,
libPath?: string,
): vfs.FileSystem {
const fs = new vfs.FileSystem(/*ignoreCase*/ true, {
files,
cwd: "/",
meta: { defaultLibLocation: "/lib" },
});
addLibAndMakeReadonly(fs, libContentToAppend);
addLibAndMakeReadonly(fs, libContentToAppend, libPath);
return fs;
}
function addLibAndMakeReadonly(fs: vfs.FileSystem, libContentToAppend?: string) {
function addLibAndMakeReadonly(fs: vfs.FileSystem, libContentToAppend?: string, libPath?: string) {
fs.mkdirSync("/lib");
fs.writeFileSync("/lib/lib.d.ts", libContentToAppend ? `${libContent}${libContentToAppend}` : libContent);
fs.writeFileSync(libPath || "/lib/lib.d.ts", libContentToAppend ? `${libContent}${libContentToAppend}` : libContent);
fs.makeReadonly();
}

View File

@ -6,6 +6,8 @@ import {
getWatchSystemWithNode16WithBuild,
getWatchSystemWithOut,
getWatchSystemWithOutWithBuild,
getWatchSystemWithPackageJsonEdits,
getWatchSystemWithPackageJsonEditsWithBuild,
getWatchSystemWithSameResolutionFromMultiplePlaces,
getWatchSystemWithSameResolutionFromMultiplePlacesWithBuild,
} from "../tsbuild/cacheResolutionsHelper";
@ -278,4 +280,68 @@ describe("unittests:: tsc-watch:: cacheResolutions::", () => {
});
}
});
describe("packageJson edited", () => {
verifyTscWatchPackageJsonEdits("packageJson edited", getWatchSystemWithPackageJsonEdits);
verifyTscWatchPackageJsonEdits("packageJson edited already built", getWatchSystemWithPackageJsonEditsWithBuild);
function verifyTscWatchPackageJsonEdits(subScenario: string, sys: () => TestServerHost) {
verifyTscWatch({
scenario: "cacheResolutions",
subScenario,
commandLineArgs: ["--p", "src", "-w", "--explainFiles", "--extendedDiagnostics"],
baselineModulesAndTypeRefs: true,
sys,
edits: [
{
caption: "random edit",
edit: sys => sys.appendFile("/src/projects/project/src/randomFile.ts", `export const y = 10;`),
timeouts: sys => {
sys.runQueuedTimeoutCallbacks(); // Failed lookups
sys.runQueuedTimeoutCallbacks(); // actual update
},
},
{
caption: "Modify package json file to add type module",
edit: sys => sys.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" })),
timeouts: sys => {
sys.runQueuedTimeoutCallbacks(); // Failed lookups
sys.runQueuedTimeoutCallbacks(); // actual update
},
},
{
caption: "Modify package.json file to remove type module",
edit: sys => sys.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0" })),
timeouts: sys => {
sys.runQueuedTimeoutCallbacks(); // Failed lookups
sys.runQueuedTimeoutCallbacks(); // actual update
},
},
{
caption: "Delete package.json",
edit: sys => sys.deleteFile(`/src/projects/project/package.json`),
timeouts: sys => {
sys.runQueuedTimeoutCallbacks(); // Failed lookups
sys.runQueuedTimeoutCallbacks(); // actual update
},
},
{
caption: "Add package json file with type module",
edit: sys => sys.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" })),
timeouts: sys => {
sys.runQueuedTimeoutCallbacks(); // Failed lookups
sys.runQueuedTimeoutCallbacks(); // actual update
},
},
{
caption: "Delete package.json",
edit: sys => sys.deleteFile(`/src/projects/project/package.json`),
timeouts: sys => {
sys.runQueuedTimeoutCallbacks(); // Failed lookups
sys.runQueuedTimeoutCallbacks(); // actual update
},
},
],
});
}
});
});

View File

@ -25,6 +25,8 @@ import {
getServerHostWithNode16WithBuild,
getServerHostWithOut,
getServerHostWithOutWithBuild,
getServerHostWithPackageJsonEdits,
getServerHostWithPackageJsonEditsWithBuild,
getServerHostWithSameResolutionFromMultiplePlaces,
getServerHostWithSameResolutionFromMultiplePlacesWithBuild,
} from "../tsbuild/cacheResolutionsHelper";
@ -411,6 +413,59 @@ describe("unittests:: tsserver:: cacheResolutions:: tsserverProjectSystem cachin
}
});
describe("packageJson edited", () => {
verifyTscWatchPackageJsonEdits("packageJson edited", getServerHostWithPackageJsonEdits);
verifyTscWatchPackageJsonEdits("packageJson edited already built", getServerHostWithPackageJsonEditsWithBuild);
function verifyTscWatchPackageJsonEdits(scenario: string, createHost: () => TestServerHost) {
it(scenario, () => {
const host = fakes.patchHostForBuildInfoReadWrite(createHost());
const session = createSession(host, { logger: createLoggerWithInMemoryLogs(host) });
openFilesForSession(["/src/projects/project/src/randomFile.ts"], session);
session.logger.info("random edit");
session.executeCommandSeq<ts.server.protocol.ChangeRequest>({
command: ts.server.protocol.CommandTypes.Change,
arguments: {
file: "/src/projects/project/src/randomFile.ts",
line: 1,
offset: 1,
endLine: 1,
endOffset: 1,
insertString: `export cont y = 10;\n`,
}
});
ts.server.updateProjectIfDirty(session.getProjectService().configuredProjects.get("/src/projects/project/src/tsconfig.json")!);
session.logger.info("Modify package json file to add type module");
host.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" }));
host.runQueuedTimeoutCallbacks(); // failed lookup
host.runQueuedTimeoutCallbacks(); // actual update
session.logger.info("Modify package.json file to remove type module");
host.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0" }));
host.runQueuedTimeoutCallbacks(); // failed lookup
host.runQueuedTimeoutCallbacks(); // actual update
session.logger.info("Delete package.json");
host.deleteFile(`/src/projects/project/package.json`);
host.runQueuedTimeoutCallbacks(); // failed lookup
host.runQueuedTimeoutCallbacks(); // actual update
session.logger.info("Add package json file with type module");
host.writeFile(`/src/projects/project/package.json`, JSON.stringify({ name: "app", version: "1.0.0", type: "module" }));
host.runQueuedTimeoutCallbacks(); // failed lookup
host.runQueuedTimeoutCallbacks(); // actual update
session.logger.info("Delete package.json");
host.deleteFile(`/src/projects/project/package.json`);
host.runQueuedTimeoutCallbacks(); // failed lookup
host.runQueuedTimeoutCallbacks(); // actual update
baselineTsserverLogs("cacheResolutions", scenario, session);
});
}
});
describe("different projects", () => {
describe("on sample project", () => {
function cacheResolutions(file: File) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,415 @@
3:: Delete package.json
*** Needs explanation
TsBuild info text without affectedFilesPendingEmit:: /src/projects/project/out/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"program": {
"fileInfos": {
"../../../../lib/lib.es2016.full.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"../src/fileb.mts": {
"version": "3524703962-export function foo() {}",
"impliedFormat": "esnext"
},
"../src/filea.ts": {
"version": "-5325347830-import { foo } from \"./fileB.mjs\";\nfoo();\n",
"impliedFormat": "commonjs"
},
"../src/randomfile.ts": {
"version": "-9547279430-export const x = 10;export const y = 10;",
"impliedFormat": "commonjs"
},
"../src/a/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/b/ba/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/b/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/c/ca/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/c/ca/caa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/c/ca/caa/caaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/c/cb/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/d/da/daa/daaa/x/y/z/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/d/da/daa/daaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/d/da/daa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/d/da/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/e/ea/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/e/ea/eaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/e/ea/eaa/eaaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/e/ea/eaa/eaaa/x/y/z/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/f/fa/faa/x/y/z/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/f/fa/faa/faaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
}
},
"options": {
"cacheResolutions": true,
"composite": true,
"module": 100,
"outDir": "./",
"target": 3
},
"referencedMap": {
"../src/filea.ts": [
"../src/fileb.mts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../lib/lib.es2016.full.d.ts",
"../src/a/randomfile.ts",
"../src/b/ba/randomfile.ts",
"../src/b/randomfile.ts",
"../src/c/ca/caa/caaa/randomfile.ts",
"../src/c/ca/caa/randomfile.ts",
"../src/c/ca/randomfile.ts",
"../src/c/cb/randomfile.ts",
"../src/d/da/daa/daaa/randomfile.ts",
"../src/d/da/daa/daaa/x/y/z/randomfile.ts",
"../src/d/da/daa/randomfile.ts",
"../src/d/da/randomfile.ts",
"../src/e/ea/eaa/eaaa/randomfile.ts",
"../src/e/ea/eaa/eaaa/x/y/z/randomfile.ts",
"../src/e/ea/eaa/randomfile.ts",
"../src/e/ea/randomfile.ts",
"../src/f/fa/faa/faaa/randomfile.ts",
"../src/f/fa/faa/x/y/z/randomfile.ts",
[
"../src/filea.ts",
[
{
"file": "../src/filea.ts",
"start": 20,
"length": 13,
"code": 1479,
"category": 1,
"messageText": {
"messageText": "The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"./fileB.mjs\")' call instead.",
"category": 1,
"code": 1479,
"next": [
{
"messageText": "To convert this file to an ECMAScript module, change its file extension to '.mts' or create a local package.json file with `{ \"type\": \"module\" }`.",
"category": 3,
"code": 1480
}
]
}
}
]
],
"../src/fileb.mts",
"../src/randomfile.ts"
],
"latestChangedDtsFile": "FakeFileName",
"cacheResolutions": {
"resolutions": [
{
"original": {
"resolvedModule": {
"resolvedFileName": 23
}
},
"resolutionId": 1,
"resolvedModule": {
"resolvedFileName": "../src/fileB.mts"
}
}
],
"names": [
"./fileB.mjs"
],
"resolutionEntries": [
{
"original": [
1,
1,
1
],
"resolutionEntryId": 1,
"name": "./fileB.mjs",
"resolution": {
"resolutionId": 1,
"resolvedModule": {
"resolvedFileName": "../src/fileB.mts"
}
},
"mode": "commonjs"
}
],
"modules": [
{
"dir": "../src",
"resolutions": [
{
"resolutionEntryId": 1,
"name": "./fileB.mjs",
"resolution": {
"resolutionId": 1,
"resolvedModule": {
"resolvedFileName": "../src/fileB.mts"
}
},
"mode": "commonjs"
}
]
}
]
}
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"program": {
"fileInfos": {
"../../../../lib/lib.es2016.full.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"../src/fileb.mts": {
"version": "3524703962-export function foo() {}",
"impliedFormat": "esnext"
},
"../src/filea.ts": {
"version": "-5325347830-import { foo } from \"./fileB.mjs\";\nfoo();\n",
"impliedFormat": "commonjs"
},
"../src/randomfile.ts": {
"version": "-9547279430-export const x = 10;export const y = 10;",
"impliedFormat": "commonjs"
},
"../src/a/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/b/ba/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/b/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/c/ca/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/c/ca/caa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/c/ca/caa/caaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/c/cb/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/d/da/daa/daaa/x/y/z/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/d/da/daa/daaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/d/da/daa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/d/da/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/e/ea/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/e/ea/eaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/e/ea/eaa/eaaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/e/ea/eaa/eaaa/x/y/z/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/f/fa/faa/x/y/z/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
},
"../src/f/fa/faa/faaa/randomfile.ts": {
"version": "-10726455937-export const x = 10;",
"impliedFormat": "commonjs"
}
},
"options": {
"cacheResolutions": true,
"composite": true,
"module": 100,
"outDir": "./",
"target": 3
},
"referencedMap": {
"../src/filea.ts": [
"../src/fileb.mts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../lib/lib.es2016.full.d.ts",
"../src/a/randomfile.ts",
"../src/b/ba/randomfile.ts",
"../src/b/randomfile.ts",
"../src/c/ca/caa/caaa/randomfile.ts",
"../src/c/ca/caa/randomfile.ts",
"../src/c/ca/randomfile.ts",
"../src/c/cb/randomfile.ts",
"../src/d/da/daa/daaa/randomfile.ts",
"../src/d/da/daa/daaa/x/y/z/randomfile.ts",
"../src/d/da/daa/randomfile.ts",
"../src/d/da/randomfile.ts",
"../src/e/ea/eaa/eaaa/randomfile.ts",
"../src/e/ea/eaa/eaaa/x/y/z/randomfile.ts",
"../src/e/ea/eaa/randomfile.ts",
"../src/e/ea/randomfile.ts",
"../src/f/fa/faa/faaa/randomfile.ts",
"../src/f/fa/faa/x/y/z/randomfile.ts",
[
"../src/filea.ts",
[
{
"file": "../src/filea.ts",
"start": 20,
"length": 13,
"code": 1479,
"category": 1,
"messageText": {
"messageText": "The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"./fileB.mjs\")' call instead.",
"category": 1,
"code": 1479,
"next": [
{
"messageText": "To convert this file to an ECMAScript module, change its file extension to '.mts', or add the field `\"type\": \"module\"` to '/src/projects/project/package.json'.",
"category": 3,
"code": 1481
}
]
}
}
]
],
"../src/fileb.mts",
"../src/randomfile.ts"
],
"latestChangedDtsFile": "FakeFileName",
"cacheResolutions": {
"resolutions": [
{
"original": {
"resolvedModule": {
"resolvedFileName": 23
}
},
"resolutionId": 1,
"resolvedModule": {
"resolvedFileName": "../src/fileB.mts"
}
}
],
"names": [
"./fileB.mjs"
],
"resolutionEntries": [
{
"original": [
1,
1,
1
],
"resolutionEntryId": 1,
"name": "./fileB.mjs",
"resolution": {
"resolutionId": 1,
"resolvedModule": {
"resolvedFileName": "../src/fileB.mts"
}
},
"mode": "commonjs"
}
],
"modules": [
{
"dir": "../src",
"resolutions": [
{
"resolutionEntryId": 1,
"name": "./fileB.mjs",
"resolution": {
"resolutionId": 1,
"resolvedModule": {
"resolvedFileName": "../src/fileB.mts"
}
},
"mode": "commonjs"
}
]
}
]
}
},
"version": "FakeTSVersion"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff