mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-04-17 01:49:41 -05:00
Do not reuse ambient module name resolution from other files while determining if resolution can be reused (#59243)
This commit is contained in:
@@ -1794,11 +1794,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
|
||||
tryGetMemberInModuleExports: (name, symbol) => tryGetMemberInModuleExports(escapeLeadingUnderscores(name), symbol),
|
||||
tryGetMemberInModuleExportsAndProperties: (name, symbol) => tryGetMemberInModuleExportsAndProperties(escapeLeadingUnderscores(name), symbol),
|
||||
tryFindAmbientModule: moduleName => tryFindAmbientModule(moduleName, /*withAugmentations*/ true),
|
||||
tryFindAmbientModuleWithoutAugmentations: moduleName => {
|
||||
// we deliberately exclude augmentations
|
||||
// since we are only interested in declarations of the module itself
|
||||
return tryFindAmbientModule(moduleName, /*withAugmentations*/ false);
|
||||
},
|
||||
getApparentType,
|
||||
getUnionType,
|
||||
isTypeAssignableTo,
|
||||
|
||||
@@ -5113,10 +5113,6 @@
|
||||
"category": "Message",
|
||||
"code": 6144
|
||||
},
|
||||
"Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified.": {
|
||||
"category": "Message",
|
||||
"code": 6145
|
||||
},
|
||||
"Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.": {
|
||||
"category": "Message",
|
||||
"code": 6146
|
||||
|
||||
@@ -1545,7 +1545,6 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
|
||||
let commonSourceDirectory: string;
|
||||
let typeChecker: TypeChecker;
|
||||
let classifiableNames: Set<__String>;
|
||||
const ambientModuleNameToUnmodifiedFileName = new Map<string, string>();
|
||||
let fileReasons = createMultiMap<Path, FileIncludeReason>();
|
||||
let filesWithReferencesProcessed: Set<Path> | undefined;
|
||||
let fileReasonsToChain: Map<Path, FileReasonToChainCache> | undefined;
|
||||
@@ -2250,52 +2249,10 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
|
||||
canReuseResolutionsInFile: () =>
|
||||
containingFile === oldProgram?.getSourceFile(containingFile.fileName) &&
|
||||
!hasInvalidatedResolutions(containingFile.path),
|
||||
isEntryResolvingToAmbientModule: moduleNameResolvesToAmbientModule,
|
||||
resolveToOwnAmbientModule: true,
|
||||
});
|
||||
}
|
||||
|
||||
function moduleNameResolvesToAmbientModule(moduleName: StringLiteralLike, file: SourceFile) {
|
||||
// We know moduleName resolves to an ambient module provided that moduleName:
|
||||
// - is in the list of ambient modules locally declared in the current source file.
|
||||
// - resolved to an ambient module in the old program whose declaration is in an unmodified file
|
||||
// (so the same module declaration will land in the new program)
|
||||
if (contains(file.ambientModuleNames, moduleName.text)) {
|
||||
if (isTraceEnabled(options, host)) {
|
||||
trace(host, Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1, moduleName.text, getNormalizedAbsolutePath(file.originalFileName, currentDirectory));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName, file);
|
||||
}
|
||||
}
|
||||
|
||||
// If we change our policy of rechecking failed lookups on each program create,
|
||||
// we should adjust the value returned here.
|
||||
function moduleNameResolvesToAmbientModuleInNonModifiedFile(moduleName: StringLiteralLike, file: SourceFile): boolean {
|
||||
const resolutionToFile = oldProgram?.getResolvedModule(file, moduleName.text, getModeForUsageLocation(file, moduleName))?.resolvedModule;
|
||||
const resolvedFile = resolutionToFile && oldProgram!.getSourceFile(resolutionToFile.resolvedFileName);
|
||||
if (resolutionToFile && resolvedFile) {
|
||||
// In the old program, we resolved to an ambient module that was in the same
|
||||
// place as we expected to find an actual module file.
|
||||
// We actually need to return 'false' here even though this seems like a 'true' case
|
||||
// because the normal module resolution algorithm will find this anyway.
|
||||
return false;
|
||||
}
|
||||
|
||||
// at least one of declarations should come from non-modified source file
|
||||
const unmodifiedFile = ambientModuleNameToUnmodifiedFileName.get(moduleName.text);
|
||||
|
||||
if (!unmodifiedFile) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isTraceEnabled(options, host)) {
|
||||
trace(host, Diagnostics.Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified, moduleName.text, unmodifiedFile);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectiveNames: readonly FileReference[], containingFile: SourceFile): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[];
|
||||
function resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectiveNames: readonly string[], containingFile: string): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[];
|
||||
function resolveTypeReferenceDirectiveNamesReusingOldState<T extends string | FileReference>(typeDirectiveNames: readonly T[], containingFile: string | SourceFile): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[] {
|
||||
@@ -2333,7 +2290,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
|
||||
getResolutionFromOldProgram: (name: string, mode: ResolutionMode) => Resolution | undefined;
|
||||
getResolved: (oldResolution: Resolution) => ResolutionWithResolvedFileName | undefined;
|
||||
canReuseResolutionsInFile: () => boolean;
|
||||
isEntryResolvingToAmbientModule?: (entry: Entry, containingFile: SourceFileOrString) => boolean;
|
||||
resolveToOwnAmbientModule?: true;
|
||||
}
|
||||
|
||||
function resolveNamesReusingOldState<Entry, SourceFileOrString, SourceFileOrUndefined extends SourceFile | undefined, Resolution>({
|
||||
@@ -2346,10 +2303,10 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
|
||||
getResolutionFromOldProgram,
|
||||
getResolved,
|
||||
canReuseResolutionsInFile,
|
||||
isEntryResolvingToAmbientModule,
|
||||
resolveToOwnAmbientModule,
|
||||
}: ResolveNamesReusingOldStateInput<Entry, SourceFileOrString, SourceFileOrUndefined, Resolution>): readonly Resolution[] {
|
||||
if (!entries.length) return emptyArray;
|
||||
if (structureIsReused === StructureIsReused.Not && (!isEntryResolvingToAmbientModule || !containingSourceFile!.ambientModuleNames.length)) {
|
||||
if (structureIsReused === StructureIsReused.Not && (!resolveToOwnAmbientModule || !containingSourceFile!.ambientModuleNames.length)) {
|
||||
// If the old program state does not permit reusing resolutions and `file` does not contain locally defined ambient modules,
|
||||
// the best we can do is fallback to the default logic.
|
||||
return resolutionWorker(
|
||||
@@ -2394,14 +2351,27 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (isEntryResolvingToAmbientModule?.(entry, containingFile)) {
|
||||
(result ??= new Array(entries.length))[i] = emptyResolution;
|
||||
}
|
||||
else {
|
||||
// Resolution failed in the old program, or resolved to an ambient module for which we can't reuse the result.
|
||||
(unknownEntries ??= []).push(entry);
|
||||
(unknownEntryIndices ??= []).push(i);
|
||||
if (resolveToOwnAmbientModule) {
|
||||
const name = nameAndModeGetter.getName(entry);
|
||||
// We know moduleName resolves to an ambient module provided that moduleName:
|
||||
// - is in the list of ambient modules locally declared in the current source file.
|
||||
if (contains(containingSourceFile!.ambientModuleNames, name)) {
|
||||
if (isTraceEnabled(options, host)) {
|
||||
trace(
|
||||
host,
|
||||
Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1,
|
||||
name,
|
||||
getNormalizedAbsolutePath(containingSourceFile!.originalFileName, currentDirectory),
|
||||
);
|
||||
}
|
||||
(result ??= new Array(entries.length))[i] = emptyResolution;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
// Resolution failed in the old program, or resolved to an ambient module for which we can't reuse the result.
|
||||
(unknownEntries ??= []).push(entry);
|
||||
(unknownEntryIndices ??= []).push(i);
|
||||
}
|
||||
|
||||
if (!unknownEntries) return result!;
|
||||
@@ -2586,11 +2556,6 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
|
||||
// add file to the modified list so that we will resolve it later
|
||||
modifiedSourceFiles.push(newSourceFile);
|
||||
}
|
||||
else {
|
||||
for (const moduleName of oldSourceFile.ambientModuleNames) {
|
||||
ambientModuleNameToUnmodifiedFileName.set(moduleName, oldSourceFile.fileName);
|
||||
}
|
||||
}
|
||||
|
||||
// if file has passed all checks it should be safe to reuse it
|
||||
newSourceFiles.push(newSourceFile);
|
||||
|
||||
@@ -6,7 +6,6 @@ import {
|
||||
CompilerOptions,
|
||||
createModeAwareCache,
|
||||
createModuleResolutionCache,
|
||||
createMultiMap,
|
||||
createTypeReferenceDirectiveResolutionCache,
|
||||
createTypeReferenceResolutionLoader,
|
||||
Debug,
|
||||
@@ -572,7 +571,7 @@ export function createResolutionCache(resolutionHost: ResolutionCacheHost, rootD
|
||||
let filesWithChangedSetOfUnresolvedImports: Path[] | undefined;
|
||||
let filesWithInvalidatedResolutions: Set<Path> | undefined;
|
||||
let filesWithInvalidatedNonRelativeUnresolvedImports: ReadonlyMap<Path, readonly string[]> | undefined;
|
||||
const nonRelativeExternalModuleResolutions = createMultiMap<string, ResolutionWithFailedLookupLocations>();
|
||||
const nonRelativeExternalModuleResolutions = new Set<ResolutionWithFailedLookupLocations>();
|
||||
|
||||
const resolutionsWithFailedLookups = new Set<ResolutionWithFailedLookupLocations>();
|
||||
const resolutionsWithOnlyAffectingLocations = new Set<ResolutionWithFailedLookupLocations>();
|
||||
@@ -755,8 +754,7 @@ export function createResolutionCache(resolutionHost: ResolutionCacheHost, rootD
|
||||
libraryResolutionCache.clearAllExceptPackageJsonInfoCache();
|
||||
// perDirectoryResolvedModuleNames and perDirectoryResolvedTypeReferenceDirectives could be non empty if there was exception during program update
|
||||
// (between startCachingPerDirectoryResolution and finishCachingPerDirectoryResolution)
|
||||
nonRelativeExternalModuleResolutions.forEach(watchFailedLookupLocationOfNonRelativeModuleResolutions);
|
||||
nonRelativeExternalModuleResolutions.clear();
|
||||
watchFailedLookupLocationOfNonRelativeModuleResolutions();
|
||||
isSymlinkCache.clear();
|
||||
}
|
||||
|
||||
@@ -776,8 +774,7 @@ export function createResolutionCache(resolutionHost: ResolutionCacheHost, rootD
|
||||
function finishCachingPerDirectoryResolution(newProgram: Program | undefined, oldProgram: Program | undefined) {
|
||||
filesWithInvalidatedNonRelativeUnresolvedImports = undefined;
|
||||
allModuleAndTypeResolutionsAreInvalidated = false;
|
||||
nonRelativeExternalModuleResolutions.forEach(watchFailedLookupLocationOfNonRelativeModuleResolutions);
|
||||
nonRelativeExternalModuleResolutions.clear();
|
||||
watchFailedLookupLocationOfNonRelativeModuleResolutions();
|
||||
// Update file watches
|
||||
if (newProgram !== oldProgram) {
|
||||
cleanupLibResolutionWatching(newProgram);
|
||||
@@ -1103,7 +1100,7 @@ export function createResolutionCache(resolutionHost: ResolutionCacheHost, rootD
|
||||
watchFailedLookupLocationOfResolution(resolution);
|
||||
}
|
||||
else {
|
||||
nonRelativeExternalModuleResolutions.add(name, resolution);
|
||||
nonRelativeExternalModuleResolutions.add(resolution);
|
||||
}
|
||||
const resolved = getResolutionWithResolvedFileName(resolution);
|
||||
if (resolved && resolved.resolvedFileName) {
|
||||
@@ -1236,14 +1233,9 @@ export function createResolutionCache(resolutionHost: ResolutionCacheHost, rootD
|
||||
packageJsonMap?.delete(resolutionHost.toPath(path));
|
||||
}
|
||||
|
||||
function watchFailedLookupLocationOfNonRelativeModuleResolutions(resolutions: ResolutionWithFailedLookupLocations[], name: string) {
|
||||
const program = resolutionHost.getCurrentProgram();
|
||||
if (!program || !program.getTypeChecker().tryFindAmbientModuleWithoutAugmentations(name)) {
|
||||
resolutions.forEach(watchFailedLookupLocationOfResolution);
|
||||
}
|
||||
else {
|
||||
resolutions.forEach(resolution => watchAffectingLocationsOfResolution(resolution, /*addToResolutionsWithOnlyAffectingLocations*/ true));
|
||||
}
|
||||
function watchFailedLookupLocationOfNonRelativeModuleResolutions() {
|
||||
nonRelativeExternalModuleResolutions.forEach(watchFailedLookupLocationOfResolution);
|
||||
nonRelativeExternalModuleResolutions.clear();
|
||||
}
|
||||
|
||||
function createDirectoryWatcherForPackageDir(
|
||||
|
||||
@@ -5202,7 +5202,6 @@ export interface TypeChecker {
|
||||
/** @internal */ createIndexInfo(keyType: Type, type: Type, isReadonly: boolean, declaration?: SignatureDeclaration): IndexInfo;
|
||||
/** @internal */ isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node | undefined, meaning: SymbolFlags, shouldComputeAliasToMarkVisible: boolean): SymbolAccessibilityResult;
|
||||
/** @internal */ tryFindAmbientModule(moduleName: string): Symbol | undefined;
|
||||
/** @internal */ tryFindAmbientModuleWithoutAugmentations(moduleName: string): Symbol | undefined;
|
||||
|
||||
/** @internal */ getSymbolWalker(accept?: (symbol: Symbol) => boolean): SymbolWalker;
|
||||
|
||||
|
||||
@@ -40,8 +40,6 @@ export interface TscWatchCompileChange<T extends ts.BuilderProgram = ts.EmitAndS
|
||||
programs: readonly CommandLineProgram[],
|
||||
watchOrSolution: WatchOrSolution<T>,
|
||||
) => void;
|
||||
// TODO:: sheetal: Needing these fields are technically issues that need to be fixed later
|
||||
skipStructureCheck?: true;
|
||||
}
|
||||
export interface TscWatchCheckOptions {
|
||||
baselineSourceMap?: boolean;
|
||||
@@ -214,7 +212,7 @@ export function runWatchBaseline<T extends ts.BuilderProgram = ts.EmitAndSemanti
|
||||
});
|
||||
|
||||
if (edits) {
|
||||
for (const { caption, edit, timeouts, skipStructureCheck } of edits) {
|
||||
for (const { caption, edit, timeouts } of edits) {
|
||||
applyEdit(sys, baseline, edit, caption);
|
||||
timeouts(sys, programs, watchOrSolution);
|
||||
programs = watchBaseline({
|
||||
@@ -225,7 +223,7 @@ export function runWatchBaseline<T extends ts.BuilderProgram = ts.EmitAndSemanti
|
||||
baselineSourceMap,
|
||||
baselineDependencies,
|
||||
caption,
|
||||
resolutionCache: !skipStructureCheck ? (watchOrSolution as ts.WatchOfConfigFile<T> | undefined)?.getResolutionCache?.() : undefined,
|
||||
resolutionCache: (watchOrSolution as ts.WatchOfConfigFile<T> | undefined)?.getResolutionCache?.(),
|
||||
useSourceOfProjectReferenceRedirect,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -367,7 +367,7 @@ describe("unittests:: reuseProgramStructure:: General", () => {
|
||||
runBaseline("fetches imports after npm install", baselines);
|
||||
});
|
||||
|
||||
it("can reuse ambient module declarations from non-modified files", () => {
|
||||
it("should not reuse ambient module declarations from non-modified files", () => {
|
||||
const files = [
|
||||
{ name: "/a/b/app.ts", text: SourceText.New("", "import * as fs from 'fs'", "") },
|
||||
{ name: "/a/b/node.d.ts", text: SourceText.New("", "", "declare module 'fs' {}") },
|
||||
@@ -387,7 +387,7 @@ describe("unittests:: reuseProgramStructure:: General", () => {
|
||||
f[1].text = f[1].text.updateProgram("declare var process: any");
|
||||
});
|
||||
baselineProgram(baselines, program3);
|
||||
runBaseline("can reuse ambient module declarations from non-modified files", baselines);
|
||||
runBaseline("should not reuse ambient module declarations from non-modified files", baselines);
|
||||
});
|
||||
|
||||
it("can reuse module resolutions from non-modified files", () => {
|
||||
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
libFile,
|
||||
} from "../helpers/virtualFileSystemWithWatch.js";
|
||||
|
||||
describe("unittests:: tsc-watch:: moduleResolution", () => {
|
||||
describe("unittests:: tsc-watch:: moduleResolution::", () => {
|
||||
verifyTscWatch({
|
||||
scenario: "moduleResolution",
|
||||
subScenario: `watches for changes to package-json main fields`,
|
||||
@@ -640,4 +640,76 @@ describe("unittests:: tsc-watch:: moduleResolution", () => {
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
verifyTscWatch({
|
||||
scenario: "moduleResolution",
|
||||
subScenario: "ambient module names are resolved correctly",
|
||||
commandLineArgs: ["-w", "--extendedDiagnostics", "--explainFiles"],
|
||||
sys: () =>
|
||||
createWatchedSystem({
|
||||
"/home/src/project/tsconfig.json": jsonToReadableText({
|
||||
compilerOptions: {
|
||||
noEmit: true,
|
||||
traceResolution: true,
|
||||
},
|
||||
include: ["**/*.ts"],
|
||||
}),
|
||||
"/home/src/project/witha/node_modules/mymodule/index.d.ts": Utils.dedent`
|
||||
declare module 'mymodule' {
|
||||
export function readFile(): void;
|
||||
}
|
||||
declare module 'mymoduleutils' {
|
||||
export function promisify(): void;
|
||||
}
|
||||
`,
|
||||
"/home/src/project/witha/a.ts": Utils.dedent`
|
||||
import { readFile } from 'mymodule';
|
||||
import { promisify, promisify2 } from 'mymoduleutils';
|
||||
readFile();
|
||||
promisify();
|
||||
promisify2();
|
||||
`,
|
||||
"/home/src/project/withb/node_modules/mymodule/index.d.ts": Utils.dedent`
|
||||
declare module 'mymodule' {
|
||||
export function readFile(): void;
|
||||
}
|
||||
declare module 'mymoduleutils' {
|
||||
export function promisify2(): void;
|
||||
}
|
||||
`,
|
||||
"/home/src/project/withb/b.ts": Utils.dedent`
|
||||
import { readFile } from 'mymodule';
|
||||
import { promisify, promisify2 } from 'mymoduleutils';
|
||||
readFile();
|
||||
promisify();
|
||||
promisify2();
|
||||
`,
|
||||
[libFile.path]: libFile.content,
|
||||
}, { currentDirectory: "/home/src/project" }),
|
||||
edits: [
|
||||
{
|
||||
caption: "remove a file that will remove module augmentation",
|
||||
edit: sys => {
|
||||
sys.replaceFileText("/home/src/project/withb/b.ts", `import { readFile } from 'mymodule';`, "");
|
||||
sys.deleteFile("/home/src/project/withb/node_modules/mymodule/index.d.ts");
|
||||
},
|
||||
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
|
||||
},
|
||||
{
|
||||
caption: "write a file that will add augmentation",
|
||||
edit: sys => {
|
||||
sys.ensureFileOrFolder({
|
||||
path: "/home/src/project/withb/node_modules/mymoduleutils/index.d.ts",
|
||||
content: Utils.dedent`
|
||||
declare module 'mymoduleutils' {
|
||||
export function promisify2(): void;
|
||||
}
|
||||
`,
|
||||
});
|
||||
sys.replaceFileText("/home/src/project/withb/b.ts", `readFile();`, "");
|
||||
},
|
||||
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
@@ -302,10 +302,6 @@ declare module "fs" {
|
||||
`,
|
||||
),
|
||||
timeouts: sys => sys.runQueuedTimeoutCallbacks(),
|
||||
// This is currently issue with ambient modules in same file not leading to resolution watching
|
||||
// In this case initially resolution is watched and will continued to be watched but
|
||||
// incremental check will determine that the resolution should not be watched as thats what would have happened if we had started tsc --watch at this state.
|
||||
skipStructureCheck: true,
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
@@ -549,6 +549,8 @@ export const x = 10;`,
|
||||
const host = createServerHost(files);
|
||||
const session = new TestSession(host);
|
||||
openFilesForSession([{ file: srcFile.path, content: srcFile.content, scriptKindName: "TS", projectRootPath: "/user/username/projects/myproject" }], session);
|
||||
host.writeFile("/user/username/projects/myproject/src/somefolder/module1.js", "export const x = 10;");
|
||||
host.runQueuedTimeoutCallbacks();
|
||||
baselineTsserverLogs("resolutionCache", scenario, session);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -114,7 +114,34 @@ File: /a/b/node.d.ts
|
||||
|
||||
declare module 'fs' {}
|
||||
|
||||
Module 'fs' was resolved as ambient module declared in '/a/b/node.d.ts' since this file was not modified.
|
||||
======== Resolving module 'fs' from '/a/b/app.ts'. ========
|
||||
Module resolution kind is not specified, using 'Classic'.
|
||||
File '/a/b/fs.ts' does not exist.
|
||||
File '/a/b/fs.tsx' does not exist.
|
||||
File '/a/b/fs.d.ts' does not exist.
|
||||
File '/a/fs.ts' does not exist.
|
||||
File '/a/fs.tsx' does not exist.
|
||||
File '/a/fs.d.ts' does not exist.
|
||||
File '/fs.ts' does not exist.
|
||||
File '/fs.tsx' does not exist.
|
||||
File '/fs.d.ts' does not exist.
|
||||
Searching all ancestor node_modules directories for preferred extensions: Declaration.
|
||||
File '/a/b/node_modules/@types/fs/package.json' does not exist.
|
||||
File '/a/b/node_modules/@types/fs.d.ts' does not exist.
|
||||
File '/a/b/node_modules/@types/fs/index.d.ts' does not exist.
|
||||
File '/a/node_modules/@types/fs/package.json' does not exist.
|
||||
File '/a/node_modules/@types/fs.d.ts' does not exist.
|
||||
File '/a/node_modules/@types/fs/index.d.ts' does not exist.
|
||||
File '/node_modules/@types/fs/package.json' does not exist.
|
||||
File '/node_modules/@types/fs.d.ts' does not exist.
|
||||
File '/node_modules/@types/fs/index.d.ts' does not exist.
|
||||
File '/a/b/fs.js' does not exist.
|
||||
File '/a/b/fs.jsx' does not exist.
|
||||
File '/a/fs.js' does not exist.
|
||||
File '/a/fs.jsx' does not exist.
|
||||
File '/fs.js' does not exist.
|
||||
File '/fs.jsx' does not exist.
|
||||
======== Module name 'fs' was not resolved. ========
|
||||
|
||||
MissingPaths:: [
|
||||
"lib.d.ts"
|
||||
@@ -0,0 +1,447 @@
|
||||
currentDirectory:: /home/src/project useCaseSensitiveFileNames: false
|
||||
Input::
|
||||
//// [/home/src/project/tsconfig.json]
|
||||
{
|
||||
"compilerOptions": {
|
||||
"noEmit": true,
|
||||
"traceResolution": true
|
||||
},
|
||||
"include": [
|
||||
"**/*.ts"
|
||||
]
|
||||
}
|
||||
|
||||
//// [/home/src/project/witha/node_modules/mymodule/index.d.ts]
|
||||
declare module 'mymodule' {
|
||||
export function readFile(): void;
|
||||
}
|
||||
declare module 'mymoduleutils' {
|
||||
export function promisify(): void;
|
||||
}
|
||||
|
||||
|
||||
//// [/home/src/project/witha/a.ts]
|
||||
import { readFile } from 'mymodule';
|
||||
import { promisify, promisify2 } from 'mymoduleutils';
|
||||
readFile();
|
||||
promisify();
|
||||
promisify2();
|
||||
|
||||
|
||||
//// [/home/src/project/withb/node_modules/mymodule/index.d.ts]
|
||||
declare module 'mymodule' {
|
||||
export function readFile(): void;
|
||||
}
|
||||
declare module 'mymoduleutils' {
|
||||
export function promisify2(): void;
|
||||
}
|
||||
|
||||
|
||||
//// [/home/src/project/withb/b.ts]
|
||||
import { readFile } from 'mymodule';
|
||||
import { promisify, promisify2 } from 'mymoduleutils';
|
||||
readFile();
|
||||
promisify();
|
||||
promisify2();
|
||||
|
||||
|
||||
//// [/a/lib/lib.d.ts]
|
||||
/// <reference no-default-lib="true"/>
|
||||
interface Boolean {}
|
||||
interface Function {}
|
||||
interface CallableFunction {}
|
||||
interface NewableFunction {}
|
||||
interface IArguments {}
|
||||
interface Number { toExponential: any; }
|
||||
interface Object {}
|
||||
interface RegExp {}
|
||||
interface String { charAt: any; }
|
||||
interface Array<T> { length: number; [n: number]: T; }
|
||||
|
||||
|
||||
/a/lib/tsc.js -w --extendedDiagnostics --explainFiles
|
||||
Output::
|
||||
[[90mHH:MM:SS AM[0m] Starting compilation in watch mode...
|
||||
|
||||
Current directory: /home/src/project CaseSensitiveFileNames: false
|
||||
FileWatcher:: Added:: WatchInfo: /home/src/project/tsconfig.json 2000 undefined Config file
|
||||
Synchronizing program
|
||||
CreatingProgramWith::
|
||||
roots: ["/home/src/project/witha/a.ts","/home/src/project/withb/b.ts"]
|
||||
options: {"noEmit":true,"traceResolution":true,"watch":true,"extendedDiagnostics":true,"explainFiles":true,"configFilePath":"/home/src/project/tsconfig.json"}
|
||||
FileWatcher:: Added:: WatchInfo: /home/src/project/witha/a.ts 250 undefined Source file
|
||||
======== Resolving module 'mymodule' from '/home/src/project/witha/a.ts'. ========
|
||||
Module resolution kind is not specified, using 'Node10'.
|
||||
Loading module 'mymodule' from 'node_modules' folder, target file types: TypeScript, Declaration.
|
||||
Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration.
|
||||
File '/home/src/project/witha/node_modules/mymodule/package.json' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymodule.ts' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymodule.tsx' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymodule.d.ts' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymodule/index.ts' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymodule/index.tsx' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymodule/index.d.ts' exists - use it as a name resolution result.
|
||||
Resolving real path for '/home/src/project/witha/node_modules/mymodule/index.d.ts', result '/home/src/project/witha/node_modules/mymodule/index.d.ts'.
|
||||
======== Module name 'mymodule' was successfully resolved to '/home/src/project/witha/node_modules/mymodule/index.d.ts'. ========
|
||||
======== Resolving module 'mymoduleutils' from '/home/src/project/witha/a.ts'. ========
|
||||
Module resolution kind is not specified, using 'Node10'.
|
||||
Loading module 'mymoduleutils' from 'node_modules' folder, target file types: TypeScript, Declaration.
|
||||
Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.ts' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.tsx' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.d.ts' does not exist.
|
||||
Directory '/home/src/project/witha/node_modules/@types' does not exist, skipping all lookups in it.
|
||||
Directory '/home/src/project/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/home/src/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/home/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/node_modules' does not exist, skipping all lookups in it.
|
||||
Loading module 'mymoduleutils' from 'node_modules' folder, target file types: JavaScript.
|
||||
Searching all ancestor node_modules directories for fallback extensions: JavaScript.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.js' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.jsx' does not exist.
|
||||
Directory '/home/src/project/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/home/src/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/home/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/node_modules' does not exist, skipping all lookups in it.
|
||||
======== Module name 'mymoduleutils' was not resolved. ========
|
||||
FileWatcher:: Added:: WatchInfo: /home/src/project/witha/node_modules/mymodule/index.d.ts 250 undefined Source file
|
||||
FileWatcher:: Added:: WatchInfo: /home/src/project/withb/b.ts 250 undefined Source file
|
||||
======== Resolving module 'mymodule' from '/home/src/project/withb/b.ts'. ========
|
||||
Module resolution kind is not specified, using 'Node10'.
|
||||
Loading module 'mymodule' from 'node_modules' folder, target file types: TypeScript, Declaration.
|
||||
Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration.
|
||||
File '/home/src/project/withb/node_modules/mymodule/package.json' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymodule.ts' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymodule.tsx' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymodule.d.ts' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymodule/index.ts' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymodule/index.tsx' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymodule/index.d.ts' exists - use it as a name resolution result.
|
||||
Resolving real path for '/home/src/project/withb/node_modules/mymodule/index.d.ts', result '/home/src/project/withb/node_modules/mymodule/index.d.ts'.
|
||||
======== Module name 'mymodule' was successfully resolved to '/home/src/project/withb/node_modules/mymodule/index.d.ts'. ========
|
||||
======== Resolving module 'mymoduleutils' from '/home/src/project/withb/b.ts'. ========
|
||||
Module resolution kind is not specified, using 'Node10'.
|
||||
Loading module 'mymoduleutils' from 'node_modules' folder, target file types: TypeScript, Declaration.
|
||||
Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils.ts' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils.tsx' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils.d.ts' does not exist.
|
||||
Directory '/home/src/project/withb/node_modules/@types' does not exist, skipping all lookups in it.
|
||||
Resolution for module 'mymoduleutils' was found in cache from location '/home/src/project'.
|
||||
======== Module name 'mymoduleutils' was not resolved. ========
|
||||
FileWatcher:: Added:: WatchInfo: /home/src/project/withb/node_modules/mymodule/index.d.ts 250 undefined Source file
|
||||
FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 250 undefined Source file
|
||||
DirectoryWatcher:: Added:: WatchInfo: /home/src/project/witha 1 undefined Failed Lookup Locations
|
||||
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/project/witha 1 undefined Failed Lookup Locations
|
||||
DirectoryWatcher:: Added:: WatchInfo: /home/src/project/node_modules 1 undefined Failed Lookup Locations
|
||||
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/project/node_modules 1 undefined Failed Lookup Locations
|
||||
DirectoryWatcher:: Added:: WatchInfo: /home/src/project/withb 1 undefined Failed Lookup Locations
|
||||
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/project/withb 1 undefined Failed Lookup Locations
|
||||
DirectoryWatcher:: Added:: WatchInfo: /home/src/project/node_modules/@types 1 undefined Type roots
|
||||
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/project/node_modules/@types 1 undefined Type roots
|
||||
../../../a/lib/lib.d.ts
|
||||
Default library for target 'es5'
|
||||
witha/node_modules/mymodule/index.d.ts
|
||||
Imported via 'mymodule' from file 'witha/a.ts'
|
||||
witha/a.ts
|
||||
Matched by include pattern '**/*.ts' in 'tsconfig.json'
|
||||
withb/node_modules/mymodule/index.d.ts
|
||||
Imported via 'mymodule' from file 'withb/b.ts'
|
||||
withb/b.ts
|
||||
Matched by include pattern '**/*.ts' in 'tsconfig.json'
|
||||
[[90mHH:MM:SS AM[0m] Found 0 errors. Watching for file changes.
|
||||
|
||||
DirectoryWatcher:: Added:: WatchInfo: /home/src/project 1 undefined Wild card directory
|
||||
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/project 1 undefined Wild card directory
|
||||
|
||||
|
||||
|
||||
PolledWatches::
|
||||
/home/src/project/node_modules: *new*
|
||||
{"pollingInterval":500}
|
||||
/home/src/project/node_modules/@types: *new*
|
||||
{"pollingInterval":500}
|
||||
|
||||
FsWatches::
|
||||
/a/lib/lib.d.ts: *new*
|
||||
{}
|
||||
/home/src/project/tsconfig.json: *new*
|
||||
{}
|
||||
/home/src/project/witha/a.ts: *new*
|
||||
{}
|
||||
/home/src/project/witha/node_modules/mymodule/index.d.ts: *new*
|
||||
{}
|
||||
/home/src/project/withb/b.ts: *new*
|
||||
{}
|
||||
/home/src/project/withb/node_modules/mymodule/index.d.ts: *new*
|
||||
{}
|
||||
|
||||
FsWatchesRecursive::
|
||||
/home/src/project: *new*
|
||||
{}
|
||||
/home/src/project/witha: *new*
|
||||
{}
|
||||
/home/src/project/withb: *new*
|
||||
{}
|
||||
|
||||
Program root files: [
|
||||
"/home/src/project/witha/a.ts",
|
||||
"/home/src/project/withb/b.ts"
|
||||
]
|
||||
Program options: {
|
||||
"noEmit": true,
|
||||
"traceResolution": true,
|
||||
"watch": true,
|
||||
"extendedDiagnostics": true,
|
||||
"explainFiles": true,
|
||||
"configFilePath": "/home/src/project/tsconfig.json"
|
||||
}
|
||||
Program structureReused: Not
|
||||
Program files::
|
||||
/a/lib/lib.d.ts
|
||||
/home/src/project/witha/node_modules/mymodule/index.d.ts
|
||||
/home/src/project/witha/a.ts
|
||||
/home/src/project/withb/node_modules/mymodule/index.d.ts
|
||||
/home/src/project/withb/b.ts
|
||||
|
||||
Semantic diagnostics in builder refreshed for::
|
||||
/a/lib/lib.d.ts
|
||||
/home/src/project/witha/node_modules/mymodule/index.d.ts
|
||||
/home/src/project/witha/a.ts
|
||||
/home/src/project/withb/node_modules/mymodule/index.d.ts
|
||||
/home/src/project/withb/b.ts
|
||||
|
||||
Shape signatures in builder refreshed for::
|
||||
/a/lib/lib.d.ts (used version)
|
||||
/home/src/project/witha/node_modules/mymodule/index.d.ts (used version)
|
||||
/home/src/project/witha/a.ts (used version)
|
||||
/home/src/project/withb/node_modules/mymodule/index.d.ts (used version)
|
||||
/home/src/project/withb/b.ts (used version)
|
||||
|
||||
exitCode:: ExitStatus.undefined
|
||||
|
||||
Change:: remove a file that will remove module augmentation
|
||||
|
||||
Input::
|
||||
//// [/home/src/project/withb/b.ts]
|
||||
|
||||
import { promisify, promisify2 } from 'mymoduleutils';
|
||||
readFile();
|
||||
promisify();
|
||||
promisify2();
|
||||
|
||||
|
||||
//// [/home/src/project/withb/node_modules/mymodule/index.d.ts] deleted
|
||||
|
||||
Output::
|
||||
FileWatcher:: Triggered with /home/src/project/withb/b.ts 1:: WatchInfo: /home/src/project/withb/b.ts 250 undefined Source file
|
||||
Scheduling update
|
||||
Elapsed:: *ms FileWatcher:: Triggered with /home/src/project/withb/b.ts 1:: WatchInfo: /home/src/project/withb/b.ts 250 undefined Source file
|
||||
FileWatcher:: Triggered with /home/src/project/withb/node_modules/mymodule/index.d.ts 2:: WatchInfo: /home/src/project/withb/node_modules/mymodule/index.d.ts 250 undefined Source file
|
||||
Scheduling update
|
||||
Elapsed:: *ms FileWatcher:: Triggered with /home/src/project/withb/node_modules/mymodule/index.d.ts 2:: WatchInfo: /home/src/project/withb/node_modules/mymodule/index.d.ts 250 undefined Source file
|
||||
DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymodule/index.d.ts :: WatchInfo: /home/src/project/withb 1 undefined Failed Lookup Locations
|
||||
Scheduling invalidateFailedLookup
|
||||
Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymodule/index.d.ts :: WatchInfo: /home/src/project/withb 1 undefined Failed Lookup Locations
|
||||
DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymodule/index.d.ts :: WatchInfo: /home/src/project 1 undefined Wild card directory
|
||||
Scheduling update
|
||||
Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymodule/index.d.ts :: WatchInfo: /home/src/project 1 undefined Wild card directory
|
||||
|
||||
|
||||
Timeout callback:: count: 2
|
||||
3: timerToInvalidateFailedLookupResolutions *new*
|
||||
4: timerToUpdateProgram *new*
|
||||
|
||||
Before running Timeout callback:: count: 2
|
||||
3: timerToInvalidateFailedLookupResolutions
|
||||
4: timerToUpdateProgram
|
||||
|
||||
Host is moving to new time
|
||||
After running Timeout callback:: count: 1
|
||||
Output::
|
||||
Scheduling update
|
||||
|
||||
|
||||
|
||||
Timeout callback:: count: 1
|
||||
4: timerToUpdateProgram *deleted*
|
||||
5: timerToUpdateProgram *new*
|
||||
|
||||
|
||||
exitCode:: ExitStatus.undefined
|
||||
|
||||
Change:: write a file that will add augmentation
|
||||
|
||||
Input::
|
||||
//// [/home/src/project/withb/b.ts]
|
||||
|
||||
import { promisify, promisify2 } from 'mymoduleutils';
|
||||
|
||||
promisify();
|
||||
promisify2();
|
||||
|
||||
|
||||
//// [/home/src/project/withb/node_modules/mymoduleutils/index.d.ts]
|
||||
declare module 'mymoduleutils' {
|
||||
export function promisify2(): void;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Output::
|
||||
DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymoduleutils :: WatchInfo: /home/src/project/withb 1 undefined Failed Lookup Locations
|
||||
Scheduling invalidateFailedLookup
|
||||
Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymoduleutils :: WatchInfo: /home/src/project/withb 1 undefined Failed Lookup Locations
|
||||
DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymoduleutils :: WatchInfo: /home/src/project 1 undefined Wild card directory
|
||||
Scheduling update
|
||||
Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymoduleutils :: WatchInfo: /home/src/project 1 undefined Wild card directory
|
||||
DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymoduleutils/index.d.ts :: WatchInfo: /home/src/project/withb 1 undefined Failed Lookup Locations
|
||||
Scheduling invalidateFailedLookup, Cancelled earlier one
|
||||
Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymoduleutils/index.d.ts :: WatchInfo: /home/src/project/withb 1 undefined Failed Lookup Locations
|
||||
DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymoduleutils/index.d.ts :: WatchInfo: /home/src/project 1 undefined Wild card directory
|
||||
Scheduling update
|
||||
Elapsed:: *ms DirectoryWatcher:: Triggered with /home/src/project/withb/node_modules/mymoduleutils/index.d.ts :: WatchInfo: /home/src/project 1 undefined Wild card directory
|
||||
FileWatcher:: Triggered with /home/src/project/withb/b.ts 1:: WatchInfo: /home/src/project/withb/b.ts 250 undefined Source file
|
||||
Scheduling update
|
||||
Elapsed:: *ms FileWatcher:: Triggered with /home/src/project/withb/b.ts 1:: WatchInfo: /home/src/project/withb/b.ts 250 undefined Source file
|
||||
|
||||
|
||||
Timeout callback:: count: 2
|
||||
5: timerToUpdateProgram *deleted*
|
||||
8: timerToInvalidateFailedLookupResolutions *new*
|
||||
10: timerToUpdateProgram *new*
|
||||
|
||||
Before running Timeout callback:: count: 2
|
||||
8: timerToInvalidateFailedLookupResolutions
|
||||
10: timerToUpdateProgram
|
||||
|
||||
Host is moving to new time
|
||||
After running Timeout callback:: count: 0
|
||||
Output::
|
||||
Reloading new file names and options
|
||||
Synchronizing program
|
||||
[[90mHH:MM:SS AM[0m] File change detected. Starting incremental compilation...
|
||||
|
||||
CreatingProgramWith::
|
||||
roots: ["/home/src/project/witha/a.ts","/home/src/project/withb/b.ts"]
|
||||
options: {"noEmit":true,"traceResolution":true,"watch":true,"extendedDiagnostics":true,"explainFiles":true,"configFilePath":"/home/src/project/tsconfig.json"}
|
||||
FileWatcher:: Close:: WatchInfo: /home/src/project/withb/node_modules/mymodule/index.d.ts 250 undefined Source file
|
||||
Reusing resolution of module 'mymodule' from '/home/src/project/witha/a.ts' of old program, it was successfully resolved to '/home/src/project/witha/node_modules/mymodule/index.d.ts'.
|
||||
======== Resolving module 'mymoduleutils' from '/home/src/project/witha/a.ts'. ========
|
||||
Module resolution kind is not specified, using 'Node10'.
|
||||
Loading module 'mymoduleutils' from 'node_modules' folder, target file types: TypeScript, Declaration.
|
||||
Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.ts' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.tsx' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.d.ts' does not exist.
|
||||
Directory '/home/src/project/witha/node_modules/@types' does not exist, skipping all lookups in it.
|
||||
Directory '/home/src/project/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/home/src/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/home/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/node_modules' does not exist, skipping all lookups in it.
|
||||
Loading module 'mymoduleutils' from 'node_modules' folder, target file types: JavaScript.
|
||||
Searching all ancestor node_modules directories for fallback extensions: JavaScript.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.js' does not exist.
|
||||
File '/home/src/project/witha/node_modules/mymoduleutils.jsx' does not exist.
|
||||
Directory '/home/src/project/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/home/src/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/home/node_modules' does not exist, skipping all lookups in it.
|
||||
Directory '/node_modules' does not exist, skipping all lookups in it.
|
||||
======== Module name 'mymoduleutils' was not resolved. ========
|
||||
======== Resolving module 'mymoduleutils' from '/home/src/project/withb/b.ts'. ========
|
||||
Module resolution kind is not specified, using 'Node10'.
|
||||
Loading module 'mymoduleutils' from 'node_modules' folder, target file types: TypeScript, Declaration.
|
||||
Searching all ancestor node_modules directories for preferred extensions: TypeScript, Declaration.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils/package.json' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils.ts' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils.tsx' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils.d.ts' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils/index.ts' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils/index.tsx' does not exist.
|
||||
File '/home/src/project/withb/node_modules/mymoduleutils/index.d.ts' exists - use it as a name resolution result.
|
||||
Resolving real path for '/home/src/project/withb/node_modules/mymoduleutils/index.d.ts', result '/home/src/project/withb/node_modules/mymoduleutils/index.d.ts'.
|
||||
======== Module name 'mymoduleutils' was successfully resolved to '/home/src/project/withb/node_modules/mymoduleutils/index.d.ts'. ========
|
||||
FileWatcher:: Added:: WatchInfo: /home/src/project/withb/node_modules/mymoduleutils/index.d.ts 250 undefined Source file
|
||||
../../../a/lib/lib.d.ts
|
||||
Default library for target 'es5'
|
||||
witha/node_modules/mymodule/index.d.ts
|
||||
Imported via 'mymodule' from file 'witha/a.ts'
|
||||
witha/a.ts
|
||||
Matched by include pattern '**/*.ts' in 'tsconfig.json'
|
||||
withb/node_modules/mymoduleutils/index.d.ts
|
||||
Imported via 'mymoduleutils' from file 'withb/b.ts'
|
||||
withb/b.ts
|
||||
Matched by include pattern '**/*.ts' in 'tsconfig.json'
|
||||
[[90mHH:MM:SS AM[0m] Found 0 errors. Watching for file changes.
|
||||
|
||||
|
||||
|
||||
|
||||
PolledWatches::
|
||||
/home/src/project/node_modules:
|
||||
{"pollingInterval":500}
|
||||
/home/src/project/node_modules/@types:
|
||||
{"pollingInterval":500}
|
||||
|
||||
FsWatches::
|
||||
/a/lib/lib.d.ts:
|
||||
{}
|
||||
/home/src/project/tsconfig.json:
|
||||
{}
|
||||
/home/src/project/witha/a.ts:
|
||||
{}
|
||||
/home/src/project/witha/node_modules/mymodule/index.d.ts:
|
||||
{}
|
||||
/home/src/project/withb/b.ts:
|
||||
{}
|
||||
/home/src/project/withb/node_modules/mymoduleutils/index.d.ts: *new*
|
||||
{}
|
||||
|
||||
FsWatches *deleted*::
|
||||
/home/src/project/withb/node_modules/mymodule/index.d.ts:
|
||||
{}
|
||||
|
||||
FsWatchesRecursive::
|
||||
/home/src/project:
|
||||
{}
|
||||
/home/src/project/witha:
|
||||
{}
|
||||
/home/src/project/withb:
|
||||
{}
|
||||
|
||||
|
||||
Program root files: [
|
||||
"/home/src/project/witha/a.ts",
|
||||
"/home/src/project/withb/b.ts"
|
||||
]
|
||||
Program options: {
|
||||
"noEmit": true,
|
||||
"traceResolution": true,
|
||||
"watch": true,
|
||||
"extendedDiagnostics": true,
|
||||
"explainFiles": true,
|
||||
"configFilePath": "/home/src/project/tsconfig.json"
|
||||
}
|
||||
Program structureReused: Not
|
||||
Program files::
|
||||
/a/lib/lib.d.ts
|
||||
/home/src/project/witha/node_modules/mymodule/index.d.ts
|
||||
/home/src/project/witha/a.ts
|
||||
/home/src/project/withb/node_modules/mymoduleutils/index.d.ts
|
||||
/home/src/project/withb/b.ts
|
||||
|
||||
Semantic diagnostics in builder refreshed for::
|
||||
/a/lib/lib.d.ts
|
||||
/home/src/project/witha/node_modules/mymodule/index.d.ts
|
||||
/home/src/project/witha/a.ts
|
||||
/home/src/project/withb/node_modules/mymoduleutils/index.d.ts
|
||||
/home/src/project/withb/b.ts
|
||||
|
||||
Shape signatures in builder refreshed for::
|
||||
/a/lib/lib.d.ts (used version)
|
||||
/home/src/project/witha/node_modules/mymodule/index.d.ts (used version)
|
||||
/home/src/project/witha/a.ts (computed .d.ts)
|
||||
/home/src/project/withb/node_modules/mymoduleutils/index.d.ts (used version)
|
||||
/home/src/project/withb/b.ts (computed .d.ts)
|
||||
|
||||
exitCode:: ExitStatus.undefined
|
||||
@@ -143,12 +143,10 @@ Output::
|
||||
//// [/users/username/projects/project/foo.js] file written with same contents
|
||||
|
||||
PolledWatches::
|
||||
/users/username/projects/node_modules/@types:
|
||||
{"pollingInterval":500}
|
||||
|
||||
PolledWatches *deleted*::
|
||||
/users/username/projects/node_modules:
|
||||
{"pollingInterval":500}
|
||||
/users/username/projects/node_modules/@types:
|
||||
{"pollingInterval":500}
|
||||
|
||||
FsWatches::
|
||||
/a/lib/lib.d.ts:
|
||||
@@ -161,12 +159,10 @@ FsWatches::
|
||||
{}
|
||||
|
||||
FsWatchesRecursive::
|
||||
/users/username/projects/project/node_modules/@types:
|
||||
{}
|
||||
|
||||
FsWatchesRecursive *deleted*::
|
||||
/users/username/projects/project/node_modules:
|
||||
{}
|
||||
/users/username/projects/project/node_modules/@types:
|
||||
{}
|
||||
|
||||
Timeout callback:: count: 0
|
||||
16: timerToInvalidateFailedLookupResolutions *deleted*
|
||||
|
||||
@@ -142,9 +142,9 @@ Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: e:/myproject/node
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: e:/myproject/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: c:/typescript/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: c:/typescript/node_modules 1 undefined Project: /dev/null/inferredProject1* WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: c:/typescript/node_modules/@types/react/package.json 2000 undefined Project: /dev/null/inferredProject1* WatchType: File location affecting resolution
|
||||
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: e:/myproject/node_modules/react-router-dom/package.json 2000 undefined Project: /dev/null/inferredProject1* WatchType: File location affecting resolution
|
||||
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: c:/typescript/node_modules/@types/react-router-dom/package.json 2000 undefined Project: /dev/null/inferredProject1* WatchType: File location affecting resolution
|
||||
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: c:/typescript/node_modules/@types/react/package.json 2000 undefined Project: /dev/null/inferredProject1* WatchType: File location affecting resolution
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: e:/myproject/src/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: e:/myproject/src/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: e:/myproject/node_modules/@types 1 undefined Project: /dev/null/inferredProject1* WatchType: Type roots
|
||||
|
||||
@@ -77,6 +77,8 @@ Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /us
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/myproject/node_modules 1 undefined Project: /users/username/projects/myproject/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/myproject/node_modules 1 undefined Project: /users/username/projects/myproject/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined WatchType: Closed Script info
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/myproject/src 1 undefined Project: /users/username/projects/myproject/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/myproject/src 1 undefined Project: /users/username/projects/myproject/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/myproject/node_modules/@types 1 undefined Project: /users/username/projects/myproject/tsconfig.json WatchType: Type roots
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/myproject/node_modules/@types 1 undefined Project: /users/username/projects/myproject/tsconfig.json WatchType: Type roots
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/node_modules/@types 1 undefined Project: /users/username/projects/myproject/tsconfig.json WatchType: Type roots
|
||||
|
||||
@@ -289,3 +289,21 @@ ScriptInfos::
|
||||
version: Text-1
|
||||
containingProjects: 1
|
||||
/user/username/projects/myproject/src/tsconfig.json
|
||||
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/somefolder/module1.js :: WatchInfo: /user/username/projects/myproject/src/somefolder 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/src/tsconfig.jsonFailedLookupInvalidation
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/somefolder/module1.js :: WatchInfo: /user/username/projects/myproject/src/somefolder 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/somefolder/module1.js :: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/src/tsconfig.json WatchType: Wild card directory
|
||||
Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/src/tsconfig.json Detected file add/remove of non supported extension: /user/username/projects/myproject/src/somefolder/module1.js
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/somefolder/module1.js :: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/src/tsconfig.json WatchType: Wild card directory
|
||||
Before running Timeout callback:: count: 1
|
||||
1: /user/username/projects/myproject/src/tsconfig.jsonFailedLookupInvalidation
|
||||
//// [/user/username/projects/myproject/src/somefolder/module1.js]
|
||||
export const x = 10;
|
||||
|
||||
|
||||
Timeout callback:: count: 1
|
||||
1: /user/username/projects/myproject/src/tsconfig.jsonFailedLookupInvalidation *new*
|
||||
|
||||
Info seq [hh:mm:ss:mss] Running: /user/username/projects/myproject/src/tsconfig.jsonFailedLookupInvalidation
|
||||
After running Timeout callback:: count: 0
|
||||
|
||||
@@ -120,6 +120,12 @@ Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/pr
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/node_modules 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Type roots
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Type roots
|
||||
Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /user/username/projects/myproject/src/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms
|
||||
@@ -252,6 +258,12 @@ PolledWatches::
|
||||
FsWatches::
|
||||
/a/lib/lib.d.ts: *new*
|
||||
{}
|
||||
/user/username/projects: *new*
|
||||
{}
|
||||
/user/username/projects/myproject: *new*
|
||||
{}
|
||||
/user/username/projects/myproject/src: *new*
|
||||
{}
|
||||
/user/username/projects/myproject/src/somefolder/module1.ts: *new*
|
||||
{}
|
||||
/user/username/projects/myproject/src/tsconfig.json: *new*
|
||||
@@ -295,3 +307,21 @@ ScriptInfos::
|
||||
version: Text-1
|
||||
containingProjects: 1
|
||||
/user/username/projects/myproject/src/tsconfig.json
|
||||
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/somefolder/module1.js :: WatchInfo: /user/username/projects/myproject/src/somefolder 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] Scheduled: /user/username/projects/myproject/src/tsconfig.jsonFailedLookupInvalidation
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/somefolder/module1.js :: WatchInfo: /user/username/projects/myproject/src/somefolder 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
|
||||
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/somefolder/module1.js :: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/src/tsconfig.json WatchType: Wild card directory
|
||||
Info seq [hh:mm:ss:mss] Project: /user/username/projects/myproject/src/tsconfig.json Detected file add/remove of non supported extension: /user/username/projects/myproject/src/somefolder/module1.js
|
||||
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/src/somefolder/module1.js :: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/src/tsconfig.json WatchType: Wild card directory
|
||||
Before running Timeout callback:: count: 1
|
||||
1: /user/username/projects/myproject/src/tsconfig.jsonFailedLookupInvalidation
|
||||
//// [/user/username/projects/myproject/src/somefolder/module1.js]
|
||||
export const x = 10;
|
||||
|
||||
|
||||
Timeout callback:: count: 1
|
||||
1: /user/username/projects/myproject/src/tsconfig.jsonFailedLookupInvalidation *new*
|
||||
|
||||
Info seq [hh:mm:ss:mss] Running: /user/username/projects/myproject/src/tsconfig.jsonFailedLookupInvalidation
|
||||
After running Timeout callback:: count: 0
|
||||
|
||||
Reference in New Issue
Block a user