Fix: verification of incremental correctness that was not working because of using wrote writeFile (#48751)

* Use fixed time for vfs so baselining is consistent

* Baseline buildinfos

* Write new file text in baseline even if the file wasnt read on the shadow

* Remove unnecessary debugger statement

* Make sure that incremental correctness is checked with correct writeFile so we know buildInfo was written
Also baseline these so its easy to verify the changes

* More baselines for the tsbuildinfo

* Renames and test fixes after dts Signature change merge

* COmment
This commit is contained in:
Sheetal Nandi 2022-04-22 09:30:58 -07:00 committed by GitHub
parent af30c79093
commit 94cb657b1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 3477 additions and 331 deletions

View File

@ -209,7 +209,7 @@ interface Symbol {
affectedFilesPendingEmit?: readonly ReadableProgramBuilderInfoFilePendingEmit[];
}
type ReadableBuildInfo = Omit<BuildInfo, "program"> & { program: ReadableProgramBuildInfo | undefined; size: number; };
function generateBuildInfoProgramBaseline(sys: System, originalWriteFile: System["writeFile"], buildInfoPath: string, buildInfo: BuildInfo) {
function generateBuildInfoProgramBaseline(sys: System, buildInfoPath: string, buildInfo: BuildInfo) {
const fileInfos: ReadableProgramBuildInfo["fileInfos"] = {};
buildInfo.program?.fileInfos.forEach((fileInfo, index) => fileInfos[toFileName(index + 1 as ProgramBuildInfoFileId)] = toBuilderStateFileInfo(fileInfo));
const fileNamesList = buildInfo.program?.fileIdsList?.map(fileIdsListId => fileIdsListId.map(toFileName));
@ -240,7 +240,7 @@ interface Symbol {
size: getBuildInfoText({ ...buildInfo, version }).length,
};
// For now its just JSON.stringify
originalWriteFile.call(sys, `${buildInfoPath}.readable.baseline.txt`, JSON.stringify(result, /*replacer*/ undefined, 2));
sys.writeFile(`${buildInfoPath}.readable.baseline.txt`, JSON.stringify(result, /*replacer*/ undefined, 2));
function toFileName(fileId: ProgramBuildInfoFileId) {
return buildInfo.program!.fileNames[fileId - 1];
@ -266,16 +266,15 @@ interface Symbol {
export function baselineBuildInfo(
options: CompilerOptions,
sys: System & { writtenFiles: ReadonlyCollection<Path>; },
sys: TscCompileSystem | tscWatch.WatchedSystem,
originalReadCall?: System["readFile"],
originalWriteFile?: System["writeFile"],
) {
const buildInfoPath = getTsBuildInfoEmitOutputFilePath(options);
if (!buildInfoPath || !sys.writtenFiles.has(toPathWithSystem(sys, buildInfoPath))) return;
if (!buildInfoPath || !sys.writtenFiles!.has(toPathWithSystem(sys, buildInfoPath))) return;
if (!sys.fileExists(buildInfoPath)) return;
const buildInfo = getBuildInfo((originalReadCall || sys.readFile).call(sys, buildInfoPath, "utf8")!);
generateBuildInfoProgramBaseline(sys, originalWriteFile || sys.writeFile, buildInfoPath, buildInfo);
generateBuildInfoProgramBaseline(sys, buildInfoPath, buildInfo);
if (!outFile(options)) return;
const { jsFilePath, declarationFilePath } = getOutputPathsForBundle(options, /*forceDts*/ false);
@ -288,134 +287,173 @@ interface Symbol {
generateBundleFileSectionInfo(sys, originalReadCall || sys.readFile, baselineRecorder, bundle.dts, declarationFilePath);
baselineRecorder.Close();
const text = baselineRecorder.lines.join("\r\n");
(originalWriteFile || sys.writeFile).call(sys, `${buildInfoPath}.baseline.txt`, text);
sys.writeFile(`${buildInfoPath}.baseline.txt`, text);
}
interface VerifyTscEditCorrectnessInput {
interface VerifyTscEditDiscrepanciesInput {
index: number;
scenario: TestTscCompile["scenario"];
subScenario: TestTscCompile["subScenario"];
baselines: string[] | undefined;
commandLineArgs: TestTscCompile["commandLineArgs"];
modifyFs: TestTscCompile["modifyFs"];
editFs: TestTscEdit["modifyFs"];
baseFs: vfs.FileSystem;
newSys: TscCompileSystem;
cleanBuildDiscrepancies: TestTscEdit["cleanBuildDiscrepancies"];
discrepancyExplanation: TestTscEdit["discrepancyExplanation"];
}
/** Verify that emit is same as clean build vs building after edit */
function verifyTscEditCorrectness(input: () => VerifyTscEditCorrectnessInput, index: number, subScenario: TestTscCompile["subScenario"]) {
it(`Verify emit output file text is same when built clean for incremental edit scenario at:: ${index} ${subScenario}`, () => {
const {
scenario, commandLineArgs, cleanBuildDiscrepancies,
modifyFs, editFs,
baseFs, newSys
} = input();
const sys = testTscCompile({
scenario,
subScenario,
fs: () => baseFs.makeReadonly(),
commandLineArgs,
modifyFs: fs => {
if (modifyFs) modifyFs(fs);
editFs(fs);
},
disableUseFileVersionAsSignature: true,
});
const discrepancies = cleanBuildDiscrepancies?.();
for (const outputFile of arrayFrom(sys.writtenFiles.keys())) {
const cleanBuildText = sys.readFile(outputFile);
const incrementalBuildText = newSys.readFile(outputFile);
const descrepancyInClean = discrepancies?.get(outputFile);
if (isBuildInfoFile(outputFile)) {
// Check only presence and absence and not text as we will do that for readable baseline
assert.isTrue(sys.fileExists(`${outputFile}.readable.baseline.txt`), `Readable baseline should be present in clean build:: File:: ${outputFile}`);
assert.isTrue(newSys.fileExists(`${outputFile}.readable.baseline.txt`), `Readable baseline should be present in incremental build:: File:: ${outputFile}`);
if (descrepancyInClean === undefined) {
verifyPresenceAbsence(incrementalBuildText, cleanBuildText, `Incremental and clean tsbuildinfo file presence should match:: File:: ${outputFile}`);
}
else {
verifyTextEqual(incrementalBuildText, cleanBuildText, descrepancyInClean, `File: ${outputFile}`);
}
}
else if (!fileExtensionIs(outputFile, ".tsbuildinfo.readable.baseline.txt")) {
verifyTextEqual(incrementalBuildText, cleanBuildText, descrepancyInClean, `File: ${outputFile}`);
}
else if (incrementalBuildText !== cleanBuildText) {
// Verify build info without affectedFilesPendingEmit
const { buildInfo: incrementalBuildInfo, readableBuildInfo: incrementalReadableBuildInfo } = getBuildInfoForIncrementalCorrectnessCheck(incrementalBuildText);
const { buildInfo: cleanBuildInfo, readableBuildInfo: cleanReadableBuildInfo } = getBuildInfoForIncrementalCorrectnessCheck(cleanBuildText);
verifyTextEqual(incrementalBuildInfo, cleanBuildInfo, descrepancyInClean, `TsBuild info text without affectedFilesPendingEmit ${subScenario}:: ${outputFile}::\nIncremental buildInfoText:: ${incrementalBuildText}\nClean buildInfoText:: ${cleanBuildText}`);
if (descrepancyInClean === undefined) {
// Verify file info sigantures
verifyMapLike(
incrementalReadableBuildInfo?.program?.fileInfos,
cleanReadableBuildInfo?.program?.fileInfos,
(key, incrementalFileInfo, cleanFileInfo) => {
if (incrementalFileInfo.signature !== cleanFileInfo.signature && incrementalFileInfo.signature !== incrementalFileInfo.version) {
assert.fail(`Incremental signature should either be dts signature or file version for File:: ${key}:: Incremental:: ${JSON.stringify(incrementalFileInfo)}, Clean:: ${JSON.stringify(cleanFileInfo)}}`);
}
},
`FileInfos:: File:: ${outputFile}`
);
// Verify exportedModulesMap
verifyMapLike(
incrementalReadableBuildInfo?.program?.exportedModulesMap,
cleanReadableBuildInfo?.program?.exportedModulesMap,
(key, incrementalReferenceSet, cleanReferenceSet) => {
if (!arrayIsEqualTo(incrementalReferenceSet, cleanReferenceSet) && !arrayIsEqualTo(incrementalReferenceSet, incrementalReadableBuildInfo!.program!.referencedMap![key])) {
assert.fail(`Incremental Reference set should either be from dts or files reference map for File:: ${key}:: Incremental:: ${JSON.stringify(incrementalReferenceSet)}, Clean:: ${JSON.stringify(cleanReferenceSet)}, referenceMap:: ${JSON.stringify(incrementalReadableBuildInfo!.program!.referencedMap![key])}}`);
}
},
`exportedModulesMap:: File:: ${outputFile}`
);
// Verify that incrementally pending affected file emit are in clean build since clean build can contain more files compared to incremental depending of noEmitOnError option
if (incrementalReadableBuildInfo?.program?.affectedFilesPendingEmit) {
assert.isDefined(cleanReadableBuildInfo?.program?.affectedFilesPendingEmit, `Incremental build contains affectedFilesPendingEmit, clean build should also have it: ${outputFile}::\nIncremental buildInfoText:: ${incrementalBuildText}\nClean buildInfoText:: ${cleanBuildText}`);
let expectedIndex = 0;
incrementalReadableBuildInfo.program.affectedFilesPendingEmit.forEach(([actualFile]) => {
expectedIndex = findIndex(cleanReadableBuildInfo!.program!.affectedFilesPendingEmit!, ([expectedFile]) => actualFile === expectedFile, expectedIndex);
assert.notEqual(expectedIndex, -1, `Incremental build contains ${actualFile} file as pending emit, clean build should also have it: ${outputFile}::\nIncremental buildInfoText:: ${incrementalBuildText}\nClean buildInfoText:: ${cleanBuildText}`);
expectedIndex++;
});
}
}
}
}
function verifyTextEqual(incrementalText: string | undefined, cleanText: string | undefined, descrepancyInClean: CleanBuildDescrepancy | undefined, message: string) {
if (descrepancyInClean === undefined) {
assert.equal(incrementalText, cleanText, message);
return;
}
switch (descrepancyInClean) {
case CleanBuildDescrepancy.CleanFileTextDifferent:
assert.isDefined(incrementalText, `Incremental file should be present:: ${message}`);
assert.isDefined(cleanText, `Clean file should be present present:: ${message}`);
assert.notEqual(incrementalText, cleanText, message);
return;
case CleanBuildDescrepancy.CleanFilePresent:
assert.isUndefined(incrementalText, `Incremental file should be absent:: ${message}`);
assert.isDefined(cleanText, `Clean file should be present:: ${message}`);
return;
default:
Debug.assertNever(descrepancyInClean);
}
}
function verifyMapLike<T>(incremental: MapLike<T> | undefined, clean: MapLike<T> | undefined, verifyValue: (key: string, incrementalValue: T, cleanValue: T) => void, message: string) {
verifyPresenceAbsence(incremental, clean, `Incremental and clean presence should match:: ${message}`);
if (!incremental) return;
const incrementalMap = new Map(getEntries(incremental));
const cleanMap = new Map(getEntries(clean!));
assert.equal(incrementalMap.size, cleanMap.size, `Incremental and clean size of map should match:: ${message}, Incremental keys: ${arrayFrom(incrementalMap.keys())} Clean: ${arrayFrom(cleanMap.keys())}${TestFSWithWatch.getDiffInKeys(incrementalMap, arrayFrom(cleanMap.keys()))}`);
cleanMap.forEach((cleanValue, key) => {
assert.isTrue(incrementalMap.has(key), `Expected to contain ${key} in incremental map:: ${message}, Incremental keys: ${arrayFrom(incrementalMap.keys())}`);
verifyValue(key, incrementalMap.get(key)!, cleanValue);
});
}
function verifyTscEditDiscrepancies({
index, scenario, subScenario, commandLineArgs,
discrepancyExplanation, baselines,
modifyFs, editFs, baseFs, newSys
}: VerifyTscEditDiscrepanciesInput): string[] | undefined {
const sys = testTscCompile({
scenario,
subScenario,
fs: () => baseFs.makeReadonly(),
commandLineArgs,
modifyFs: fs => {
if (modifyFs) modifyFs(fs);
editFs(fs);
},
disableUseFileVersionAsSignature: true,
});
}
let headerAdded = false;
for (const outputFile of arrayFrom(sys.writtenFiles.keys())) {
const cleanBuildText = sys.readFile(outputFile);
const incrementalBuildText = newSys.readFile(outputFile);
if (isBuildInfoFile(outputFile)) {
// Check only presence and absence and not text as we will do that for readable baseline
if (!sys.fileExists(`${outputFile}.readable.baseline.txt`)) addBaseline(`Readable baseline not present in clean build:: File:: ${outputFile}`);
if (!newSys.fileExists(`${outputFile}.readable.baseline.txt`)) addBaseline(`Readable baseline not present in incremental build:: File:: ${outputFile}`);
verifyPresenceAbsence(incrementalBuildText, cleanBuildText, `Incremental and clean tsbuildinfo file presence differs:: File:: ${outputFile}`);
}
else if (!fileExtensionIs(outputFile, ".tsbuildinfo.readable.baseline.txt")) {
verifyTextEqual(incrementalBuildText, cleanBuildText, `File: ${outputFile}`);
}
else if (incrementalBuildText !== cleanBuildText) {
// Verify build info without affectedFilesPendingEmit
const { buildInfo: incrementalBuildInfo, readableBuildInfo: incrementalReadableBuildInfo } = getBuildInfoForIncrementalCorrectnessCheck(incrementalBuildText);
const { buildInfo: cleanBuildInfo, readableBuildInfo: cleanReadableBuildInfo } = getBuildInfoForIncrementalCorrectnessCheck(cleanBuildText);
verifyTextEqual(incrementalBuildInfo, cleanBuildInfo, `TsBuild info text without affectedFilesPendingEmit:: ${outputFile}::`);
// Verify file info sigantures
verifyMapLike(
incrementalReadableBuildInfo?.program?.fileInfos,
cleanReadableBuildInfo?.program?.fileInfos,
(key, incrementalFileInfo, cleanFileInfo) => {
if (incrementalFileInfo.signature !== cleanFileInfo.signature && incrementalFileInfo.signature !== incrementalFileInfo.version) {
return [
`Incremental signature is neither dts signature nor file version for File:: ${key}`,
`Incremental:: ${JSON.stringify(incrementalFileInfo, /*replacer*/ undefined, 2)}`,
`Clean:: ${JSON.stringify(cleanFileInfo, /*replacer*/ undefined, 2)}`
];
}
},
`FileInfos:: File:: ${outputFile}`
);
// Verify exportedModulesMap
verifyMapLike(
incrementalReadableBuildInfo?.program?.exportedModulesMap,
cleanReadableBuildInfo?.program?.exportedModulesMap,
(key, incrementalReferenceSet, cleanReferenceSet) => {
if (!arrayIsEqualTo(incrementalReferenceSet, cleanReferenceSet) && !arrayIsEqualTo(incrementalReferenceSet, incrementalReadableBuildInfo!.program!.referencedMap![key])) {
return [
`Incremental Reference set is neither from dts nor files reference map for File:: ${key}::`,
`Incremental:: ${JSON.stringify(incrementalReferenceSet, /*replacer*/ undefined, 2)}`,
`Clean:: ${JSON.stringify(cleanReferenceSet, /*replacer*/ undefined, 2)}`,
`IncrementalReferenceMap:: ${JSON.stringify(incrementalReadableBuildInfo!.program!.referencedMap![key], /*replacer*/ undefined, 2)}`,
`CleanReferenceMap:: ${JSON.stringify(cleanReadableBuildInfo!.program!.referencedMap![key], /*replacer*/ undefined, 2)}`,
];
}
},
`exportedModulesMap:: File:: ${outputFile}`
);
// Verify that incrementally pending affected file emit are in clean build since clean build can contain more files compared to incremental depending of noEmitOnError option
if (incrementalReadableBuildInfo?.program?.affectedFilesPendingEmit) {
if (cleanReadableBuildInfo?.program?.affectedFilesPendingEmit === undefined) {
addBaseline(
`Incremental build contains affectedFilesPendingEmit, clean build does not have it: ${outputFile}::`,
`Incremental buildInfoText:: ${incrementalBuildText}`,
`Clean buildInfoText:: ${cleanBuildText}`
);
}
let expectedIndex = 0;
incrementalReadableBuildInfo.program.affectedFilesPendingEmit.forEach(([actualFile]) => {
expectedIndex = findIndex(cleanReadableBuildInfo!.program!.affectedFilesPendingEmit!, ([expectedFile]) => actualFile === expectedFile, expectedIndex);
if (expectedIndex === -1) {
addBaseline(
`Incremental build contains ${actualFile} file as pending emit, clean build does not have it: ${outputFile}::`,
`Incremental buildInfoText:: ${incrementalBuildText}`,
`Clean buildInfoText:: ${cleanBuildText}`
);
}
expectedIndex++;
});
}
}
}
if (!headerAdded && discrepancyExplanation) addBaseline("*** Supplied discrepancy explanation but didnt file any difference");
return baselines;
function verifyPresenceAbsence<T>(actual: T | undefined, expected: T | undefined, message: string) {
(expected !== undefined ? assert.isDefined : assert.isUndefined)(actual, message);
function verifyTextEqual(incrementalText: string | undefined, cleanText: string | undefined, message: string) {
if (incrementalText !== cleanText) writeNotEqual(incrementalText, cleanText, message);
}
function verifyMapLike<T>(incremental: MapLike<T> | undefined, clean: MapLike<T> | undefined, verifyValue: (key: string, incrementalValue: T, cleanValue: T) => string[] | undefined, message: string) {
verifyPresenceAbsence(incremental, clean, `Incremental and clean do not match:: ${message}`);
if (!incremental || !clean) return;
const incrementalMap = new Map(getEntries(incremental));
const cleanMap = new Map(getEntries(clean));
if (incrementalMap.size !== cleanMap.size) {
addBaseline(
`Incremental and clean size of maps do not match:: ${message}`,
`Incremental: ${JSON.stringify(incremental, /*replacer*/ undefined, 2)}`,
`Clean: ${JSON.stringify(clean, /*replacer*/ undefined, 2)}`,
);
return;
}
cleanMap.forEach((cleanValue, key) => {
const incrementalValue = incrementalMap.get(key);
if (!incrementalValue) {
addBaseline(
`Incremental does not contain ${key} which is present in clean:: ${message}`,
`Incremental: ${JSON.stringify(incremental, /*replacer*/ undefined, 2)}`,
`Clean: ${JSON.stringify(clean, /*replacer*/ undefined, 2)}`,
);
}
else {
const result = verifyValue(key, incrementalMap.get(key)!, cleanValue);
if (result) addBaseline(...result);
}
});
}
function verifyPresenceAbsence<T>(actual: T | undefined, expected: T | undefined, message: string) {
if (expected === undefined) {
if (actual === undefined) return;
}
else {
if (actual !== undefined) return;
}
writeNotEqual(actual, expected, message);
}
function writeNotEqual<T>(actual: T | undefined, expected: T | undefined, message: string) {
addBaseline(
message,
"CleanBuild:",
isString(expected) ? expected : JSON.stringify(expected),
"IncrementalBuild:",
isString(actual) ? actual : JSON.stringify(actual),
);
}
function addBaseline(...text: string[]) {
if (!baselines || !headerAdded) {
(baselines ||= []).push(`${index}:: ${subScenario}`, ...(discrepancyExplanation?.()|| ["*** Needs explanation"]));
headerAdded = true;
}
baselines.push(...text);
}
}
function getBuildInfoForIncrementalCorrectnessCheck(text: string | undefined): {
@ -425,7 +463,7 @@ interface Symbol {
if (!text) return { buildInfo: text };
const readableBuildInfo = JSON.parse(text) as ReadableBuildInfo;
let sanitizedFileInfos: MapLike<BuilderState.FileInfo> | undefined;
if (readableBuildInfo.program) {
if (readableBuildInfo.program?.fileInfos) {
sanitizedFileInfos = {};
for (const id in readableBuildInfo.program.fileInfos) {
if (hasProperty(readableBuildInfo.program.fileInfos, id)) {
@ -461,34 +499,22 @@ interface Symbol {
modifyFs: (fs: vfs.FileSystem) => void;
subScenario: string;
commandLineArgs?: readonly string[];
cleanBuildDiscrepancies?: () => ESMap<string, CleanBuildDescrepancy>;
/** An array of lines to be printed in order when a discrepancy is detected */
discrepancyExplanation?: () => readonly string[];
}
export interface VerifyTscWithEditsInput extends VerifyTscWithEditsWorkerInput {
baselineIncremental?: boolean;
}
export interface VerifyTscWithEditsWorkerInput extends TestTscCompile {
export interface VerifyTscWithEditsInput extends TestTscCompile {
edits: TestTscEdit[];
}
/**
* Verify non watch tsc invokcation after each edit
*/
export function verifyTscWithEdits(input: VerifyTscWithEditsInput) {
verifyTscWithEditsWorker(input);
if (input.baselineIncremental) {
verifyTscWithEditsWorker({
...input,
subScenario: `${input.subScenario} with incremental`,
commandLineArgs: [...input.commandLineArgs, "--incremental"],
});
}
}
function verifyTscWithEditsWorker({
export function verifyTscWithEdits({
subScenario, fs, scenario, commandLineArgs,
baselineSourceMap, modifyFs, baselineReadFileCalls, baselinePrograms,
edits
}: VerifyTscWithEditsWorkerInput) {
}: VerifyTscWithEditsInput) {
describe(`tsc ${commandLineArgs.join(" ")} ${scenario}:: ${subScenario} serializedEdits`, () => {
let sys: TscCompileSystem;
let baseFs: vfs.FileSystem;
@ -528,35 +554,43 @@ interface Symbol {
sys = undefined!;
editsSys = undefined!;
});
describe("tsc invocation after edit", () => {
verifyTscBaseline(() => ({
baseLine: () => {
const { file, text } = sys.baseLine();
const texts: string[] = [text];
editsSys.forEach((sys, index) => {
const incrementalScenario = edits[index];
texts.push("");
texts.push(`Change:: ${incrementalScenario.subScenario}`);
texts.push(sys.baseLine().text);
});
return { file, text: texts.join("\r\n") };
}
}));
});
describe("tsc invocation after edit and clean build correctness", () => {
edits.forEach(({ commandLineArgs: editCommandLineArgs, subScenario, cleanBuildDiscrepancies }, index) => verifyTscEditCorrectness(() => ({
scenario,
baseFs,
newSys: editsSys[index],
commandLineArgs: editCommandLineArgs || commandLineArgs,
cleanBuildDiscrepancies,
editFs: fs => {
for (let i = 0; i <= index; i++) {
edits[i].modifyFs(fs);
}
},
modifyFs,
}), index, subScenario));
verifyTscBaseline(() => ({
baseLine: () => {
const { file, text } = sys.baseLine();
const texts: string[] = [text];
editsSys.forEach((sys, index) => {
const incrementalScenario = edits[index];
texts.push("");
texts.push(`Change:: ${incrementalScenario.subScenario}`);
texts.push(sys.baseLine().text);
});
return { file, text: texts.join("\r\n") };
}
}));
it("tsc invocation after edit and clean build correctness", () => {
let baselines: string[] | undefined;
for (let index = 0; index < edits.length; index++) {
baselines = verifyTscEditDiscrepancies({
index,
scenario,
subScenario: edits[index].subScenario,
baselines,
baseFs,
newSys: editsSys[index],
commandLineArgs: edits[index].commandLineArgs || commandLineArgs,
discrepancyExplanation: edits[index].discrepancyExplanation,
editFs: fs => {
for (let i = 0; i <= index; i++) {
edits[i].modifyFs(fs);
}
},
modifyFs
});
}
Harness.Baseline.runBaseline(
`${isBuild(commandLineArgs) ? "tsbuild" : "tsc"}/${scenario}/${subScenario.split(" ").join("-")}-discrepancies.js`,
baselines ? baselines.join("\r\n") : null // eslint-disable-line no-null/no-null
);
});
});
}

View File

@ -8,40 +8,81 @@ namespace ts {
projFs = undefined!;
});
function verifyNoEmitOnError(subScenario: string, fixModifyFs: TestTscEdit["modifyFs"], modifyFs?: TestTscEdit["modifyFs"]) {
verifyTscWithEdits({
scenario: "noEmitOnError",
subScenario,
fs: () => projFs,
modifyFs,
commandLineArgs: ["--b", "/src/tsconfig.json"],
edits: [
noChangeRun,
{
subScenario: "Fix error",
modifyFs: fixModifyFs,
},
noChangeRun,
],
baselinePrograms: true,
baselineIncremental: true
});
}
verifyNoEmitOnError(
"syntax errors",
fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
verifyTscWithEdits({
scenario: "noEmitOnError",
subScenario: "syntax errors",
fs: () => projFs,
commandLineArgs: ["--b", "/src/tsconfig.json"],
edits: [
noChangeRun,
{
subScenario: "Fix error",
modifyFs: fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
const a = {
lastName: 'sdsd'
};`, "utf-8")
);
};`, "utf-8"),
},
noChangeRun,
],
baselinePrograms: true,
});
verifyNoEmitOnError(
"semantic errors",
fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
verifyTscWithEdits({
scenario: "noEmitOnError",
subScenario: "syntax errors with incremental",
fs: () => projFs,
commandLineArgs: ["--b", "/src/tsconfig.json", "--incremental"],
edits: [
noChangeRun,
{
subScenario: "Fix error",
modifyFs: fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
const a = {
lastName: 'sdsd'
};`, "utf-8"),
discrepancyExplanation: noChangeWithExportsDiscrepancyRun.discrepancyExplanation,
},
noChangeWithExportsDiscrepancyRun,
],
baselinePrograms: true,
});
verifyTscWithEdits({
scenario: "noEmitOnError",
subScenario: "semantic errors",
fs: () => projFs,
modifyFs: fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
const a: string = 10;`, "utf-8"),
commandLineArgs: ["--b", "/src/tsconfig.json"],
edits: [
noChangeRun,
{
subScenario: "Fix error",
modifyFs: fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
const a: string = "hello";`, "utf-8"),
fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
const a: string = 10;`, "utf-8")
);
},
noChangeRun,
],
baselinePrograms: true,
});
verifyTscWithEdits({
scenario: "noEmitOnError",
subScenario: "semantic errors with incremental",
fs: () => projFs,
modifyFs: fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
const a: string = 10;`, "utf-8"),
commandLineArgs: ["--b", "/src/tsconfig.json", "--incremental"],
edits: [
noChangeWithExportsDiscrepancyRun,
{
subScenario: "Fix error",
modifyFs: fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
const a: string = "hello";`, "utf-8"),
},
noChangeRun,
],
baselinePrograms: true,
});
});
}

View File

@ -46,7 +46,7 @@ export function f22() { } // trailing`,
writtenFiles.add(path);
return originalWriteFile.call(sys, fileName, content, writeByteOrderMark);
};
const { cb, getPrograms } = commandLineCallbacks(sys, /*originalReadCall*/ undefined, originalWriteFile);
const { cb, getPrograms } = commandLineCallbacks(sys, /*originalReadCall*/ undefined);
const buildHost = createSolutionBuilderHost(
sys,
/*createProgram*/ undefined,

View File

@ -246,7 +246,7 @@ namespace ts {
)
);
const host = createSolutionBuilderHost(system);
const host = createSolutionBuilderHostForBaseline(system);
const builder = createSolutionBuilder(host, [testsConfig.path], {});
baseline.push("Input::");
baselineState();
@ -317,7 +317,7 @@ namespace ts {
)
);
const host = createSolutionBuilderHost(system);
const host = createSolutionBuilderHostForBaseline(system);
const builder = createSolutionBuilder(host, [testsConfig.path], { dry: false, force: false, verbose: false });
builder.build();
baselineState("Build of project");

View File

@ -10,7 +10,15 @@ namespace ts {
subScenario: "no-change-run",
modifyFs: noop
};
export const noChangeWithExportsDiscrepancyRun: TestTscEdit = {
...noChangeRun,
discrepancyExplanation: () => [
"Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files",
"Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed"
]
};
export const noChangeOnlyRuns = [noChangeRun];
export const noChangeWithExportsDiscrepancyOnlyRuns = [noChangeWithExportsDiscrepancyRun];
export interface TestTscCompile extends TestTscCompileLikeBase {
baselineSourceMap?: boolean;
@ -29,23 +37,22 @@ namespace ts {
return !!(program as Program | BuilderProgram).getCompilerOptions;
}
export function commandLineCallbacks(
sys: System & { writtenFiles: ReadonlyCollection<Path>; },
sys: TscCompileSystem | tscWatch.WatchedSystem,
originalReadCall?: System["readFile"],
originalWriteFile?: System["writeFile"],
): CommandLineCallbacks {
let programs: CommandLineProgram[] | undefined;
return {
cb: program => {
if (isAnyProgram(program)) {
baselineBuildInfo(program.getCompilerOptions(), sys, originalReadCall, originalWriteFile);
baselineBuildInfo(program.getCompilerOptions(), sys, originalReadCall);
(programs || (programs = [])).push(isBuilderProgram(program) ?
[program.getProgram(), program] :
[program]
);
}
else {
baselineBuildInfo(program.options, sys, originalReadCall, originalWriteFile);
baselineBuildInfo(program.options, sys, originalReadCall);
}
},
getPrograms: () => {
@ -122,16 +129,22 @@ ${patch ? vfs.formatPatch(patch) : ""}`
const originalWriteFile = sys.writeFile;
sys.writeFile = (fileName, content, writeByteOrderMark) => {
const path = toPathWithSystem(sys, fileName);
assert.isFalse(writtenFiles.has(path));
// When buildinfo is same for two projects,
// it gives error and doesnt write buildinfo but because buildInfo is written for one project,
// readable baseline will be written two times for those two projects with same contents and is ok
Debug.assert(!writtenFiles.has(path) || endsWith(path, "baseline.txt"));
writtenFiles.add(path);
return originalWriteFile.call(sys, fileName, content, writeByteOrderMark);
};
return originalWriteFile;
}
export function createSolutionBuilderHostForBaseline(sys: TscCompileSystem, versionToWrite?: string) {
makeSystemReadyForBaseline(sys, versionToWrite);
const { cb } = commandLineCallbacks(sys);
export function createSolutionBuilderHostForBaseline(
sys: TscCompileSystem | tscWatch.WatchedSystem,
versionToWrite?: string,
originalRead?: (TscCompileSystem | tscWatch.WatchedSystem)["readFile"]
) {
if (sys instanceof fakes.System) makeSystemReadyForBaseline(sys, versionToWrite);
const { cb } = commandLineCallbacks(sys, originalRead);
const host = createSolutionBuilderHost(sys,
/*createProgram*/ undefined,
createDiagnosticReporter(sys, /*pretty*/ true),
@ -155,7 +168,7 @@ ${patch ? vfs.formatPatch(patch) : ""}`
});
function commandLineCompile(sys: TscCompileSystem) {
const originalWriteFile = makeSystemReadyForBaseline(sys);
makeSystemReadyForBaseline(sys);
actualReadFileMap = {};
const originalReadFile = sys.readFile;
sys.readFile = path => {
@ -166,7 +179,7 @@ ${patch ? vfs.formatPatch(patch) : ""}`
return originalReadFile.call(sys, path);
};
const result = commandLineCallbacks(sys, originalReadFile, originalWriteFile);
const result = commandLineCallbacks(sys, originalReadFile);
executeCommandLine(
sys,
result.cb,

View File

@ -90,7 +90,7 @@ namespace ts {
commandLineArgs: ["--incremental", "-p", "src"],
modifyFs,
edits: [
noChangeRun,
noChangeWithExportsDiscrepancyRun,
{
subScenario: "incremental-declaration-doesnt-change",
modifyFs: fixModifyFs
@ -123,15 +123,20 @@ const a: string = 10;`, "utf-8"),
verifyNoEmitChanges({ composite: true });
function verifyNoEmitChanges(compilerOptions: CompilerOptions) {
const discrepancyIfNoDtsEmit = getEmitDeclarations(compilerOptions) ?
undefined :
noChangeWithExportsDiscrepancyRun.discrepancyExplanation;
const noChangeRunWithNoEmit: TestTscEdit = {
...noChangeRun,
subScenario: "No Change run with noEmit",
commandLineArgs: ["--p", "src/project", "--noEmit"],
discrepancyExplanation: discrepancyIfNoDtsEmit,
};
const noChangeRunWithEmit: TestTscEdit = {
...noChangeRun,
subScenario: "No Change run with emit",
commandLineArgs: ["--p", "src/project"],
discrepancyExplanation: discrepancyIfNoDtsEmit,
};
let optionsString = "";
for (const key in compilerOptions) {
@ -152,10 +157,12 @@ const a: string = 10;`, "utf-8"),
subScenario: "Introduce error but still noEmit",
commandLineArgs: ["--p", "src/project", "--noEmit"],
modifyFs: fs => replaceText(fs, "/src/project/src/class.ts", "prop", "prop1"),
discrepancyExplanation: getEmitDeclarations(compilerOptions) ? noChangeWithExportsDiscrepancyRun.discrepancyExplanation : undefined,
},
{
subScenario: "Fix error and emit",
modifyFs: fs => replaceText(fs, "/src/project/src/class.ts", "prop1", "prop"),
discrepancyExplanation: discrepancyIfNoDtsEmit
},
noChangeRunWithEmit,
noChangeRunWithNoEmit,
@ -164,6 +171,7 @@ const a: string = 10;`, "utf-8"),
{
subScenario: "Introduce error and emit",
modifyFs: fs => replaceText(fs, "/src/project/src/class.ts", "prop", "prop1"),
discrepancyExplanation: discrepancyIfNoDtsEmit
},
noChangeRunWithEmit,
noChangeRunWithNoEmit,
@ -173,6 +181,7 @@ const a: string = 10;`, "utf-8"),
subScenario: "Fix error and no emit",
commandLineArgs: ["--p", "src/project", "--noEmit"],
modifyFs: fs => replaceText(fs, "/src/project/src/class.ts", "prop1", "prop"),
discrepancyExplanation: noChangeWithExportsDiscrepancyRun.discrepancyExplanation,
},
noChangeRunWithEmit,
noChangeRunWithNoEmit,
@ -196,6 +205,7 @@ const a: string = 10;`, "utf-8"),
{
subScenario: "Fix error and no emit",
modifyFs: fs => replaceText(fs, "/src/project/src/class.ts", "prop1", "prop"),
discrepancyExplanation: noChangeWithExportsDiscrepancyRun.discrepancyExplanation
},
noChangeRunWithEmit,
],
@ -352,11 +362,10 @@ declare global {
{
subScenario: "Add class3 to project1 and build it",
modifyFs: fs => fs.writeFileSync("/src/projects/project1/class3.ts", `class class3 {}`, "utf-8"),
cleanBuildDiscrepancies: () => new Map<string, CleanBuildDescrepancy>([
// Ts buildinfo will not be updated in incremental build so it will have semantic diagnostics cached from previous build
// But in clean build because of global diagnostics, semantic diagnostics are not queried so not cached in tsbuildinfo
["/src/projects/project2/tsconfig.tsbuildinfo", CleanBuildDescrepancy.CleanFileTextDifferent]
]),
discrepancyExplanation: () => [
"Ts buildinfo will not be updated in incremental build so it will have semantic diagnostics cached from previous build",
"But in clean build because of global diagnostics, semantic diagnostics are not queried so not cached in tsbuildinfo",
],
},
{
subScenario: "Add output of class3",
@ -372,11 +381,10 @@ declare global {
{
subScenario: "Delete output for class3",
modifyFs: fs => fs.unlinkSync("/src/projects/project1/class3.d.ts"),
cleanBuildDiscrepancies: () => new Map<string, CleanBuildDescrepancy>([
// Ts buildinfo willbe updated but will retain lib file errors from previous build and not others because they are emitted because of change which results in clearing their semantic diagnostics cache
// But in clean build because of global diagnostics, semantic diagnostics are not queried so not cached in tsbuildinfo
["/src/projects/project2/tsconfig.tsbuildinfo", CleanBuildDescrepancy.CleanFileTextDifferent]
]),
discrepancyExplanation: () => [
"Ts buildinfo will be updated but will retain lib file errors from previous build and not others because they are emitted because of change which results in clearing their semantic diagnostics cache",
"But in clean build because of global diagnostics, semantic diagnostics are not queried so not cached in tsbuildinfo",
],
},
{
subScenario: "Create output for class3",

View File

@ -171,9 +171,10 @@ namespace ts.tscWatch {
export interface Baseline extends BaselineBase, CommandLineCallbacks {
}
export function createBaseline(system: WatchedSystem, modifySystem?: (sys: WatchedSystem) => void): Baseline {
export function createBaseline(system: WatchedSystem, modifySystem?: (sys: WatchedSystem, originalRead: WatchedSystem["readFile"]) => void): Baseline {
const originalRead = system.readFile;
const initialSys = fakes.patchHostForBuildInfoReadWrite(system);
modifySystem?.(initialSys);
modifySystem?.(initialSys, originalRead);
const sys = TestFSWithWatch.changeToHostTrackingWrittenFiles(initialSys);
const baseline: string[] = [];
baseline.push("Input::");
@ -410,30 +411,32 @@ namespace ts.tscWatch {
sys.writeFile(file, content.replace(searchValue, replaceValue));
}
export function createSolutionBuilder(system: WatchedSystem, rootNames: readonly string[], defaultOptions?: BuildOptions) {
const host = createSolutionBuilderHost(system);
return ts.createSolutionBuilder(host, rootNames, defaultOptions || {});
export function createSolutionBuilder(system: WatchedSystem, rootNames: readonly string[], originalRead?: WatchedSystem["readFile"]) {
const host = createSolutionBuilderHostForBaseline(system, /*versionToWrite*/ undefined, originalRead);
return ts.createSolutionBuilder(host, rootNames, {});
}
export function ensureErrorFreeBuild(host: WatchedSystem, rootNames: readonly string[]) {
// ts build should succeed
const solutionBuilder = createSolutionBuilder(host, rootNames, {});
solutionBuilder.build();
solutionBuildWithBaseline(host, rootNames);
assert.equal(host.getOutput().length, 0, JSON.stringify(host.getOutput(), /*replacer*/ undefined, " "));
}
export function createSystemWithSolutionBuild(solutionRoots: readonly string[], files: readonly TestFSWithWatch.FileOrFolderOrSymLink[], params?: TestFSWithWatch.TestServerHostCreationParameters) {
const sys = createWatchedSystem(files, params);
export function solutionBuildWithBaseline(sys: WatchedSystem, solutionRoots: readonly string[], originalRead?: WatchedSystem["readFile"]) {
const originalReadFile = sys.readFile;
const originalWrite = sys.write;
const originalWriteFile = sys.writeFile;
const solutionBuilder = createSolutionBuilder(TestFSWithWatch.changeToHostTrackingWrittenFiles(
fakes.patchHostForBuildInfoReadWrite(sys)
), solutionRoots, {});
), solutionRoots, originalRead);
solutionBuilder.build();
sys.readFile = originalReadFile;
sys.write = originalWrite;
sys.writeFile = originalWriteFile;
return sys;
}
export function createSystemWithSolutionBuild(solutionRoots: readonly string[], files: readonly TestFSWithWatch.FileOrFolderOrSymLink[], params?: TestFSWithWatch.TestServerHostCreationParameters) {
return solutionBuildWithBaseline(createWatchedSystem(files, params), solutionRoots);
}
}

View File

@ -10,10 +10,8 @@ namespace ts.tscWatch {
function verifyWatch({ files, config, subScenario }: VerifyWatchInput, alreadyBuilt: boolean) {
const { sys, baseline, oldSnap, cb, getPrograms } = createBaseline(
createWatchedSystem(files),
alreadyBuilt ? sys => {
const solutionBuilder = createSolutionBuilder(sys, [config], {});
solutionBuilder.build();
solutionBuilder.close();
alreadyBuilt ? (sys, originalRead) => {
solutionBuildWithBaseline(sys, [config], originalRead);
sys.clearOutput();
} : undefined
);

View File

@ -1278,8 +1278,7 @@ bar;`
const files = [solnConfig, sharedConfig, sharedIndex, sharedPackage, appConfig, appBar, appIndex, sharedSymlink, libFile];
const host = createServerHost(files);
if (built) {
const solutionBuilder = tscWatch.createSolutionBuilder(host, [solnConfig.path], {});
solutionBuilder.build();
tscWatch.solutionBuildWithBaseline(host, [solnConfig.path]);
host.clearOutput();
}
const session = createSession(host, { logger: createLoggerWithInMemoryLogs() });

View File

@ -0,0 +1,10 @@
0:: no-change-run
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/dev-build/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"../src/main.ts": [
"../shared/types/db.ts"
]
}
Clean: {}

View File

@ -0,0 +1,20 @@
1:: Fix error
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/dev-build/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"../src/main.ts": [
"../shared/types/db.ts"
]
}
Clean: {}
2:: no-change-run
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/dev-build/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"../src/main.ts": [
"../shared/types/db.ts"
]
}
Clean: {}

View File

@ -129,6 +129,54 @@ export declare function multiply(a: number, b: number): number;
//// [/user/username/projects/core/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"-2676574883-export const World = \"hello\";\r\n","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-18749805970-export const someString: string = \"HELLO WORLD\";\r\nexport function leftPad(s: string, n: number) { return s + n; }\r\nexport function multiply(a: number, b: number) { return a * b; }\r\n","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-9253692965-declare const dts: any;\r\n","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/core/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"./anothermodule.ts",
"./index.ts",
"./some_decl.d.ts"
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./anothermodule.ts": {
"version": "-2676574883-export const World = \"hello\";\r\n",
"signature": "-9234818176-export declare const World = \"hello\";\n"
},
"./index.ts": {
"version": "-18749805970-export const someString: string = \"HELLO WORLD\";\r\nexport function leftPad(s: string, n: number) { return s + n; }\r\nexport function multiply(a: number, b: number) { return a * b; }\r\n",
"signature": "-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"
},
"./some_decl.d.ts": {
"version": "-9253692965-declare const dts: any;\r\n",
"signature": "-9253692965-declare const dts: any;\r\n",
"affectsGlobalScope": true
}
},
"options": {
"composite": true,
"declaration": true,
"declarationMap": true,
"skipDefaultLibCheck": true
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"./anothermodule.ts",
"./index.ts",
"./some_decl.d.ts"
]
},
"version": "FakeTSVersion",
"size": 1352
}
Project Result:: {"project":"/user/username/projects/logic/tsconfig.json","result":0}
Output::
@ -158,6 +206,71 @@ export declare const m: typeof mod;
//// [/user/username/projects/logic/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",{"version":"-5786964698-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"fileIdsList":[[2,3],[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/logic/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/index.d.ts",
"../core/anothermodule.d.ts"
],
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"./index.ts": {
"version": "-5786964698-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n",
"signature": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"sourceMap": true
},
"referencedMap": {
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1469
}
Project Result:: {"project":"/user/username/projects/tests/tsconfig.json","result":0}
Output::
@ -182,6 +295,84 @@ export declare const m: typeof mod;
//// [/user/username/projects/tests/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","../logic/index.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map","-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",{"version":"12336236525-import * as c from '../core/index';\r\nimport * as logic from '../logic/index';\r\n\r\nc.leftPad(\"\", 10);\r\nlogic.getSecondsInDay();\r\n\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n","signature":"2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true},"fileIdsList":[[3],[2,3,4]],"referencedMap":[[4,1],[5,2]],"exportedModulesMap":[[4,1],[5,1]],"semanticDiagnosticsPerFile":[1,3,2,4,5]},"version":"FakeTSVersion"}
//// [/user/username/projects/tests/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/anothermodule.d.ts"
],
[
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"../logic/index.d.ts": {
"version": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"signature": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
},
"./index.ts": {
"version": "12336236525-import * as c from '../core/index';\r\nimport * as logic from '../logic/index';\r\n\r\nc.leftPad(\"\", 10);\r\nlogic.getSecondsInDay();\r\n\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true
},
"referencedMap": {
"../logic/index.d.ts": [
"../core/anothermodule.d.ts"
],
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts"
]
},
"exportedModulesMap": {
"../logic/index.d.ts": [
"../core/anothermodule.d.ts"
],
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"../logic/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1614
}
Project Result:: {}
Output::

View File

@ -125,6 +125,54 @@ export declare function multiply(a: number, b: number): number;
//// [/user/username/projects/core/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"-2676574883-export const World = \"hello\";\r\n","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-18749805970-export const someString: string = \"HELLO WORLD\";\r\nexport function leftPad(s: string, n: number) { return s + n; }\r\nexport function multiply(a: number, b: number) { return a * b; }\r\n","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-9253692965-declare const dts: any;\r\n","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/core/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"./anothermodule.ts",
"./index.ts",
"./some_decl.d.ts"
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./anothermodule.ts": {
"version": "-2676574883-export const World = \"hello\";\r\n",
"signature": "-9234818176-export declare const World = \"hello\";\n"
},
"./index.ts": {
"version": "-18749805970-export const someString: string = \"HELLO WORLD\";\r\nexport function leftPad(s: string, n: number) { return s + n; }\r\nexport function multiply(a: number, b: number) { return a * b; }\r\n",
"signature": "-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"
},
"./some_decl.d.ts": {
"version": "-9253692965-declare const dts: any;\r\n",
"signature": "-9253692965-declare const dts: any;\r\n",
"affectsGlobalScope": true
}
},
"options": {
"composite": true,
"declaration": true,
"declarationMap": true,
"skipDefaultLibCheck": true
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"./anothermodule.ts",
"./index.ts",
"./some_decl.d.ts"
]
},
"version": "FakeTSVersion",
"size": 1352
}
//// [/user/username/projects/logic/index.js.map]
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,iCAAmC;AACnC,SAAgB,eAAe;IAC3B,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAFD,0CAEC;AACD,2CAA6C;AAChC,QAAA,CAAC,GAAG,GAAG,CAAC"}
@ -150,6 +198,71 @@ export declare const m: typeof mod;
//// [/user/username/projects/logic/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",{"version":"-5786964698-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"fileIdsList":[[2,3],[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/logic/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/index.d.ts",
"../core/anothermodule.d.ts"
],
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"./index.ts": {
"version": "-5786964698-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n",
"signature": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"sourceMap": true
},
"referencedMap": {
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1469
}
//// [/user/username/projects/tests/index.js]
"use strict";
exports.__esModule = true;
@ -170,6 +283,84 @@ export declare const m: typeof mod;
//// [/user/username/projects/tests/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","../logic/index.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map","-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",{"version":"12336236525-import * as c from '../core/index';\r\nimport * as logic from '../logic/index';\r\n\r\nc.leftPad(\"\", 10);\r\nlogic.getSecondsInDay();\r\n\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n","signature":"2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true},"fileIdsList":[[3],[2,3,4]],"referencedMap":[[4,1],[5,2]],"exportedModulesMap":[[4,1],[5,1]],"semanticDiagnosticsPerFile":[1,3,2,4,5]},"version":"FakeTSVersion"}
//// [/user/username/projects/tests/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/anothermodule.d.ts"
],
[
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"../logic/index.d.ts": {
"version": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"signature": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
},
"./index.ts": {
"version": "12336236525-import * as c from '../core/index';\r\nimport * as logic from '../logic/index';\r\n\r\nc.leftPad(\"\", 10);\r\nlogic.getSecondsInDay();\r\n\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true
},
"referencedMap": {
"../logic/index.d.ts": [
"../core/anothermodule.d.ts"
],
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts"
]
},
"exportedModulesMap": {
"../logic/index.d.ts": [
"../core/anothermodule.d.ts"
],
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"../logic/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1614
}
Project should still be upto date: UpToDate
non Dts change to logic:: After rebuilding logicConfig
@ -205,6 +396,71 @@ function foo() { }
//// [/user/username/projects/logic/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",{"version":"-2207004071-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() {}","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"fileIdsList":[[2,3],[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/logic/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/index.d.ts",
"../core/anothermodule.d.ts"
],
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"./index.ts": {
"version": "-2207004071-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() {}",
"signature": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"sourceMap": true
},
"referencedMap": {
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1486
}
non Dts change to logic:: After building next project
Output::
@ -259,6 +515,71 @@ export declare class cNew {
//// [/user/username/projects/logic/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",{"version":"-5994214602-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() {}export class cNew {}","signature":"-10890883855-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare class cNew {\n}\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"fileIdsList":[[2,3],[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/logic/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/index.d.ts",
"../core/anothermodule.d.ts"
],
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"./index.ts": {
"version": "-5994214602-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() {}export class cNew {}",
"signature": "-10890883855-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare class cNew {\n}\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"sourceMap": true
},
"referencedMap": {
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1539
}
Dts change to Logic:: After building next project
Output::
@ -268,3 +589,81 @@ Output::
//// [/user/username/projects/tests/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","../logic/index.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map","-10890883855-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare class cNew {\n}\n",{"version":"12336236525-import * as c from '../core/index';\r\nimport * as logic from '../logic/index';\r\n\r\nc.leftPad(\"\", 10);\r\nlogic.getSecondsInDay();\r\n\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n","signature":"2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true},"fileIdsList":[[3],[2,3,4]],"referencedMap":[[4,1],[5,2]],"exportedModulesMap":[[4,1],[5,1]],"semanticDiagnosticsPerFile":[1,3,2,4,5]},"version":"FakeTSVersion"}
//// [/user/username/projects/tests/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/anothermodule.d.ts"
],
[
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"../logic/index.d.ts": {
"version": "-10890883855-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare class cNew {\n}\n",
"signature": "-10890883855-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare class cNew {\n}\n"
},
"./index.ts": {
"version": "12336236525-import * as c from '../core/index';\r\nimport * as logic from '../logic/index';\r\n\r\nc.leftPad(\"\", 10);\r\nlogic.getSecondsInDay();\r\n\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true
},
"referencedMap": {
"../logic/index.d.ts": [
"../core/anothermodule.d.ts"
],
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts"
]
},
"exportedModulesMap": {
"../logic/index.d.ts": [
"../core/anothermodule.d.ts"
],
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"../logic/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1647
}

View File

@ -0,0 +1,40 @@
2:: Introduce error but still noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
13:: Fix error and no emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}

View File

@ -0,0 +1,40 @@
2:: Introduce error but still noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
13:: Fix error and no emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}

View File

@ -0,0 +1,340 @@
0:: No Change run with noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
1:: No Change run with noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
3:: Fix error and emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
4:: No Change run with emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
5:: No Change run with noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
6:: No Change run with noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
7:: No Change run with emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
8:: Introduce error and emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
9:: No Change run with emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
10:: No Change run with noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
11:: No Change run with noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
12:: No Change run with emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
13:: Fix error and no emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
14:: No Change run with emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
15:: No Change run with noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
16:: No Change run with noEmit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
17:: No Change run with emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}

View File

@ -0,0 +1,20 @@
2:: Fix error and no emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}

View File

@ -0,0 +1,20 @@
2:: Fix error and no emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}

View File

@ -0,0 +1,60 @@
0:: No Change run with emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
2:: Fix error and no emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}
3:: No Change run with emit
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/project/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"./src/directuse.ts": [
"./src/indirectclass.ts"
],
"./src/indirectclass.ts": [
"./src/class.ts"
],
"./src/indirectuse.ts": [
"./src/indirectclass.ts"
]
}
Clean: {
"./src/indirectclass.ts": [
"./src/class.ts"
]
}

View File

@ -0,0 +1,112 @@
0:: Add class3 to project1 and build it
Ts buildinfo will not be updated in incremental build so it will have semantic diagnostics cached from previous build
But in clean build because of global diagnostics, semantic diagnostics are not queried so not cached in tsbuildinfo
TsBuild info text without affectedFilesPendingEmit:: /src/projects/project2/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"program": {
"fileInfos": {
"../../../lib/lib.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
},
"../project1/class1.d.ts": {
"version": "-3469237238-declare class class1 {}",
"affectsGlobalScope": true
},
"./class2.ts": {
"version": "777969115-class class2 {}",
"affectsGlobalScope": true
}
},
"options": {
"composite": true,
"module": 0
}
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"program": {
"fileInfos": {
"../../../lib/lib.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
},
"../project1/class1.d.ts": {
"version": "-3469237238-declare class class1 {}",
"affectsGlobalScope": true
},
"./class2.ts": {
"version": "777969115-class class2 {}",
"affectsGlobalScope": true
}
},
"options": {
"composite": true,
"module": 0
},
"semanticDiagnosticsPerFile": [
"../../../lib/lib.d.ts",
"../project1/class1.d.ts",
"./class2.ts"
]
},
"version": "FakeTSVersion"
}
3:: Delete output for class3
Ts buildinfo will be updated but will retain lib file errors from previous build and not others because they are emitted because of change which results in clearing their semantic diagnostics cache
But in clean build because of global diagnostics, semantic diagnostics are not queried so not cached in tsbuildinfo
TsBuild info text without affectedFilesPendingEmit:: /src/projects/project2/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"program": {
"fileInfos": {
"../../../lib/lib.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
},
"../project1/class1.d.ts": {
"version": "-3469237238-declare class class1 {}",
"affectsGlobalScope": true
},
"./class2.ts": {
"version": "777969115-class class2 {}",
"affectsGlobalScope": true
}
},
"options": {
"composite": true,
"module": 0
}
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"program": {
"fileInfos": {
"../../../lib/lib.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
},
"../project1/class1.d.ts": {
"version": "-3469237238-declare class class1 {}",
"affectsGlobalScope": true
},
"./class2.ts": {
"version": "777969115-class class2 {}",
"affectsGlobalScope": true
}
},
"options": {
"composite": true,
"module": 0
},
"semanticDiagnosticsPerFile": [
"../../../lib/lib.d.ts"
]
},
"version": "FakeTSVersion"
}

View File

@ -0,0 +1,10 @@
0:: no-change-run
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/dev-build/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"../src/main.ts": [
"../shared/types/db.ts"
]
}
Clean: {}

View File

@ -0,0 +1,10 @@
0:: no-change-run
Incremental build did not emit and has .ts as signature so exports has all imported modules/referenced files
Clean build always uses d.ts for signature for testing thus does not contain non exported modules/referenced files that arent needed
Incremental and clean size of maps do not match:: exportedModulesMap:: File:: /src/dev-build/tsconfig.tsbuildinfo.readable.baseline.txt
Incremental: {
"../src/main.ts": [
"../shared/types/db.ts"
]
}
Clean: {}

View File

@ -123,6 +123,54 @@ export declare function multiply(a: number, b: number): number;
//// [/user/username/projects/sample1/core/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./anothermodule.ts","./index.ts","./some_decl.d.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"-2676574883-export const World = \"hello\";\r\n","signature":"-9234818176-export declare const World = \"hello\";\n"},{"version":"-18749805970-export const someString: string = \"HELLO WORLD\";\r\nexport function leftPad(s: string, n: number) { return s + n; }\r\nexport function multiply(a: number, b: number) { return a * b; }\r\n","signature":"-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"},{"version":"-9253692965-declare const dts: any;\r\n","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"declarationMap":true,"skipDefaultLibCheck":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/sample1/core/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"./anothermodule.ts",
"./index.ts",
"./some_decl.d.ts"
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./anothermodule.ts": {
"version": "-2676574883-export const World = \"hello\";\r\n",
"signature": "-9234818176-export declare const World = \"hello\";\n"
},
"./index.ts": {
"version": "-18749805970-export const someString: string = \"HELLO WORLD\";\r\nexport function leftPad(s: string, n: number) { return s + n; }\r\nexport function multiply(a: number, b: number) { return a * b; }\r\n",
"signature": "-7362568283-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n"
},
"./some_decl.d.ts": {
"version": "-9253692965-declare const dts: any;\r\n",
"signature": "-9253692965-declare const dts: any;\r\n",
"affectsGlobalScope": true
}
},
"options": {
"composite": true,
"declaration": true,
"declarationMap": true,
"skipDefaultLibCheck": true
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"./anothermodule.ts",
"./index.ts",
"./some_decl.d.ts"
]
},
"version": "FakeTSVersion",
"size": 1355
}
//// [/user/username/projects/sample1/logic/index.js.map]
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,iCAAmC;AACnC,SAAgB,eAAe;IAC3B,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAFD,0CAEC;AACD,2CAA6C;AAChC,QAAA,CAAC,GAAG,GAAG,CAAC"}
@ -148,6 +196,71 @@ export declare const m: typeof mod;
//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",{"version":"-5786964698-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"fileIdsList":[[2,3],[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/index.d.ts",
"../core/anothermodule.d.ts"
],
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"./index.ts": {
"version": "-5786964698-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n",
"signature": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"sourceMap": true
},
"referencedMap": {
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1472
}
//// [/user/username/projects/sample1/tests/index.js]
"use strict";
exports.__esModule = true;
@ -168,13 +281,91 @@ export declare const m: typeof mod;
//// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","../logic/index.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map","-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",{"version":"12336236525-import * as c from '../core/index';\r\nimport * as logic from '../logic/index';\r\n\r\nc.leftPad(\"\", 10);\r\nlogic.getSecondsInDay();\r\n\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n","signature":"2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true},"fileIdsList":[[3],[2,3,4]],"referencedMap":[[4,1],[5,2]],"exportedModulesMap":[[4,1],[5,1]],"semanticDiagnosticsPerFile":[1,3,2,4,5]},"version":"FakeTSVersion"}
//// [/user/username/projects/sample1/tests/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/anothermodule.d.ts"
],
[
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"../logic/index.d.ts": {
"version": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n",
"signature": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
},
"./index.ts": {
"version": "12336236525-import * as c from '../core/index';\r\nimport * as logic from '../logic/index';\r\n\r\nc.leftPad(\"\", 10);\r\nlogic.getSecondsInDay();\r\n\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\n",
"signature": "2702201019-import * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true
},
"referencedMap": {
"../logic/index.d.ts": [
"../core/anothermodule.d.ts"
],
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"../logic/index.d.ts"
]
},
"exportedModulesMap": {
"../logic/index.d.ts": [
"../core/anothermodule.d.ts"
],
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"../logic/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1617
}
/a/lib/tsc.js -w -p tests
Output::
>> Screen clear
[12:01:07 AM] Starting compilation in watch mode...
[12:01:13 AM] Starting compilation in watch mode...
[12:01:08 AM] Found 0 errors. Watching for file changes.
[12:01:14 AM] Found 0 errors. Watching for file changes.
@ -278,12 +469,77 @@ function foo() { }
//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",{"version":"-4111660551-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() { }","signature":"-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"fileIdsList":[[2,3],[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/index.d.ts",
"../core/anothermodule.d.ts"
],
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"./index.ts": {
"version": "-4111660551-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() { }",
"signature": "-9659407152-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"sourceMap": true
},
"referencedMap": {
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1490
}
Output::
>> Screen clear
[12:01:23 AM] File change detected. Starting incremental compilation...
[12:01:32 AM] File change detected. Starting incremental compilation...
[12:01:24 AM] Found 0 errors. Watching for file changes.
[12:01:33 AM] Found 0 errors. Watching for file changes.
@ -395,12 +651,77 @@ export declare function gfoo(): void;
//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",{"version":"-380817803-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() { }export function gfoo() { }","signature":"-11367551051-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare function gfoo(): void;\n"}],"options":{"composite":true,"declaration":true,"skipDefaultLibCheck":true,"sourceMap":true},"fileIdsList":[[2,3],[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/index.d.ts",
"../core/anothermodule.d.ts"
],
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"./index.ts": {
"version": "-380817803-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() { }export function gfoo() { }",
"signature": "-11367551051-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare function gfoo(): void;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"skipDefaultLibCheck": true,
"sourceMap": true
},
"referencedMap": {
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1555
}
Output::
>> Screen clear
[12:01:39 AM] File change detected. Starting incremental compilation...
[12:01:51 AM] File change detected. Starting incremental compilation...
[12:01:49 AM] Found 0 errors. Watching for file changes.
[12:02:01 AM] Found 0 errors. Watching for file changes.
@ -583,6 +904,70 @@ exports.gfoo = gfoo;
//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../core/index.d.ts","../core/anothermodule.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map","-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",{"version":"-380817803-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() { }export function gfoo() { }","signature":"-11367551051-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare function gfoo(): void;\n"}],"options":{"composite":true,"declaration":true,"declarationDir":"./decls"},"fileIdsList":[[2,3],[3]],"referencedMap":[[4,1]],"exportedModulesMap":[[4,2]],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/sample1/logic/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../core/index.d.ts",
"../core/anothermodule.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../core/index.d.ts",
"../core/anothermodule.d.ts"
],
[
"../core/anothermodule.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../core/index.d.ts": {
"version": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map",
"signature": "-9047123202-export declare const someString: string;\nexport declare function leftPad(s: string, n: number): string;\nexport declare function multiply(a: number, b: number): number;\n//# sourceMappingURL=index.d.ts.map"
},
"../core/anothermodule.d.ts": {
"version": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map",
"signature": "-4454971016-export declare const World = \"hello\";\n//# sourceMappingURL=anotherModule.d.ts.map"
},
"./index.ts": {
"version": "-380817803-import * as c from '../core/index';\r\nexport function getSecondsInDay() {\r\n return c.multiply(10, 15);\r\n}\r\nimport * as mod from '../core/anotherModule';\r\nexport const m = mod;\r\nfunction foo() { }export function gfoo() { }",
"signature": "-11367551051-export declare function getSecondsInDay(): number;\nimport * as mod from '../core/anotherModule';\nexport declare const m: typeof mod;\nexport declare function gfoo(): void;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"declarationDir": "./decls"
},
"referencedMap": {
"./index.ts": [
"../core/index.d.ts",
"../core/anothermodule.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../core/anothermodule.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../core/anothermodule.d.ts",
"../core/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 1538
}
//// [/user/username/projects/sample1/logic/decls/index.d.ts]
export declare function getSecondsInDay(): number;
import * as mod from '../core/anotherModule';
@ -593,9 +978,9 @@ export declare function gfoo(): void;
Output::
>> Screen clear
[12:02:06 AM] File change detected. Starting incremental compilation...
[12:02:22 AM] File change detected. Starting incremental compilation...
[12:02:16 AM] Found 0 errors. Watching for file changes.
[12:02:32 AM] Found 0 errors. Watching for file changes.

View File

@ -59,6 +59,38 @@ export declare class A {
//// [/user/username/projects/transitiveReferences/a/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"-7264743946-export class A {}","signature":"-8728835846-export declare class A {\n}\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/a/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"./index.ts"
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./index.ts": {
"version": "-7264743946-export class A {}",
"signature": "-8728835846-export declare class A {\n}\n"
}
},
"options": {
"composite": true
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 718
}
//// [/user/username/projects/transitiveReferences/b/index.js]
"use strict";
exports.__esModule = true;
@ -75,6 +107,57 @@ export declare const b: A;
//// [/user/username/projects/transitiveReferences/b/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../a/index.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-8728835846-export declare class A {\n}\n",{"version":"-2591036212-import {A} from '@ref/a';\nexport const b = new A();","signature":"-9732944696-import { A } from '@ref/a';\nexport declare const b: A;\n"}],"options":{"composite":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/b/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../a/index.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../a/index.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../a/index.d.ts": {
"version": "-8728835846-export declare class A {\n}\n",
"signature": "-8728835846-export declare class A {\n}\n"
},
"./index.ts": {
"version": "-2591036212-import {A} from '@ref/a';\nexport const b = new A();",
"signature": "-9732944696-import { A } from '@ref/a';\nexport declare const b: A;\n"
}
},
"options": {
"composite": true
},
"referencedMap": {
"./index.ts": [
"../a/index.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../a/index.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../a/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 875
}
//// [/user/username/projects/transitiveReferences/c/index.js]
"use strict";
exports.__esModule = true;
@ -88,9 +171,9 @@ a_1.X;
/a/lib/tsc.js -w -p c
Output::
>> Screen clear
[12:00:53 AM] Starting compilation in watch mode...
[12:00:57 AM] Starting compilation in watch mode...
[12:00:57 AM] Found 0 errors. Watching for file changes.
[12:01:01 AM] Found 0 errors. Watching for file changes.
@ -210,12 +293,63 @@ export declare function gfoo(): void;
//// [/user/username/projects/transitiveReferences/b/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../a/index.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-8728835846-export declare class A {\n}\n",{"version":"1841609480-import {A} from '@ref/a';\nexport const b = new A();export function gfoo() { }","signature":"4376023469-import { A } from '@ref/a';\nexport declare const b: A;\nexport declare function gfoo(): void;\n"}],"options":{"composite":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/b/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../a/index.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../a/index.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../a/index.d.ts": {
"version": "-8728835846-export declare class A {\n}\n",
"signature": "-8728835846-export declare class A {\n}\n"
},
"./index.ts": {
"version": "1841609480-import {A} from '@ref/a';\nexport const b = new A();export function gfoo() { }",
"signature": "4376023469-import { A } from '@ref/a';\nexport declare const b: A;\nexport declare function gfoo(): void;\n"
}
},
"options": {
"composite": true
},
"referencedMap": {
"./index.ts": [
"../a/index.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../a/index.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../a/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 938
}
Output::
>> Screen clear
[12:01:09 AM] File change detected. Starting incremental compilation...
[12:01:16 AM] File change detected. Starting incremental compilation...
[12:01:13 AM] Found 0 errors. Watching for file changes.
[12:01:20 AM] Found 0 errors. Watching for file changes.
@ -313,9 +447,9 @@ export class A {}
Output::
>> Screen clear
[12:01:21 AM] File change detected. Starting incremental compilation...
[12:01:28 AM] File change detected. Starting incremental compilation...
[12:01:25 AM] Found 0 errors. Watching for file changes.
[12:01:32 AM] Found 0 errors. Watching for file changes.
@ -412,9 +546,9 @@ Input::
Output::
>> Screen clear
[12:01:29 AM] File change detected. Starting incremental compilation...
[12:01:36 AM] File change detected. Starting incremental compilation...
[12:01:33 AM] Found 0 errors. Watching for file changes.
[12:01:40 AM] Found 0 errors. Watching for file changes.
@ -511,9 +645,9 @@ Input::
Output::
>> Screen clear
[12:01:37 AM] File change detected. Starting incremental compilation...
[12:01:44 AM] File change detected. Starting incremental compilation...
[12:01:38 AM] Found 0 errors. Watching for file changes.
[12:01:45 AM] Found 0 errors. Watching for file changes.
@ -606,9 +740,9 @@ Input::
Output::
>> Screen clear
[12:01:42 AM] File change detected. Starting incremental compilation...
[12:01:49 AM] File change detected. Starting incremental compilation...
[12:01:43 AM] Found 0 errors. Watching for file changes.
[12:01:50 AM] Found 0 errors. Watching for file changes.
@ -688,14 +822,14 @@ Input::
Output::
>> Screen clear
[12:01:45 AM] File change detected. Starting incremental compilation...
[12:01:52 AM] File change detected. Starting incremental compilation...
c/tsconfig.json:1:84 - error TS6053: File '/user/username/projects/transitiveReferences/b' not found.
1 {"compilerOptions":{"baseUrl":"./","paths":{"@ref/*":["../refs/*"]}},"references":[{"path":"../b"}]}
   ~~~~~~~~~~~~~~~
[12:01:52 AM] Found 1 error. Watching for file changes.
[12:01:59 AM] Found 1 error. Watching for file changes.
@ -776,9 +910,9 @@ Input::
Output::
>> Screen clear
[12:01:55 AM] File change detected. Starting incremental compilation...
[12:02:02 AM] File change detected. Starting incremental compilation...
[12:01:59 AM] Found 0 errors. Watching for file changes.
[12:02:06 AM] Found 0 errors. Watching for file changes.
@ -873,14 +1007,14 @@ Input::
Output::
>> Screen clear
[12:02:01 AM] File change detected. Starting incremental compilation...
[12:02:08 AM] File change detected. Starting incremental compilation...
b/tsconfig.json:1:96 - error TS6053: File '/user/username/projects/transitiveReferences/a' not found.
1 {"compilerOptions":{"composite":true,"baseUrl":"./","paths":{"@ref/*":["../*"]}},"references":[{"path":"../a"}]}
   ~~~~~~~~~~~~~~~
[12:02:05 AM] Found 1 error. Watching for file changes.
[12:02:12 AM] Found 1 error. Watching for file changes.
@ -972,9 +1106,9 @@ Input::
Output::
>> Screen clear
[12:02:08 AM] File change detected. Starting incremental compilation...
[12:02:15 AM] File change detected. Starting incremental compilation...
[12:02:09 AM] Found 0 errors. Watching for file changes.
[12:02:16 AM] Found 0 errors. Watching for file changes.

View File

@ -59,6 +59,38 @@ export declare class A {
//// [/user/username/projects/transitiveReferences/a/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"-7264743946-export class A {}","signature":"-8728835846-export declare class A {\n}\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/a/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"./index.ts"
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./index.ts": {
"version": "-7264743946-export class A {}",
"signature": "-8728835846-export declare class A {\n}\n"
}
},
"options": {
"composite": true
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 718
}
//// [/user/username/projects/transitiveReferences/b/index.js]
"use strict";
exports.__esModule = true;
@ -75,6 +107,57 @@ export declare const b: A;
//// [/user/username/projects/transitiveReferences/b/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../a/index.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-8728835846-export declare class A {\n}\n",{"version":"-2591036212-import {A} from '@ref/a';\nexport const b = new A();","signature":"-9732944696-import { A } from '@ref/a';\nexport declare const b: A;\n"}],"options":{"composite":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/b/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../a/index.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../a/index.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../a/index.d.ts": {
"version": "-8728835846-export declare class A {\n}\n",
"signature": "-8728835846-export declare class A {\n}\n"
},
"./index.ts": {
"version": "-2591036212-import {A} from '@ref/a';\nexport const b = new A();",
"signature": "-9732944696-import { A } from '@ref/a';\nexport declare const b: A;\n"
}
},
"options": {
"composite": true
},
"referencedMap": {
"./index.ts": [
"../a/index.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../a/index.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../a/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 875
}
//// [/user/username/projects/transitiveReferences/c/index.js]
"use strict";
exports.__esModule = true;
@ -88,9 +171,9 @@ a_1.X;
/a/lib/tsc.js -w -p c
Output::
>> Screen clear
[12:00:53 AM] Starting compilation in watch mode...
[12:00:57 AM] Starting compilation in watch mode...
[12:00:57 AM] Found 0 errors. Watching for file changes.
[12:01:01 AM] Found 0 errors. Watching for file changes.
@ -206,12 +289,63 @@ export declare function gfoo(): void;
//// [/user/username/projects/transitiveReferences/b/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../a/lib/lib.d.ts","../a/index.d.ts","./index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-8728835846-export declare class A {\n}\n",{"version":"1841609480-import {A} from '@ref/a';\nexport const b = new A();export function gfoo() { }","signature":"4376023469-import { A } from '@ref/a';\nexport declare const b: A;\nexport declare function gfoo(): void;\n"}],"options":{"composite":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/b/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../a/lib/lib.d.ts",
"../a/index.d.ts",
"./index.ts"
],
"fileNamesList": [
[
"../a/index.d.ts"
]
],
"fileInfos": {
"../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../a/index.d.ts": {
"version": "-8728835846-export declare class A {\n}\n",
"signature": "-8728835846-export declare class A {\n}\n"
},
"./index.ts": {
"version": "1841609480-import {A} from '@ref/a';\nexport const b = new A();export function gfoo() { }",
"signature": "4376023469-import { A } from '@ref/a';\nexport declare const b: A;\nexport declare function gfoo(): void;\n"
}
},
"options": {
"composite": true
},
"referencedMap": {
"./index.ts": [
"../a/index.d.ts"
]
},
"exportedModulesMap": {
"./index.ts": [
"../a/index.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../a/lib/lib.d.ts",
"../a/index.d.ts",
"./index.ts"
]
},
"version": "FakeTSVersion",
"size": 938
}
Output::
>> Screen clear
[12:01:09 AM] File change detected. Starting incremental compilation...
[12:01:16 AM] File change detected. Starting incremental compilation...
[12:01:13 AM] Found 0 errors. Watching for file changes.
[12:01:20 AM] Found 0 errors. Watching for file changes.
@ -305,9 +439,9 @@ export class A {}
Output::
>> Screen clear
[12:01:21 AM] File change detected. Starting incremental compilation...
[12:01:28 AM] File change detected. Starting incremental compilation...
[12:01:25 AM] Found 0 errors. Watching for file changes.
[12:01:32 AM] Found 0 errors. Watching for file changes.
@ -400,9 +534,9 @@ Input::
Output::
>> Screen clear
[12:01:29 AM] File change detected. Starting incremental compilation...
[12:01:36 AM] File change detected. Starting incremental compilation...
[12:01:33 AM] Found 0 errors. Watching for file changes.
[12:01:40 AM] Found 0 errors. Watching for file changes.
@ -495,9 +629,9 @@ Input::
Output::
>> Screen clear
[12:01:37 AM] File change detected. Starting incremental compilation...
[12:01:44 AM] File change detected. Starting incremental compilation...
[12:01:38 AM] Found 0 errors. Watching for file changes.
[12:01:45 AM] Found 0 errors. Watching for file changes.
@ -585,9 +719,9 @@ Input::
Output::
>> Screen clear
[12:01:42 AM] File change detected. Starting incremental compilation...
[12:01:49 AM] File change detected. Starting incremental compilation...
[12:01:43 AM] Found 0 errors. Watching for file changes.
[12:01:50 AM] Found 0 errors. Watching for file changes.
@ -662,14 +796,14 @@ Input::
Output::
>> Screen clear
[12:01:45 AM] File change detected. Starting incremental compilation...
[12:01:52 AM] File change detected. Starting incremental compilation...
c/tsconfig.json:1:105 - error TS6053: File '/user/username/projects/transitiveReferences/b' not found.
1 {"compilerOptions":{"baseUrl":"./","paths":{"@ref/*":["../refs/*"]}},"files":["index.ts"],"references":[{"path":"../b"}]}
   ~~~~~~~~~~~~~~~
[12:01:52 AM] Found 1 error. Watching for file changes.
[12:01:59 AM] Found 1 error. Watching for file changes.
@ -748,9 +882,9 @@ Input::
Output::
>> Screen clear
[12:01:55 AM] File change detected. Starting incremental compilation...
[12:02:02 AM] File change detected. Starting incremental compilation...
[12:01:59 AM] Found 0 errors. Watching for file changes.
[12:02:06 AM] Found 0 errors. Watching for file changes.
@ -841,14 +975,14 @@ Input::
Output::
>> Screen clear
[12:02:01 AM] File change detected. Starting incremental compilation...
[12:02:08 AM] File change detected. Starting incremental compilation...
b/tsconfig.json:1:117 - error TS6053: File '/user/username/projects/transitiveReferences/a' not found.
1 {"compilerOptions":{"composite":true,"baseUrl":"./","paths":{"@ref/*":["../*"]}},"files":["index.ts"],"references":[{"path":"../a"}]}
   ~~~~~~~~~~~~~~~
[12:02:05 AM] Found 1 error. Watching for file changes.
[12:02:12 AM] Found 1 error. Watching for file changes.
@ -937,9 +1071,9 @@ Input::
Output::
>> Screen clear
[12:02:08 AM] File change detected. Starting incremental compilation...
[12:02:15 AM] File change detected. Starting incremental compilation...
[12:02:09 AM] Found 0 errors. Watching for file changes.
[12:02:16 AM] Found 0 errors. Watching for file changes.

View File

@ -83,6 +83,38 @@ export declare class A {
//// [/user/username/projects/transitiveReferences/tsconfig.a.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"-8566332115-export class A {}\r\n","signature":"-8728835846-export declare class A {\n}\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/tsconfig.a.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./a.ts": {
"version": "-8566332115-export class A {}\r\n",
"signature": "-8728835846-export declare class A {\n}\n"
}
},
"options": {
"composite": true
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 715
}
//// [/user/username/projects/transitiveReferences/b.js]
"use strict";
exports.__esModule = true;
@ -99,6 +131,57 @@ export declare const b: A;
//// [/user/username/projects/transitiveReferences/tsconfig.b.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","./a.d.ts","./b.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-8728835846-export declare class A {\n}\n",{"version":"-13104686224-import {A} from '@ref/a';\r\nexport const b = new A();\r\n","signature":"-9732944696-import { A } from '@ref/a';\nexport declare const b: A;\n"}],"options":{"composite":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/tsconfig.b.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"./a.d.ts",
"./b.ts"
],
"fileNamesList": [
[
"./a.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./a.d.ts": {
"version": "-8728835846-export declare class A {\n}\n",
"signature": "-8728835846-export declare class A {\n}\n"
},
"./b.ts": {
"version": "-13104686224-import {A} from '@ref/a';\r\nexport const b = new A();\r\n",
"signature": "-9732944696-import { A } from '@ref/a';\nexport declare const b: A;\n"
}
},
"options": {
"composite": true
},
"referencedMap": {
"./b.ts": [
"./a.d.ts"
]
},
"exportedModulesMap": {
"./b.ts": [
"./a.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"./a.d.ts",
"./b.ts"
]
},
"version": "FakeTSVersion",
"size": 868
}
//// [/user/username/projects/transitiveReferences/c.js]
"use strict";
exports.__esModule = true;
@ -112,9 +195,9 @@ a_1.X;
/a/lib/tsc.js -w -p tsconfig.c.json
Output::
>> Screen clear
[12:00:47 AM] Starting compilation in watch mode...
[12:00:51 AM] Starting compilation in watch mode...
[12:00:51 AM] Found 0 errors. Watching for file changes.
[12:00:55 AM] Found 0 errors. Watching for file changes.
@ -219,12 +302,63 @@ export declare function gfoo(): void;
//// [/user/username/projects/transitiveReferences/tsconfig.b.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","./a.d.ts","./b.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-8728835846-export declare class A {\n}\n",{"version":"-23418138964-import {A} from '@ref/a';\r\nexport const b = new A();\r\nexport function gfoo() { }","signature":"4376023469-import { A } from '@ref/a';\nexport declare const b: A;\nexport declare function gfoo(): void;\n"}],"options":{"composite":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/tsconfig.b.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"./a.d.ts",
"./b.ts"
],
"fileNamesList": [
[
"./a.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./a.d.ts": {
"version": "-8728835846-export declare class A {\n}\n",
"signature": "-8728835846-export declare class A {\n}\n"
},
"./b.ts": {
"version": "-23418138964-import {A} from '@ref/a';\r\nexport const b = new A();\r\nexport function gfoo() { }",
"signature": "4376023469-import { A } from '@ref/a';\nexport declare const b: A;\nexport declare function gfoo(): void;\n"
}
},
"options": {
"composite": true
},
"referencedMap": {
"./b.ts": [
"./a.d.ts"
]
},
"exportedModulesMap": {
"./b.ts": [
"./a.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"./a.d.ts",
"./b.ts"
]
},
"version": "FakeTSVersion",
"size": 932
}
Output::
>> Screen clear
[12:01:03 AM] File change detected. Starting incremental compilation...
[12:01:10 AM] File change detected. Starting incremental compilation...
[12:01:07 AM] Found 0 errors. Watching for file changes.
[12:01:14 AM] Found 0 errors. Watching for file changes.
@ -310,9 +444,9 @@ export class A {}
Output::
>> Screen clear
[12:01:15 AM] File change detected. Starting incremental compilation...
[12:01:22 AM] File change detected. Starting incremental compilation...
[12:01:19 AM] Found 0 errors. Watching for file changes.
[12:01:26 AM] Found 0 errors. Watching for file changes.
@ -393,9 +527,9 @@ Input::
Output::
>> Screen clear
[12:01:23 AM] File change detected. Starting incremental compilation...
[12:01:30 AM] File change detected. Starting incremental compilation...
[12:01:27 AM] Found 0 errors. Watching for file changes.
[12:01:34 AM] Found 0 errors. Watching for file changes.
@ -476,9 +610,9 @@ Input::
Output::
>> Screen clear
[12:01:31 AM] File change detected. Starting incremental compilation...
[12:01:38 AM] File change detected. Starting incremental compilation...
[12:01:32 AM] Found 0 errors. Watching for file changes.
[12:01:39 AM] Found 0 errors. Watching for file changes.
@ -560,9 +694,9 @@ Input::
Output::
>> Screen clear
[12:01:36 AM] File change detected. Starting incremental compilation...
[12:01:43 AM] File change detected. Starting incremental compilation...
[12:01:37 AM] Found 0 errors. Watching for file changes.
[12:01:44 AM] Found 0 errors. Watching for file changes.
@ -631,14 +765,14 @@ Input::
Output::
>> Screen clear
[12:01:39 AM] File change detected. Starting incremental compilation...
[12:01:46 AM] File change detected. Starting incremental compilation...
tsconfig.c.json:1:100 - error TS6053: File '/user/username/projects/transitiveReferences/tsconfig.b.json' not found.
1 {"files":["c.ts"],"compilerOptions":{"baseUrl":"./","paths":{"@ref/*":["./refs/*"]}},"references":[{"path":"tsconfig.b.json"}]}
   ~~~~~~~~~~~~~~~~~~~~~~~~~~
[12:01:46 AM] Found 1 error. Watching for file changes.
[12:01:53 AM] Found 1 error. Watching for file changes.
@ -722,9 +856,9 @@ Input::
Output::
>> Screen clear
[12:01:49 AM] File change detected. Starting incremental compilation...
[12:01:56 AM] File change detected. Starting incremental compilation...
[12:01:53 AM] Found 0 errors. Watching for file changes.
[12:02:00 AM] Found 0 errors. Watching for file changes.
@ -805,14 +939,14 @@ Input::
Output::
>> Screen clear
[12:01:55 AM] File change detected. Starting incremental compilation...
[12:02:02 AM] File change detected. Starting incremental compilation...
tsconfig.b.json:10:21 - error TS6053: File '/user/username/projects/transitiveReferences/tsconfig.a.json' not found.
10 "references": [ { "path": "tsconfig.a.json" } ]
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[12:01:59 AM] Found 1 error. Watching for file changes.
[12:02:06 AM] Found 1 error. Watching for file changes.
@ -894,9 +1028,9 @@ Input::
Output::
>> Screen clear
[12:02:02 AM] File change detected. Starting incremental compilation...
[12:02:09 AM] File change detected. Starting incremental compilation...
[12:02:03 AM] Found 0 errors. Watching for file changes.
[12:02:10 AM] Found 0 errors. Watching for file changes.

View File

@ -70,6 +70,38 @@ export declare class A {
//// [/user/username/projects/transitiveReferences/tsconfig.a.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"-8566332115-export class A {}\r\n","signature":"-8728835846-export declare class A {\n}\n"}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/tsconfig.a.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./a.ts": {
"version": "-8566332115-export class A {}\r\n",
"signature": "-8728835846-export declare class A {\n}\n"
}
},
"options": {
"composite": true
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 715
}
//// [/user/username/projects/transitiveReferences/b.js]
"use strict";
exports.__esModule = true;
@ -86,6 +118,57 @@ export declare const b: A;
//// [/user/username/projects/transitiveReferences/tsconfig.b.tsbuildinfo]
{"program":{"fileNames":["../../../../a/lib/lib.d.ts","./a.d.ts","./b.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-8728835846-export declare class A {\n}\n",{"version":"-19869990292-import {A} from \"a\";export const b = new A();","signature":"1870369234-import { A } from \"a\";\nexport declare const b: A;\n"}],"options":{"composite":true},"fileIdsList":[[2]],"referencedMap":[[3,1]],"exportedModulesMap":[[3,1]],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/transitiveReferences/tsconfig.b.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../a/lib/lib.d.ts",
"./a.d.ts",
"./b.ts"
],
"fileNamesList": [
[
"./a.d.ts"
]
],
"fileInfos": {
"../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./a.d.ts": {
"version": "-8728835846-export declare class A {\n}\n",
"signature": "-8728835846-export declare class A {\n}\n"
},
"./b.ts": {
"version": "-19869990292-import {A} from \"a\";export const b = new A();",
"signature": "1870369234-import { A } from \"a\";\nexport declare const b: A;\n"
}
},
"options": {
"composite": true
},
"referencedMap": {
"./b.ts": [
"./a.d.ts"
]
},
"exportedModulesMap": {
"./b.ts": [
"./a.d.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../a/lib/lib.d.ts",
"./a.d.ts",
"./b.ts"
]
},
"version": "FakeTSVersion",
"size": 853
}
//// [/user/username/projects/transitiveReferences/c.js]
"use strict";
exports.__esModule = true;
@ -99,9 +182,9 @@ a_1.X;
/a/lib/tsc.js -w -p tsconfig.c.json
Output::
>> Screen clear
[12:00:47 AM] Starting compilation in watch mode...
[12:00:51 AM] Starting compilation in watch mode...
[12:00:51 AM] Found 0 errors. Watching for file changes.
[12:00:55 AM] Found 0 errors. Watching for file changes.

View File

@ -62,6 +62,46 @@ export declare function foo(): void;
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","./src/bar.ts","./src/index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n"},{"version":"4646078106-export function foo() { }","signature":"-5677608893-export declare function foo(): void;\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar.ts",
"./src/index.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./src/bar.ts": {
"version": "1045484683-export function bar() { }",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/index.ts": {
"version": "4646078106-export function foo() { }",
"signature": "-5677608893-export declare function foo(): void;\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar.ts",
"./src/index.ts"
]
},
"version": "FakeTSVersion",
"size": 909
}
//// [/user/username/projects/myproject/packages/A/lib/index.js]
"use strict";
exports.__esModule = true;
@ -78,13 +118,70 @@ export {};
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../b/lib/index.d.ts","../b/lib/bar.d.ts","./src/index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-5677608893-export declare function foo(): void;\n","-2904461644-export declare function bar(): void;\n",{"version":"3563314629-import { foo } from 'b';\nimport { bar } from 'b/lib/bar';\nfoo();\nbar();\n","signature":"-3531856636-export {};\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"fileIdsList":[[2,3]],"referencedMap":[[4,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,4,3,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../b/lib/index.d.ts",
"../b/lib/bar.d.ts",
"./src/index.ts"
],
"fileNamesList": [
[
"../b/lib/index.d.ts",
"../b/lib/bar.d.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../b/lib/index.d.ts": {
"version": "-5677608893-export declare function foo(): void;\n",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"../b/lib/bar.d.ts": {
"version": "-2904461644-export declare function bar(): void;\n",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/index.ts": {
"version": "3563314629-import { foo } from 'b';\nimport { bar } from 'b/lib/bar';\nfoo();\nbar();\n",
"signature": "-3531856636-export {};\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {
"./src/index.ts": [
"../b/lib/index.d.ts",
"../b/lib/bar.d.ts"
]
},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/index.ts",
"../b/lib/bar.d.ts",
"../b/lib/index.d.ts"
]
},
"version": "FakeTSVersion",
"size": 980
}
/a/lib/tsc.js --w --p /user/username/projects/myproject/packages/A/tsconfig.json
Output::
>> Screen clear
[12:01:05 AM] Starting compilation in watch mode...
[12:01:09 AM] Starting compilation in watch mode...
[12:01:15 AM] Found 0 errors. Watching for file changes.
[12:01:19 AM] Found 0 errors. Watching for file changes.

View File

@ -62,6 +62,46 @@ export declare function foo(): void;
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","./src/bar.ts","./src/index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n"},{"version":"4646078106-export function foo() { }","signature":"-5677608893-export declare function foo(): void;\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar.ts",
"./src/index.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./src/bar.ts": {
"version": "1045484683-export function bar() { }",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/index.ts": {
"version": "4646078106-export function foo() { }",
"signature": "-5677608893-export declare function foo(): void;\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar.ts",
"./src/index.ts"
]
},
"version": "FakeTSVersion",
"size": 909
}
//// [/user/username/projects/myproject/packages/A/lib/index.js]
"use strict";
exports.__esModule = true;
@ -78,13 +118,70 @@ export {};
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../../node_modules/b/lib/index.d.ts","../../node_modules/b/lib/bar.d.ts","./src/index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-5677608893-export declare function foo(): void;\n","-2904461644-export declare function bar(): void;\n",{"version":"3563314629-import { foo } from 'b';\nimport { bar } from 'b/lib/bar';\nfoo();\nbar();\n","signature":"-3531856636-export {};\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"fileIdsList":[[2,3]],"referencedMap":[[4,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../../node_modules/b/lib/index.d.ts",
"../../node_modules/b/lib/bar.d.ts",
"./src/index.ts"
],
"fileNamesList": [
[
"../../node_modules/b/lib/index.d.ts",
"../../node_modules/b/lib/bar.d.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../../node_modules/b/lib/index.d.ts": {
"version": "-5677608893-export declare function foo(): void;\n",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"../../node_modules/b/lib/bar.d.ts": {
"version": "-2904461644-export declare function bar(): void;\n",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/index.ts": {
"version": "3563314629-import { foo } from 'b';\nimport { bar } from 'b/lib/bar';\nfoo();\nbar();\n",
"signature": "-3531856636-export {};\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {
"./src/index.ts": [
"../../node_modules/b/lib/index.d.ts",
"../../node_modules/b/lib/bar.d.ts"
]
},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"../../node_modules/b/lib/bar.d.ts",
"../../node_modules/b/lib/index.d.ts",
"./src/index.ts"
]
},
"version": "FakeTSVersion",
"size": 1012
}
/a/lib/tsc.js --w --p /user/username/projects/myproject/packages/A/tsconfig.json
Output::
>> Screen clear
[12:01:05 AM] Starting compilation in watch mode...
[12:01:09 AM] Starting compilation in watch mode...
[12:01:15 AM] Found 0 errors. Watching for file changes.
[12:01:19 AM] Found 0 errors. Watching for file changes.

View File

@ -62,6 +62,46 @@ export declare function foo(): void;
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","./src/bar.ts","./src/index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n"},{"version":"4646078106-export function foo() { }","signature":"-5677608893-export declare function foo(): void;\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar.ts",
"./src/index.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./src/bar.ts": {
"version": "1045484683-export function bar() { }",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/index.ts": {
"version": "4646078106-export function foo() { }",
"signature": "-5677608893-export declare function foo(): void;\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar.ts",
"./src/index.ts"
]
},
"version": "FakeTSVersion",
"size": 909
}
//// [/user/username/projects/myproject/packages/A/lib/index.js]
"use strict";
exports.__esModule = true;
@ -78,13 +118,70 @@ export {};
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../b/lib/index.d.ts","../b/lib/bar.d.ts","./src/index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-5677608893-export declare function foo(): void;\n","-2904461644-export declare function bar(): void;\n",{"version":"8545527381-import { foo } from '@issue/b';\nimport { bar } from '@issue/b/lib/bar';\nfoo();\nbar();\n","signature":"-3531856636-export {};\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"fileIdsList":[[2,3]],"referencedMap":[[4,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,4,3,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../b/lib/index.d.ts",
"../b/lib/bar.d.ts",
"./src/index.ts"
],
"fileNamesList": [
[
"../b/lib/index.d.ts",
"../b/lib/bar.d.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../b/lib/index.d.ts": {
"version": "-5677608893-export declare function foo(): void;\n",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"../b/lib/bar.d.ts": {
"version": "-2904461644-export declare function bar(): void;\n",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/index.ts": {
"version": "8545527381-import { foo } from '@issue/b';\nimport { bar } from '@issue/b/lib/bar';\nfoo();\nbar();\n",
"signature": "-3531856636-export {};\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {
"./src/index.ts": [
"../b/lib/index.d.ts",
"../b/lib/bar.d.ts"
]
},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/index.ts",
"../b/lib/bar.d.ts",
"../b/lib/index.d.ts"
]
},
"version": "FakeTSVersion",
"size": 994
}
/a/lib/tsc.js --w --p /user/username/projects/myproject/packages/A/tsconfig.json
Output::
>> Screen clear
[12:01:07 AM] Starting compilation in watch mode...
[12:01:11 AM] Starting compilation in watch mode...
[12:01:17 AM] Found 0 errors. Watching for file changes.
[12:01:21 AM] Found 0 errors. Watching for file changes.

View File

@ -62,6 +62,46 @@ export declare function foo(): void;
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","./src/bar.ts","./src/index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n"},{"version":"4646078106-export function foo() { }","signature":"-5677608893-export declare function foo(): void;\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar.ts",
"./src/index.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./src/bar.ts": {
"version": "1045484683-export function bar() { }",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/index.ts": {
"version": "4646078106-export function foo() { }",
"signature": "-5677608893-export declare function foo(): void;\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar.ts",
"./src/index.ts"
]
},
"version": "FakeTSVersion",
"size": 909
}
//// [/user/username/projects/myproject/packages/A/lib/index.js]
"use strict";
exports.__esModule = true;
@ -78,13 +118,70 @@ export {};
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../../node_modules/@issue/b/lib/index.d.ts","../../node_modules/@issue/b/lib/bar.d.ts","./src/index.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-5677608893-export declare function foo(): void;\n","-2904461644-export declare function bar(): void;\n",{"version":"8545527381-import { foo } from '@issue/b';\nimport { bar } from '@issue/b/lib/bar';\nfoo();\nbar();\n","signature":"-3531856636-export {};\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"fileIdsList":[[2,3]],"referencedMap":[[4,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../../node_modules/@issue/b/lib/index.d.ts",
"../../node_modules/@issue/b/lib/bar.d.ts",
"./src/index.ts"
],
"fileNamesList": [
[
"../../node_modules/@issue/b/lib/index.d.ts",
"../../node_modules/@issue/b/lib/bar.d.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../../node_modules/@issue/b/lib/index.d.ts": {
"version": "-5677608893-export declare function foo(): void;\n",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"../../node_modules/@issue/b/lib/bar.d.ts": {
"version": "-2904461644-export declare function bar(): void;\n",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/index.ts": {
"version": "8545527381-import { foo } from '@issue/b';\nimport { bar } from '@issue/b/lib/bar';\nfoo();\nbar();\n",
"signature": "-3531856636-export {};\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {
"./src/index.ts": [
"../../node_modules/@issue/b/lib/index.d.ts",
"../../node_modules/@issue/b/lib/bar.d.ts"
]
},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"../../node_modules/@issue/b/lib/bar.d.ts",
"../../node_modules/@issue/b/lib/index.d.ts",
"./src/index.ts"
]
},
"version": "FakeTSVersion",
"size": 1040
}
/a/lib/tsc.js --w --p /user/username/projects/myproject/packages/A/tsconfig.json
Output::
>> Screen clear
[12:01:07 AM] Starting compilation in watch mode...
[12:01:11 AM] Starting compilation in watch mode...
[12:01:17 AM] Found 0 errors. Watching for file changes.
[12:01:21 AM] Found 0 errors. Watching for file changes.

View File

@ -62,6 +62,46 @@ export declare function bar(): void;
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","./src/foo.ts","./src/bar/foo.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"4646078106-export function foo() { }","signature":"-5677608893-export declare function foo(): void;\n"},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,3,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"./src/foo.ts",
"./src/bar/foo.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./src/foo.ts": {
"version": "4646078106-export function foo() { }",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"./src/bar/foo.ts": {
"version": "1045484683-export function bar() { }",
"signature": "-2904461644-export declare function bar(): void;\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar/foo.ts",
"./src/foo.ts"
]
},
"version": "FakeTSVersion",
"size": 911
}
//// [/user/username/projects/myproject/packages/A/lib/test.js]
"use strict";
exports.__esModule = true;
@ -78,13 +118,70 @@ export {};
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../b/lib/foo.d.ts","../b/lib/bar/foo.d.ts","./src/test.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-5677608893-export declare function foo(): void;\n","-2904461644-export declare function bar(): void;\n",{"version":"14700910833-import { foo } from 'b/lib/foo';\nimport { bar } from 'b/lib/bar/foo';\nfoo();\nbar();\n","signature":"-3531856636-export {};\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"fileIdsList":[[2,3]],"referencedMap":[[4,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,4,3,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../b/lib/foo.d.ts",
"../b/lib/bar/foo.d.ts",
"./src/test.ts"
],
"fileNamesList": [
[
"../b/lib/foo.d.ts",
"../b/lib/bar/foo.d.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../b/lib/foo.d.ts": {
"version": "-5677608893-export declare function foo(): void;\n",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"../b/lib/bar/foo.d.ts": {
"version": "-2904461644-export declare function bar(): void;\n",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/test.ts": {
"version": "14700910833-import { foo } from 'b/lib/foo';\nimport { bar } from 'b/lib/bar/foo';\nfoo();\nbar();\n",
"signature": "-3531856636-export {};\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {
"./src/test.ts": [
"../b/lib/foo.d.ts",
"../b/lib/bar/foo.d.ts"
]
},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/test.ts",
"../b/lib/bar/foo.d.ts",
"../b/lib/foo.d.ts"
]
},
"version": "FakeTSVersion",
"size": 994
}
/a/lib/tsc.js --w --p /user/username/projects/myproject/packages/A/tsconfig.json
Output::
>> Screen clear
[12:01:10 AM] Starting compilation in watch mode...
[12:01:14 AM] Starting compilation in watch mode...
[12:01:20 AM] Found 0 errors. Watching for file changes.
[12:01:24 AM] Found 0 errors. Watching for file changes.

View File

@ -62,6 +62,46 @@ export declare function bar(): void;
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","./src/foo.ts","./src/bar/foo.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"4646078106-export function foo() { }","signature":"-5677608893-export declare function foo(): void;\n"},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,3,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"./src/foo.ts",
"./src/bar/foo.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./src/foo.ts": {
"version": "4646078106-export function foo() { }",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"./src/bar/foo.ts": {
"version": "1045484683-export function bar() { }",
"signature": "-2904461644-export declare function bar(): void;\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar/foo.ts",
"./src/foo.ts"
]
},
"version": "FakeTSVersion",
"size": 911
}
//// [/user/username/projects/myproject/packages/A/lib/test.js]
"use strict";
exports.__esModule = true;
@ -78,13 +118,70 @@ export {};
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../../node_modules/b/lib/foo.d.ts","../../node_modules/b/lib/bar/foo.d.ts","./src/test.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-5677608893-export declare function foo(): void;\n","-2904461644-export declare function bar(): void;\n",{"version":"14700910833-import { foo } from 'b/lib/foo';\nimport { bar } from 'b/lib/bar/foo';\nfoo();\nbar();\n","signature":"-3531856636-export {};\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"fileIdsList":[[2,3]],"referencedMap":[[4,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../../node_modules/b/lib/foo.d.ts",
"../../node_modules/b/lib/bar/foo.d.ts",
"./src/test.ts"
],
"fileNamesList": [
[
"../../node_modules/b/lib/foo.d.ts",
"../../node_modules/b/lib/bar/foo.d.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../../node_modules/b/lib/foo.d.ts": {
"version": "-5677608893-export declare function foo(): void;\n",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"../../node_modules/b/lib/bar/foo.d.ts": {
"version": "-2904461644-export declare function bar(): void;\n",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/test.ts": {
"version": "14700910833-import { foo } from 'b/lib/foo';\nimport { bar } from 'b/lib/bar/foo';\nfoo();\nbar();\n",
"signature": "-3531856636-export {};\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {
"./src/test.ts": [
"../../node_modules/b/lib/foo.d.ts",
"../../node_modules/b/lib/bar/foo.d.ts"
]
},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"../../node_modules/b/lib/bar/foo.d.ts",
"../../node_modules/b/lib/foo.d.ts",
"./src/test.ts"
]
},
"version": "FakeTSVersion",
"size": 1026
}
/a/lib/tsc.js --w --p /user/username/projects/myproject/packages/A/tsconfig.json
Output::
>> Screen clear
[12:01:10 AM] Starting compilation in watch mode...
[12:01:14 AM] Starting compilation in watch mode...
[12:01:20 AM] Found 0 errors. Watching for file changes.
[12:01:24 AM] Found 0 errors. Watching for file changes.

View File

@ -62,6 +62,46 @@ export declare function bar(): void;
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","./src/foo.ts","./src/bar/foo.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"4646078106-export function foo() { }","signature":"-5677608893-export declare function foo(): void;\n"},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,3,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"./src/foo.ts",
"./src/bar/foo.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./src/foo.ts": {
"version": "4646078106-export function foo() { }",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"./src/bar/foo.ts": {
"version": "1045484683-export function bar() { }",
"signature": "-2904461644-export declare function bar(): void;\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar/foo.ts",
"./src/foo.ts"
]
},
"version": "FakeTSVersion",
"size": 911
}
//// [/user/username/projects/myproject/packages/A/lib/test.js]
"use strict";
exports.__esModule = true;
@ -78,13 +118,70 @@ export {};
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../b/lib/foo.d.ts","../b/lib/bar/foo.d.ts","./src/test.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-5677608893-export declare function foo(): void;\n","-2904461644-export declare function bar(): void;\n",{"version":"-20350237855-import { foo } from '@issue/b/lib/foo';\nimport { bar } from '@issue/b/lib/bar/foo';\nfoo();\nbar();\n","signature":"-3531856636-export {};\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"fileIdsList":[[2,3]],"referencedMap":[[4,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,4,3,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../b/lib/foo.d.ts",
"../b/lib/bar/foo.d.ts",
"./src/test.ts"
],
"fileNamesList": [
[
"../b/lib/foo.d.ts",
"../b/lib/bar/foo.d.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../b/lib/foo.d.ts": {
"version": "-5677608893-export declare function foo(): void;\n",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"../b/lib/bar/foo.d.ts": {
"version": "-2904461644-export declare function bar(): void;\n",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/test.ts": {
"version": "-20350237855-import { foo } from '@issue/b/lib/foo';\nimport { bar } from '@issue/b/lib/bar/foo';\nfoo();\nbar();\n",
"signature": "-3531856636-export {};\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {
"./src/test.ts": [
"../b/lib/foo.d.ts",
"../b/lib/bar/foo.d.ts"
]
},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/test.ts",
"../b/lib/bar/foo.d.ts",
"../b/lib/foo.d.ts"
]
},
"version": "FakeTSVersion",
"size": 1009
}
/a/lib/tsc.js --w --p /user/username/projects/myproject/packages/A/tsconfig.json
Output::
>> Screen clear
[12:01:12 AM] Starting compilation in watch mode...
[12:01:16 AM] Starting compilation in watch mode...
[12:01:22 AM] Found 0 errors. Watching for file changes.
[12:01:26 AM] Found 0 errors. Watching for file changes.

View File

@ -62,6 +62,46 @@ export declare function bar(): void;
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","./src/foo.ts","./src/bar/foo.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},{"version":"4646078106-export function foo() { }","signature":"-5677608893-export declare function foo(): void;\n"},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,3,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/B/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"./src/foo.ts",
"./src/bar/foo.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"./src/foo.ts": {
"version": "4646078106-export function foo() { }",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"./src/bar/foo.ts": {
"version": "1045484683-export function bar() { }",
"signature": "-2904461644-export declare function bar(): void;\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"./src/bar/foo.ts",
"./src/foo.ts"
]
},
"version": "FakeTSVersion",
"size": 911
}
//// [/user/username/projects/myproject/packages/A/lib/test.js]
"use strict";
exports.__esModule = true;
@ -78,13 +118,70 @@ export {};
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../../node_modules/@issue/b/lib/foo.d.ts","../../node_modules/@issue/b/lib/bar/foo.d.ts","./src/test.ts"],"fileInfos":[{"version":"-7698705165-/// <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; }","affectsGlobalScope":true},"-5677608893-export declare function foo(): void;\n","-2904461644-export declare function bar(): void;\n",{"version":"-20350237855-import { foo } from '@issue/b/lib/foo';\nimport { bar } from '@issue/b/lib/bar/foo';\nfoo();\nbar();\n","signature":"-3531856636-export {};\n"}],"options":{"composite":true,"outDir":"./lib","rootDir":"./src"},"fileIdsList":[[2,3]],"referencedMap":[[4,1]],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,3,2,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/myproject/packages/A/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../../node_modules/@issue/b/lib/foo.d.ts",
"../../node_modules/@issue/b/lib/bar/foo.d.ts",
"./src/test.ts"
],
"fileNamesList": [
[
"../../node_modules/@issue/b/lib/foo.d.ts",
"../../node_modules/@issue/b/lib/bar/foo.d.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.d.ts": {
"version": "-7698705165-/// <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; }",
"signature": "-7698705165-/// <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; }",
"affectsGlobalScope": true
},
"../../node_modules/@issue/b/lib/foo.d.ts": {
"version": "-5677608893-export declare function foo(): void;\n",
"signature": "-5677608893-export declare function foo(): void;\n"
},
"../../node_modules/@issue/b/lib/bar/foo.d.ts": {
"version": "-2904461644-export declare function bar(): void;\n",
"signature": "-2904461644-export declare function bar(): void;\n"
},
"./src/test.ts": {
"version": "-20350237855-import { foo } from '@issue/b/lib/foo';\nimport { bar } from '@issue/b/lib/bar/foo';\nfoo();\nbar();\n",
"signature": "-3531856636-export {};\n"
}
},
"options": {
"composite": true,
"outDir": "./lib",
"rootDir": "./src"
},
"referencedMap": {
"./src/test.ts": [
"../../node_modules/@issue/b/lib/foo.d.ts",
"../../node_modules/@issue/b/lib/bar/foo.d.ts"
]
},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"../../node_modules/@issue/b/lib/bar/foo.d.ts",
"../../node_modules/@issue/b/lib/foo.d.ts",
"./src/test.ts"
]
},
"version": "FakeTSVersion",
"size": 1055
}
/a/lib/tsc.js --w --p /user/username/projects/myproject/packages/A/tsconfig.json
Output::
>> Screen clear
[12:01:12 AM] Starting compilation in watch mode...
[12:01:16 AM] Starting compilation in watch mode...
[12:01:22 AM] Found 0 errors. Watching for file changes.
[12:01:26 AM] Found 0 errors. Watching for file changes.

View File

@ -124,6 +124,48 @@ export declare function lastElementOf<T>(arr: T[]): T | undefined;
//// [/user/username/projects/demo/lib/core/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../../core/utilities.ts"],"fileInfos":[{"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},{"version":"25274411612-\r\nexport function makeRandomName() {\r\n return \"Bob!?! \";\r\n}\r\n\r\nexport function lastElementOf<T>(arr: T[]): T | undefined {\r\n if (arr.length === 0) return undefined;\r\n return arr[arr.length - 1];\r\n}\r\n\r\n","signature":"-11345568166-export declare function makeRandomName(): string;\nexport declare function lastElementOf<T>(arr: T[]): T | undefined;\n"}],"options":{"composite":true,"declaration":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../../core","strict":true,"target":1},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"}
//// [/user/username/projects/demo/lib/core/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../../core/utilities.ts"
],
"fileInfos": {
"../../../../../../a/lib/lib.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; };",
"signature": "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
},
"../../core/utilities.ts": {
"version": "25274411612-\r\nexport function makeRandomName() {\r\n return \"Bob!?! \";\r\n}\r\n\r\nexport function lastElementOf<T>(arr: T[]): T | undefined {\r\n if (arr.length === 0) return undefined;\r\n return arr[arr.length - 1];\r\n}\r\n\r\n",
"signature": "-11345568166-export declare function makeRandomName(): string;\nexport declare function lastElementOf<T>(arr: T[]): T | undefined;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"module": 1,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"outDir": "./",
"rootDir": "../../core",
"strict": true,
"target": 1
},
"referencedMap": {},
"exportedModulesMap": {},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"../../core/utilities.ts"
]
},
"version": "FakeTSVersion",
"size": 1319
}
//// [/user/username/projects/demo/lib/animals/animal.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@ -180,13 +222,103 @@ export declare function createDog(): Dog;
//// [/user/username/projects/demo/lib/animals/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../../../../../../a/lib/lib.d.ts","../../animals/animal.ts","../../animals/index.ts","../core/utilities.d.ts","../../animals/dog.ts"],"fileInfos":[{"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},{"version":"-14984181202-export type Size = \"small\" | \"medium\" | \"large\";\r\nexport default interface Animal {\r\n size: Size;\r\n}\r\n","signature":"-10510161654-export declare type Size = \"small\" | \"medium\" | \"large\";\nexport default interface Animal {\n size: Size;\n}\n"},{"version":"-5382672599-import Animal from './animal';\r\n\r\nexport default Animal;\r\nimport { createDog, Dog } from './dog';\r\nexport { createDog, Dog };\r\n","signature":"1096904574-import Animal from './animal';\nexport default Animal;\nimport { createDog, Dog } from './dog';\nexport { createDog, Dog };\n"},"-11345568166-export declare function makeRandomName(): string;\nexport declare function lastElementOf<T>(arr: T[]): T | undefined;\n",{"version":"-10991948013-import Animal from '.';\r\nimport { makeRandomName } from '../core/utilities';\r\n\r\nexport interface Dog extends Animal {\r\n woof(): void;\r\n name: string;\r\n}\r\n\r\nexport function createDog(): Dog {\r\n return ({\r\n size: \"medium\",\r\n woof: function(this: Dog) {\r\n console.log(`${this.name} says \"Woof\"!`);\r\n },\r\n name: makeRandomName()\r\n });\r\n}\r\n\r\n","signature":"6032048049-import Animal from '.';\nexport interface Dog extends Animal {\n woof(): void;\n name: string;\n}\nexport declare function createDog(): Dog;\n"}],"options":{"composite":true,"declaration":true,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../../animals","strict":true,"target":1},"fileIdsList":[[3,4],[2,5],[3]],"referencedMap":[[5,1],[3,2]],"exportedModulesMap":[[5,3],[3,2]],"semanticDiagnosticsPerFile":[1,2,5,3,4]},"version":"FakeTSVersion"}
//// [/user/username/projects/demo/lib/animals/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../../../../../../a/lib/lib.d.ts",
"../../animals/animal.ts",
"../../animals/index.ts",
"../core/utilities.d.ts",
"../../animals/dog.ts"
],
"fileNamesList": [
[
"../../animals/index.ts",
"../core/utilities.d.ts"
],
[
"../../animals/animal.ts",
"../../animals/dog.ts"
],
[
"../../animals/index.ts"
]
],
"fileInfos": {
"../../../../../../a/lib/lib.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; };",
"signature": "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
},
"../../animals/animal.ts": {
"version": "-14984181202-export type Size = \"small\" | \"medium\" | \"large\";\r\nexport default interface Animal {\r\n size: Size;\r\n}\r\n",
"signature": "-10510161654-export declare type Size = \"small\" | \"medium\" | \"large\";\nexport default interface Animal {\n size: Size;\n}\n"
},
"../../animals/index.ts": {
"version": "-5382672599-import Animal from './animal';\r\n\r\nexport default Animal;\r\nimport { createDog, Dog } from './dog';\r\nexport { createDog, Dog };\r\n",
"signature": "1096904574-import Animal from './animal';\nexport default Animal;\nimport { createDog, Dog } from './dog';\nexport { createDog, Dog };\n"
},
"../core/utilities.d.ts": {
"version": "-11345568166-export declare function makeRandomName(): string;\nexport declare function lastElementOf<T>(arr: T[]): T | undefined;\n",
"signature": "-11345568166-export declare function makeRandomName(): string;\nexport declare function lastElementOf<T>(arr: T[]): T | undefined;\n"
},
"../../animals/dog.ts": {
"version": "-10991948013-import Animal from '.';\r\nimport { makeRandomName } from '../core/utilities';\r\n\r\nexport interface Dog extends Animal {\r\n woof(): void;\r\n name: string;\r\n}\r\n\r\nexport function createDog(): Dog {\r\n return ({\r\n size: \"medium\",\r\n woof: function(this: Dog) {\r\n console.log(`${this.name} says \"Woof\"!`);\r\n },\r\n name: makeRandomName()\r\n });\r\n}\r\n\r\n",
"signature": "6032048049-import Animal from '.';\nexport interface Dog extends Animal {\n woof(): void;\n name: string;\n}\nexport declare function createDog(): Dog;\n"
}
},
"options": {
"composite": true,
"declaration": true,
"module": 1,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"outDir": "./",
"rootDir": "../../animals",
"strict": true,
"target": 1
},
"referencedMap": {
"../../animals/dog.ts": [
"../../animals/index.ts",
"../core/utilities.d.ts"
],
"../../animals/index.ts": [
"../../animals/animal.ts",
"../../animals/dog.ts"
]
},
"exportedModulesMap": {
"../../animals/dog.ts": [
"../../animals/index.ts"
],
"../../animals/index.ts": [
"../../animals/animal.ts",
"../../animals/dog.ts"
]
},
"semanticDiagnosticsPerFile": [
"../../../../../../a/lib/lib.d.ts",
"../../animals/animal.ts",
"../../animals/dog.ts",
"../../animals/index.ts",
"../core/utilities.d.ts"
]
},
"version": "FakeTSVersion",
"size": 2423
}
/a/lib/tsc.js --w --p /user/username/projects/demo/animals/tsconfig.json
Output::
>> Screen clear
[12:01:03 AM] Starting compilation in watch mode...
[12:01:07 AM] Starting compilation in watch mode...
[12:01:13 AM] Found 0 errors. Watching for file changes.
[12:01:17 AM] Found 0 errors. Watching for file changes.