Add tests for package json edits

This commit is contained in:
Sheetal Nandi committed 2022-12-09 14:49:30 -08:00
1 parent 7de47805fe
commit 5c11252b71
17 files changed
+50446 -4

No files matched your search

@@ -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`
]
},
],
});
});
@@ -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;
}
@@ -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(),
},
],
});
}
});
});
@@ -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`)
},
],
});
});
+5 -4
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();
}
@@ -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
},
},
],
});
}
});
});
@@ -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 it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -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