Handle effective type roots and type ref resolution sharing cache

// TODO: update incremental tests to actually verify the cache
This commit is contained in:
Sheetal Nandi 2024-10-04 15:18:21 -07:00
Родитель 3e4da7f7f1
Коммит 11866b49a4
31 изменённых файлов: 755 добавлений и 1703 удалений

Просмотреть файл

@ -256,7 +256,7 @@ function createResolvedModuleWithFailedLookupLocationsHandlingSymlink(
}
function updateResultFromCache(
resultFromCache: ResolvedModuleWithFailedLookupLocations,
resultFromCache: ResolvedModuleWithFailedLookupLocations | ResolvedTypeReferenceDirectiveWithFailedLookupLocations,
failedLookupLocations: string[],
affectingLocations: string[],
diagnostics: Diagnostic[],
@ -527,6 +527,17 @@ export function getEffectiveTypeRoots(options: CompilerOptions, host: GetEffecti
}
}
/** @internal */
export function getEffectiveTypeRootsWithModuleResolutionHost(
options: CompilerOptions,
redirect: ResolvedProjectReference | undefined,
host: ModuleResolutionHost,
): readonly string[] | undefined {
return host.getEffectiveTypeRoots ?
host.getEffectiveTypeRoots(options, redirect) :
getEffectiveTypeRoots(options, host);
}
/**
* Returns the path to every node_modules/@types directory from some ancestor directory.
* Returns undefined if there are none.
@ -575,12 +586,15 @@ export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string
options = redirectedReference.commandLine.options;
}
const containingDirectory = containingFile ? getDirectoryPath(containingFile) : undefined;
let result = containingDirectory ? cache?.getFromDirectoryCache(typeReferenceDirectiveName, resolutionMode, containingDirectory, redirectedReference) : undefined;
if (!result && containingDirectory && !isExternalModuleNameRelative(typeReferenceDirectiveName)) {
result = cache?.getFromNonRelativeNameCache(typeReferenceDirectiveName, resolutionMode, containingDirectory, redirectedReference);
}
const typeRootsCacheKey = host.getTypeRootsCacheKey ?
host.getTypeRootsCacheKey(options, redirectedReference) :
createTypeRootsCacheKey(options, redirectedReference, host);
const containingDirectory = containingFile ? getDirectoryPath(containingFile) : undefined;
// Cache is already equired to handle specified typeRoots - and only guaranteed to have in perDirectoryCache
let result = options.typeRoots && containingDirectory ?
lookFromPerDirectoryCache(containingDirectory) :
undefined;
if (result) {
if (traceEnabled) {
trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1, typeReferenceDirectiveName, containingFile);
@ -591,7 +605,7 @@ export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string
return result;
}
const typeRoots = getEffectiveTypeRoots(options, host);
const typeRoots = getEffectiveTypeRootsWithModuleResolutionHost(options, redirectedReference, host);
if (traceEnabled) {
if (containingFile === undefined) {
if (typeRoots === undefined) {
@ -646,6 +660,7 @@ export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string
resolvedPackageDirectory: false,
};
let resolved = primaryLookup();
if (result) return setResultInCacheAndResult(result);
let primary = true;
if (!resolved) {
resolved = secondaryLookup();
@ -671,17 +686,8 @@ export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string
affectingLocations: initializeResolutionField(affectingLocations),
resolutionDiagnostics: initializeResolutionField(diagnostics),
};
if (containingDirectory) {
cache?.setPerDirectoryAndNonRelativeNameCacheResult(
typeReferenceDirectiveName,
resolutionMode,
containingDirectory,
redirectedReference,
result,
);
}
if (traceEnabled) traceResult(result);
return result;
return setResultInCacheAndResult(result);
function traceResult(result: ResolvedTypeReferenceDirectiveWithFailedLookupLocations) {
if (!result.resolvedTypeReferenceDirective?.resolvedFileName) {
@ -695,13 +701,80 @@ export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string
}
}
function primaryLookup(): PathAndPackageId | undefined {
function setResultInCacheAndResult(result: ResolvedTypeReferenceDirectiveWithFailedLookupLocations) {
if (containingDirectory) {
cache?.setPerDirectoryAndNonRelativeNameCacheResult(
typeReferenceDirectiveName,
resolutionMode,
containingDirectory,
redirectedReference,
typeRootsCacheKey,
result,
);
}
if (traceEnabled) traceResult(result);
return result;
}
function lookFromPerDirectoryCache(directory: string) {
return directory === containingDirectory ?
cache?.getFromDirectoryCache(
typeReferenceDirectiveName,
resolutionMode,
containingDirectory,
redirectedReference,
typeRootsCacheKey,
) : undefined;
}
function lookupFromCache(directory: string) {
return lookFromPerDirectoryCache(directory) ?? (
!isExternalModuleNameRelative(typeReferenceDirectiveName) ?
cache?.getFromNonRelativeNameCache(
typeReferenceDirectiveName,
resolutionMode,
directory,
redirectedReference,
typeRootsCacheKey,
) :
undefined
);
}
function primaryLookup(): PathAndPackageId | false | undefined {
// Check primary library paths
if (typeRoots && typeRoots.length) {
if (traceEnabled) {
trace(host, Diagnostics.Resolving_with_primary_search_path_0, typeRoots.join(", "));
}
return firstDefined(typeRoots, typeRoot => {
// Default effective type roots, check in cache
if (!options.typeRoots) {
// TODO:: sheetal - the issue here is that when we find the result in folder thats inside the containing folder
// our type cache algo does not handle that as it assumes we have looked from containing folder and ancestor
// Need to handle that!!!
const typeRootDirectory = getDirectoryPath(getDirectoryPath(typeRoot));
result = lookupFromCache(typeRootDirectory);
if (result) {
if (traceEnabled) {
trace(host, Diagnostics.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1, typeReferenceDirectiveName, typeRootDirectory);
}
if (!cache?.isReadonly) {
updateResultFromCache(result, failedLookupLocations, affectingLocations, diagnostics);
}
else {
result = {
resolvedTypeReferenceDirective: result.resolvedTypeReferenceDirective,
failedLookupLocations: initializeResolutionFieldForReadonlyCache(result.failedLookupLocations, failedLookupLocations),
affectingLocations: initializeResolutionFieldForReadonlyCache(result.affectingLocations, affectingLocations),
resolutionDiagnostics: initializeResolutionFieldForReadonlyCache(result.resolutionDiagnostics, diagnostics),
};
}
// Failed lookup and cache update
return false;
}
}
const candidate = getCandidateFromTypeRoot(typeRoot, typeReferenceDirectiveName, moduleResolutionState);
const directoryExists = directoryProbablyExists(typeRoot, host);
if (!directoryExists && traceEnabled) {
@ -855,7 +928,7 @@ export function getAutomaticTypeDirectiveNames(options: CompilerOptions, host: M
// Walk the primary type lookup locations
const result: string[] = [];
if (host.directoryExists && host.getDirectories) {
const typeRoots = getEffectiveTypeRoots(options, host);
const typeRoots = getEffectiveTypeRootsWithModuleResolutionHost(options, /*redirect*/ undefined, host);
if (typeRoots) {
for (const root of typeRoots) {
if (host.directoryExists(root)) {
@ -914,7 +987,11 @@ export interface ModeAwareCache<T> {
*/
export interface PerDirectoryResolutionCache<T> {
getFromDirectoryCache(name: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined): T | undefined;
/** @internal */
getFromDirectoryCache(name: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined, typeRootsKey?: TypeRootsCacheKeyOrSpecifiedTypeRoots): T | undefined; // eslint-disable-line @typescript-eslint/unified-signatures
getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference): ModeAwareCache<T>;
/** @internal */
getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference, typeRootsKey?: TypeRootsCacheKeyOrSpecifiedTypeRoots): ModeAwareCache<T>; // eslint-disable-line @typescript-eslint/unified-signatures
clear(): void;
/**
* Updates with the current compilerOptions the cache will operate with.
@ -927,7 +1004,11 @@ export interface PerDirectoryResolutionCache<T> {
export interface NonRelativeNameResolutionCache<T> {
getFromNonRelativeNameCache(nonRelativeName: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined): T | undefined;
/** @internal */
getFromNonRelativeNameCache(nonRelativeName: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined, typeRootsKey?: TypeRootsCacheKeyOrSpecifiedTypeRoots): T | undefined; // eslint-disable-line @typescript-eslint/unified-signatures
getOrCreateCacheForNonRelativeName(nonRelativeName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference): PerNonRelativeNameCache<T>;
/** @internal */
getOrCreateCacheForNonRelativeName(nonRelativeName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference, typeRootsKey?: TypeRootsCacheKeyOrSpecifiedTypeRoots): PerNonRelativeNameCache<T>; // eslint-disable-line @typescript-eslint/unified-signatures
clear(): void;
/**
* Updates with the current compilerOptions the cache will operate with.
@ -1016,15 +1097,19 @@ export function getKeyForCompilerOptions(options: CompilerOptions, affectingOpti
/** @internal */
export interface CacheWithRedirects<K, V> {
getMapOfCacheRedirects(redirectedReference: ResolvedProjectReference | undefined): Map<K, V> | undefined;
getOrCreateMapOfCacheRedirects(redirectedReference: ResolvedProjectReference | undefined): Map<K, V>;
getMapOfCacheRedirects(redirectedReference: ResolvedProjectReference | undefined, typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined): Map<K, V> | undefined;
getOrCreateMapOfCacheRedirects(redirectedReference: ResolvedProjectReference | undefined, typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined): Map<K, V>;
update(newOptions: CompilerOptions): void;
clear(): void;
forEach(cb: (value: V, key: K, redirectsCacheKey: RedirectsCacheKey | undefined, map: Map<K, V>) => void): void;
compact(availableOptions: Set<CompilerOptions>): void;
forEach(cb: (value: V, key: K, redirectsCacheKey: RedirectsCacheKey | undefined, typeRootsKey: TypeRootsCacheKey | undefined, map: Map<K, V>) => void): void;
compact(
availableOptions: Set<CompilerOptions>,
availableTypeCacheKeys: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>> | undefined,
): void;
getOwnMap(): Map<K, V>;
getOwnOptions(): CompilerOptions | undefined;
redirectsKeyToMap: Map<RedirectsCacheKey, Map<K, V>>;
getTypesRootKeyToMap(): Map<Map<K, V>, Map<TypeRootsCacheKey, Map<K, V>>> | undefined;
}
/** @internal */
@ -1035,9 +1120,34 @@ export function computeRedirectsCacheKey(options: CompilerOptions) {
return getKeyForCompilerOptions(options, moduleResolutionOptionDeclarations) as RedirectsCacheKey;
}
/** @internal */
export type TypeRootsCacheKey = string & { __typeRootsKey: any; };
/** @internal */
export type TypeRootsCacheKeyOrSpecifiedTypeRoots = TypeRootsCacheKey | false;
/** @internal */
export function createTypeRootsCacheKey(
options: CompilerOptions,
redirectedReference: ResolvedProjectReference | undefined,
host: ModuleResolutionHost,
): TypeRootsCacheKeyOrSpecifiedTypeRoots {
return options.typeRoots ?
false :
`[${
getEffectiveTypeRootsWithModuleResolutionHost(
options,
redirectedReference,
host,
)?.filter(
typeRoot => directoryProbablyExists(typeRoot, host),
)?.join(",")
}]` as TypeRootsCacheKey;
}
function createCacheWithRedirects<K, V>(ownOptions: CompilerOptions | undefined, optionsToRedirectsKey: Map<CompilerOptions, RedirectsCacheKey>): CacheWithRedirects<K, V> {
const redirectsMap = new Map<CompilerOptions, Map<K, V>>();
const redirectsKeyToMap = new Map<RedirectsCacheKey, Map<K, V>>();
let typesRootKeyToMap: Map<Map<K, V>, Map<TypeRootsCacheKey, Map<K, V>>> | undefined;
let ownMap = new Map<K, V>();
if (ownOptions) redirectsMap.set(ownOptions, ownMap);
return {
@ -1050,18 +1160,37 @@ function createCacheWithRedirects<K, V>(ownOptions: CompilerOptions | undefined,
getOwnMap: () => ownMap,
getOwnOptions: () => ownOptions,
redirectsKeyToMap,
getTypesRootKeyToMap: () => typesRootKeyToMap,
};
function getMapOfCacheRedirects(redirectedReference: ResolvedProjectReference | undefined): Map<K, V> | undefined {
return redirectedReference ?
getOrCreateMap(redirectedReference.commandLine.options, /*create*/ false) :
ownMap;
}
function getOrCreateMapOfCacheRedirects(redirectedReference: ResolvedProjectReference | undefined): Map<K, V> {
return redirectedReference ?
function getOrCreateMapWithTypeRoots(redirectedReference: ResolvedProjectReference | undefined, typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined, create: true): Map<K, V>;
function getOrCreateMapWithTypeRoots(redirectedReference: ResolvedProjectReference | undefined, typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined, create: false): Map<K, V> | undefined;
function getOrCreateMapWithTypeRoots(redirectedReference: ResolvedProjectReference | undefined, typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined, create: boolean): Map<K, V> | undefined {
const map = redirectedReference ?
getOrCreateMap(redirectedReference.commandLine.options, /*create*/ true) :
ownMap;
if (!map || !typeRootsKey) return map;
let typeRootsKeyMap = typesRootKeyToMap?.get(map);
let result = typeRootsKeyMap?.get(typeRootsKey);
if (!result && create) {
if (!typeRootsKeyMap) (typesRootKeyToMap ??= new Map()).set(map, typeRootsKeyMap = new Map());
typeRootsKeyMap.set(typeRootsKey, result = new Map());
}
return result;
}
function getMapOfCacheRedirects(
redirectedReference: ResolvedProjectReference | undefined,
typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined,
): Map<K, V> | undefined {
return getOrCreateMapWithTypeRoots(redirectedReference, typeRootsKey, /*create*/ false);
}
function getOrCreateMapOfCacheRedirects(
redirectedReference: ResolvedProjectReference | undefined,
typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined,
): Map<K, V> {
return getOrCreateMapWithTypeRoots(redirectedReference, typeRootsKey, /*create*/ true);
}
function update(newOptions: CompilerOptions) {
@ -1098,6 +1227,7 @@ function createCacheWithRedirects<K, V>(ownOptions: CompilerOptions | undefined,
redirectsMap.clear();
optionsToRedirectsKey.clear();
redirectsKeyToMap.clear();
typesRootKeyToMap = undefined;
if (ownOptions) {
if (ownKey) optionsToRedirectsKey.set(ownOptions, ownKey);
redirectsMap.set(ownOptions, ownMap);
@ -1112,24 +1242,71 @@ function createCacheWithRedirects<K, V>(ownOptions: CompilerOptions | undefined,
return result;
}
function forEach(cb: (value: V, key: K, redirectsCacheKey: RedirectsCacheKey | undefined, map: Map<K, V>) => void) {
ownMap.forEach((value, key) => cb(value, key, /*redirectsCacheKey*/ undefined, ownMap));
function forEach(
cb: (
value: V,
key: K,
redirectsCacheKey: RedirectsCacheKey | undefined,
typeRootsKey: TypeRootsCacheKey | undefined,
map: Map<K, V>,
) => void,
) {
forEachMapWithTypeRootKey(ownMap, /*redirectsCacheKey*/ undefined, cb);
redirectsKeyToMap.forEach((map, redirectsCacheKey) => {
if (map !== ownMap) map.forEach((value, key) => cb(value, key, redirectsCacheKey, map));
if (map !== ownMap) forEachMapWithTypeRootKey(map, redirectsCacheKey, cb);
});
}
function compact(availableOptions: Set<CompilerOptions>) {
function forEachMapWithTypeRootKey(
map: Map<K, V>,
redirectsCacheKey: RedirectsCacheKey | undefined,
cb: (value: V, key: K, redirectsCacheKey: RedirectsCacheKey | undefined, typeRootsKey: TypeRootsCacheKey | undefined, map: Map<K, V>) => void,
) {
map.forEach((value, key) => cb(value, key, redirectsCacheKey, /*typeRootsKey*/ undefined, map));
typesRootKeyToMap?.get(map)?.forEach(
(map, typesRootKey) => map.forEach((value, key) => cb(value, key, redirectsCacheKey, typesRootKey, map)),
);
}
function compact(
availableOptions: Set<CompilerOptions>,
availableTypeCacheKeys: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>> | undefined,
) {
const toDeleteRedirectsCacheKeys = new Set(redirectsKeyToMap.keys());
if (!availableTypeCacheKeys?.size) typesRootKeyToMap = undefined;
const toDeleteTypesRootKeyToMap = typesRootKeyToMap && new Map<Map<K, V>, Set<TypeRootsCacheKey>>();
typesRootKeyToMap?.forEach((keyToMap, map) => toDeleteTypesRootKeyToMap!.set(map, new Set(keyToMap.keys())));
optionsToRedirectsKey.forEach((key, options) => {
if (options === ownOptions || availableOptions.has(options)) {
toDeleteRedirectsCacheKeys.delete(key);
keepTypesRootKeyMap(availableTypeCacheKeys, options, toDeleteTypesRootKeyToMap, options === ownOptions ? ownMap : redirectsKeyToMap.get(key)!);
}
else {
redirectsMap.delete(options);
}
});
if (ownOptions) keepTypesRootKeyMap(availableTypeCacheKeys, ownOptions, toDeleteTypesRootKeyToMap, ownMap);
toDeleteRedirectsCacheKeys.forEach(key => redirectsKeyToMap.delete(key));
toDeleteTypesRootKeyToMap?.forEach((typeRootKeys, map) => {
const keyToMap = typesRootKeyToMap!.get(map)!;
if (keyToMap.size === typeRootKeys.size) typesRootKeyToMap!.delete(map);
else typeRootKeys.forEach(key => keyToMap.delete(key));
});
}
function keepTypesRootKeyMap(
availableTypeCacheKeys: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>> | undefined,
options: CompilerOptions,
toDeleteTypesRootKeyToMap: Map<Map<K, V>, Set<TypeRootsCacheKey>> | undefined,
map: Map<K, V>,
) {
const setOfKeys = toDeleteTypesRootKeyToMap?.get(map);
if (!setOfKeys?.size) return;
availableTypeCacheKeys?.get(options)?.forEach(
typeRootsKey => typeRootsKey ? setOfKeys.delete(typeRootsKey) : undefined,
);
if (!setOfKeys.size) toDeleteTypesRootKeyToMap!.delete(map);
}
}
@ -1150,8 +1327,14 @@ function createPackageJsonInfoCache(currentDirectory: string, getCanonicalFileNa
}
}
function getOrCreateCache<K, V>(cacheWithRedirects: CacheWithRedirects<K, V>, redirectedReference: ResolvedProjectReference | undefined, key: K, create: () => V): V {
const cache = cacheWithRedirects.getOrCreateMapOfCacheRedirects(redirectedReference);
function getOrCreateCache<K, V>(
cacheWithRedirects: CacheWithRedirects<K, V>,
redirectedReference: ResolvedProjectReference | undefined,
typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined,
key: K,
create: () => V,
): V {
const cache = cacheWithRedirects.getOrCreateMapOfCacheRedirects(redirectedReference, typeRootsKey);
let result = cache.get(key);
if (!result) {
result = create();
@ -1184,14 +1367,14 @@ function createPerDirectoryResolutionCache<T>(
directoryToModuleNameMap.update(options);
}
function getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference) {
function getOrCreateCacheForDirectory(directoryName: string, redirectedReference?: ResolvedProjectReference, typeRootsKey?: TypeRootsCacheKeyOrSpecifiedTypeRoots) {
const path = toPath(directoryName, currentDirectory, getCanonicalFileName);
return getOrCreateCache(directoryToModuleNameMap, redirectedReference, path, () => createModeAwareCache());
return getOrCreateCache(directoryToModuleNameMap, redirectedReference, typeRootsKey, path, () => createModeAwareCache());
}
function getFromDirectoryCache(name: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined) {
function getFromDirectoryCache(name: string, mode: ResolutionMode, directoryName: string, redirectedReference: ResolvedProjectReference | undefined, typeRootsKey?: TypeRootsCacheKeyOrSpecifiedTypeRoots) {
const path = toPath(directoryName, currentDirectory, getCanonicalFileName);
return getValidResolution(directoryToModuleNameMap.getMapOfCacheRedirects(redirectedReference)?.get(path)?.get(name, mode));
return getValidResolution(directoryToModuleNameMap.getMapOfCacheRedirects(redirectedReference, typeRootsKey)?.get(path)?.get(name, mode));
}
}
@ -1277,18 +1460,19 @@ function createNonRelativeNameResolutionCache<T>(
moduleNameToDirectoryMap.update(options);
}
function getFromNonRelativeNameCache(nonRelativeModuleName: string, mode: ResolutionMode, directoryName: string, redirectedReference?: ResolvedProjectReference): T | undefined {
function getFromNonRelativeNameCache(nonRelativeModuleName: string, mode: ResolutionMode, directoryName: string, redirectedReference?: ResolvedProjectReference, typeRootsKey?: TypeRootsCacheKeyOrSpecifiedTypeRoots): T | undefined {
Debug.assert(!isExternalModuleNameRelative(nonRelativeModuleName));
return moduleNameToDirectoryMap.getMapOfCacheRedirects(redirectedReference)?.get(
return moduleNameToDirectoryMap.getMapOfCacheRedirects(redirectedReference, typeRootsKey)?.get(
createModeAwareCacheKey(nonRelativeModuleName, mode),
)?.get(directoryName);
}
function getOrCreateCacheForNonRelativeName(nonRelativeModuleName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference): PerNonRelativeNameCache<T> {
function getOrCreateCacheForNonRelativeName(nonRelativeModuleName: string, mode: ResolutionMode, redirectedReference?: ResolvedProjectReference, typeRootsKey?: TypeRootsCacheKeyOrSpecifiedTypeRoots): PerNonRelativeNameCache<T> {
Debug.assert(!isExternalModuleNameRelative(nonRelativeModuleName));
return getOrCreateCache(
moduleNameToDirectoryMap,
redirectedReference,
typeRootsKey,
createModeAwareCacheKey(nonRelativeModuleName, mode),
createPerModuleNameCache,
);
@ -1406,12 +1590,17 @@ function createNonRelativeNameResolutionCache<T>(
export interface ModuleOrTypeReferenceResolutionCache<T> extends PerDirectoryResolutionCache<T>, NonRelativeNameResolutionCache<T>, PackageJsonInfoCache {
getPackageJsonInfoCache(): PackageJsonInfoCache;
gc(setOrMapToCheckPresence: Set<T> | Map<T, any>): void;
compact(availableOptions?: Set<CompilerOptions>, skipOptionsToRedirectsKeyCleanup?: boolean): void;
compact(
availableOptions?: Set<CompilerOptions>,
skipOptionsToRedirectsKeyCleanup?: boolean,
availableTypeCacheKeys?: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>>,
): void;
setPerDirectoryAndNonRelativeNameCacheResult(
name: string,
mode: ResolutionMode,
directoryName: string,
redirectedReference: ResolvedProjectReference | undefined,
typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined,
result: T,
primary?: T,
): void;
@ -1477,14 +1666,17 @@ function createModuleOrTypeReferenceResolutionCache<T>(
function gc(setOrMapToCheckPresence: Set<T> | Map<T, any>) {
// Iterate through maps to remove things that have 0 refCount
perDirectoryResolutionCache.directoryToModuleNameMap.forEach((resolutions, dir, redirectsCacheKey, directoryToModuleNameMap) => {
perDirectoryResolutionCache.directoryToModuleNameMap.forEach((resolutions, dir, redirectsCacheKey, typeRootsKey, directoryToModuleNameMap) => {
resolutions.forEach((resolution, name, mode, key) => {
if (setOrMapToCheckPresence.has(resolution)) return;
resolutions.delete(name, mode);
if (!isExternalModuleNameRelative(name)) {
const moduleNameToDirectoryMap = !redirectsCacheKey ?
const ownOrRedirectsMap = !redirectsCacheKey ?
nonRelativeNameResolutionCache.moduleNameToDirectoryMap.getOwnMap() :
nonRelativeNameResolutionCache.moduleNameToDirectoryMap.redirectsKeyToMap.get(redirectsCacheKey);
const moduleNameToDirectoryMap = ownOrRedirectsMap && typeRootsKey ?
nonRelativeNameResolutionCache.moduleNameToDirectoryMap.getTypesRootKeyToMap()?.get(ownOrRedirectsMap)?.get(typeRootsKey) :
ownOrRedirectsMap;
const directoryMap = moduleNameToDirectoryMap?.get(key);
directoryMap?.deleteByPath(dir);
if (!directoryMap?.directoryPathMap.size) moduleNameToDirectoryMap!.delete(key);
@ -1494,9 +1686,13 @@ function createModuleOrTypeReferenceResolutionCache<T>(
});
}
function compact(availableOptions = new Set(optionsToRedirectsKey!.keys()), skipOptionsToRedirectsKeyCleanup?: boolean) {
perDirectoryResolutionCache.directoryToModuleNameMap.compact(availableOptions);
nonRelativeNameResolutionCache.moduleNameToDirectoryMap.compact(availableOptions);
function compact(
availableOptions = new Set(optionsToRedirectsKey!.keys()),
skipOptionsToRedirectsKeyCleanup?: boolean,
availableTypeCacheKeys?: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>>,
) {
perDirectoryResolutionCache.directoryToModuleNameMap.compact(availableOptions, availableTypeCacheKeys);
nonRelativeNameResolutionCache.moduleNameToDirectoryMap.compact(availableOptions, availableTypeCacheKeys);
if (!skipOptionsToRedirectsKeyCleanup) {
optionsToRedirectsKey!.forEach(
(_redirectsKey, options) => {
@ -1511,31 +1707,32 @@ function createModuleOrTypeReferenceResolutionCache<T>(
mode: ResolutionMode,
directoryName: string,
redirectedReference: ResolvedProjectReference | undefined,
typeRootsKey: TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined,
result: T,
primary?: T,
): void {
if (cache.isReadonly) return;
cache.getOrCreateCacheForDirectory(directoryName, redirectedReference).set(name, mode, result);
if (!isExternalModuleNameRelative(name)) {
cache.getOrCreateCacheForDirectory(directoryName, redirectedReference, typeRootsKey).set(name, mode, result);
if (typeRootsKey !== false && !isExternalModuleNameRelative(name)) {
// put result in per-module name cache
cache.getOrCreateCacheForNonRelativeName(name, mode, redirectedReference).set(directoryName, result, primary);
cache.getOrCreateCacheForNonRelativeName(name, mode, redirectedReference, typeRootsKey).set(directoryName, result, primary);
}
}
function print() {
console.log(`directoryToModuleNameMap::`);
perDirectoryResolutionCache.directoryToModuleNameMap.forEach((moduleNameMap, directoryPath, redirectsCacheKey) => {
if (!redirectsCacheKey) console.log(" OwnMap");
else console.log(` redirectsCacheKey:: ${redirectsCacheKey}`);
perDirectoryResolutionCache.directoryToModuleNameMap.forEach((moduleNameMap, directoryPath, redirectsCacheKey, typeRootsKey) => {
if (!redirectsCacheKey) console.log(` OwnMap ${typeRootsKey ? typeRootsKey : ""}`);
else console.log(` redirectsCacheKey:: ${redirectsCacheKey} ${typeRootsKey ? typeRootsKey : ""}`);
console.log(` directoryPath:: ${directoryPath}`);
moduleNameMap.forEach((value, key, mode) => {
console.log(` ${key} ${mode} ${JSON.stringify(value, undefined, " ")}`);
});
});
console.log(`moduleNameToDirectoryMap::`);
nonRelativeNameResolutionCache.moduleNameToDirectoryMap.forEach((perNonRelativeNameCache, key, redirectsCacheKey) => {
if (!redirectsCacheKey) console.log(" OwnMap");
else console.log(` redirectsCacheKey:: ${redirectsCacheKey}`);
nonRelativeNameResolutionCache.moduleNameToDirectoryMap.forEach((perNonRelativeNameCache, key, redirectsCacheKey, typeRootsKey) => {
if (!redirectsCacheKey) console.log(` OwnMap ${typeRootsKey ? typeRootsKey : ""}`);
else console.log(` redirectsCacheKey:: ${redirectsCacheKey} ${typeRootsKey ? typeRootsKey : ""}`);
console.log(` modeAwareCacheKey:: ${key}`);
perNonRelativeNameCache.directoryPathMap.forEach((value, key) => {
console.log(` ${key} ${JSON.stringify(value, undefined, " ")}`);
@ -1695,6 +1892,7 @@ export function resolveModuleName(moduleName: string, containingFile: string, co
resolutionMode,
containingDirectory,
redirectedReference,
undefined,
result,
);
}

Просмотреть файл

@ -50,6 +50,7 @@ import {
createSymlinkCache,
createTypeChecker,
createTypeReferenceDirectiveResolutionCache,
createTypeRootsCacheKey,
CustomTransformers,
Debug,
DeclarationWithTypeParameterChildren,
@ -117,6 +118,7 @@ import {
getDeclarationDiagnostics as ts_getDeclarationDiagnostics,
getDefaultLibFileName,
getDirectoryPath,
getEffectiveTypeRoots as ts_getEffectiveTypeRoots,
getEmitDeclarations,
getEmitModuleKind,
getEmitModuleResolutionKind,
@ -320,6 +322,7 @@ import {
TypeChecker,
typeDirectiveIsEqualTo,
TypeReferenceDirectiveResolutionCache,
TypeRootsCacheKeyOrSpecifiedTypeRoots,
unprefixedNodeCoreModules,
VariableDeclaration,
VariableStatement,
@ -1812,6 +1815,9 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
let projectReferenceRedirects: Map<Path, ResolvedProjectReference | false> | undefined;
let mapFromFileToProjectReferenceRedirects: Map<Path, Path> | undefined;
let mapFromToProjectReferenceRedirectSource: Map<Path, SourceOfProjectReferenceRedirect> | undefined;
let typeRootsCacheKeys: Map<Path | undefined, TypeRootsCacheKeyOrSpecifiedTypeRoots> | undefined;
let processingTypeRootsCacheKeys: Map<Path | undefined, TypeRootsCacheKeyOrSpecifiedTypeRoots> | undefined;
let effectiveRoots: Map<Path | undefined, readonly string[] | false> | undefined;
const useSourceOfProjectReferenceRedirect = !!host.useSourceOfProjectReferenceRedirect?.() &&
!options.disableSourceOfProjectReferenceRedirect;
@ -1825,6 +1831,9 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
forEachResolvedProjectReference,
});
const readFile = host.readFile.bind(host) as typeof host.readFile;
const hostGetEffectiveTypeRoots = host.getEffectiveTypeRoots;
const hostGetTypeRootsCacheKey = host.getTypeRootsCacheKey;
host.getEffectiveTypeRoots = getEffectiveTypeRoots;
tracing?.push(tracing.Phase.Program, "shouldProgramCreateNewSourceFiles", { hasOldProgram: !!oldProgram });
const shouldCreateNewSourceFile = shouldProgramCreateNewSourceFiles(oldProgram, options);
@ -1883,6 +1892,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
const resolutions = resolveTypeReferenceDirectiveNamesReusingOldState(
automaticTypeDirectiveNames,
getAutomaticTypeDirectiveContainingFile(options, currentDirectory),
getTypeRootsCacheKey,
);
for (let i = 0; i < automaticTypeDirectiveNames.length; i++) {
// under node16/nodenext module resolution, load `types`/ata include names as cjs resolution results by passing an `undefined` mode
@ -1971,6 +1981,10 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
resolvedLibProcessing = undefined;
resolvedModulesProcessing = undefined;
resolvedTypeReferenceDirectiveNamesProcessing = undefined;
effectiveRoots = undefined;
processingTypeRootsCacheKeys = undefined;
host.getEffectiveTypeRoots = hostGetEffectiveTypeRoots;
host.getTypeRootsCacheKey = hostGetTypeRootsCacheKey;
const program: Program = {
getRootFileNames: () => rootNames,
@ -2054,6 +2068,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
structureIsReused,
writeFile,
getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation),
getTypeRootsCacheKeys: () => typeRootsCacheKeys,
};
onProgramCreateComplete();
@ -2251,6 +2266,51 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
return result;
}
function getEffectiveTypeRoots(options: CompilerOptions, redirect: ResolvedProjectReference | undefined) {
let result = effectiveRoots?.get(redirect?.sourceFile.path);
if (result === undefined) {
(effectiveRoots ??= new Map()).set(
redirect?.sourceFile.path,
result = (
hostGetEffectiveTypeRoots ?
hostGetEffectiveTypeRoots(options, redirect) :
ts_getEffectiveTypeRoots(options, host)
) ?? false,
);
}
return result || undefined;
}
function getTypeRootsCacheKey(options: CompilerOptions, redirect: ResolvedProjectReference | undefined): TypeRootsCacheKeyOrSpecifiedTypeRoots {
let result = typeRootsCacheKeys?.get(redirect?.sourceFile.path);
if (result === undefined) {
(typeRootsCacheKeys ??= new Map()).set(
redirect?.sourceFile.path,
result = processingTypeRootsCacheKeys?.get(redirect?.sourceFile.path) ??
getTypeRootsCacheKeyWorker(options, redirect) ??
false,
);
}
return result;
}
function getProcessingTypeRootsCacheKey(options: CompilerOptions, redirect: ResolvedProjectReference | undefined): TypeRootsCacheKeyOrSpecifiedTypeRoots {
let result = processingTypeRootsCacheKeys?.get(redirect?.sourceFile.path);
if (result === undefined) {
(processingTypeRootsCacheKeys ??= new Map()).set(
redirect?.sourceFile.path,
result = getTypeRootsCacheKeyWorker(options, redirect) ?? false,
);
}
return result;
}
function getTypeRootsCacheKeyWorker(options: CompilerOptions, redirect: ResolvedProjectReference | undefined): TypeRootsCacheKeyOrSpecifiedTypeRoots {
return hostGetTypeRootsCacheKey ?
hostGetTypeRootsCacheKey(options, redirect) :
createTypeRootsCacheKey(options, redirect, host);
}
function getRedirectReferenceForResolution(file: SourceFile) {
const redirect = getResolvedProjectReferenceToRedirect(file.originalFileName);
if (redirect || !isDeclarationFileName(file.originalFileName)) return redirect;
@ -2346,9 +2406,21 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
});
}
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[] {
function resolveTypeReferenceDirectiveNamesReusingOldState(
typeDirectiveNames: readonly FileReference[],
containingFile: SourceFile,
getTypeRootsCacheKey: (options: CompilerOptions, redirects: ResolvedProjectReference | undefined) => TypeRootsCacheKeyOrSpecifiedTypeRoots,
): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[];
function resolveTypeReferenceDirectiveNamesReusingOldState(
typeDirectiveNames: readonly string[],
containingFile: string,
getTypeRootsCacheKey: (options: CompilerOptions, redirects: ResolvedProjectReference | undefined) => TypeRootsCacheKeyOrSpecifiedTypeRoots,
): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[];
function resolveTypeReferenceDirectiveNamesReusingOldState<T extends string | FileReference>(
typeDirectiveNames: readonly T[],
containingFile: string | SourceFile,
getTypeRootsCacheKey: (options: CompilerOptions, redirects: ResolvedProjectReference | undefined) => TypeRootsCacheKeyOrSpecifiedTypeRoots,
): readonly ResolvedTypeReferenceDirectiveWithFailedLookupLocations[] {
const containingSourceFile = !isString(containingFile) ? containingFile : undefined;
return resolveNamesReusingOldState({
entries: typeDirectiveNames,
@ -2367,6 +2439,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
containingSourceFile ?
containingSourceFile === oldProgram?.getSourceFile(containingSourceFile.fileName) && !hasInvalidatedResolutions(containingSourceFile.path) :
!hasInvalidatedResolutions(toPath(containingFile as string)),
getTypeRootsCacheKey,
});
}
@ -2393,6 +2466,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
getResolved: (oldResolution: Resolution) => ResolutionWithResolvedFileName | undefined;
canReuseResolutionsInFile: () => boolean;
resolveToOwnAmbientModule?: true;
getTypeRootsCacheKey?: (options: CompilerOptions, redirects: ResolvedProjectReference | undefined) => TypeRootsCacheKeyOrSpecifiedTypeRoots;
}
function resolveNamesReusingOldState<Entry, SourceFileOrString, SourceFileOrUndefined extends SourceFile | undefined, Resolution>({
@ -2407,6 +2481,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
getResolved,
canReuseResolutionsInFile,
resolveToOwnAmbientModule,
getTypeRootsCacheKey,
}: ResolveNamesReusingOldStateInput<Entry, SourceFileOrString, SourceFileOrUndefined, Resolution>): readonly Resolution[] {
if (!entries.length) {
onReusedResolutions?.(
@ -2417,7 +2492,10 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
);
return emptyArray;
}
// Ensure typeRootsCacheKey is cached
getTypeRootsCacheKey?.(redirectedReference?.commandLine.options ?? options, redirectedReference);
if (structureIsReused === StructureIsReused.Not && (!resolveToOwnAmbientModule || !containingSourceFile!.ambientModuleNames.length)) {
host.getTypeRootsCacheKey = getTypeRootsCacheKey;
// 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(
@ -2494,6 +2572,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
);
return result!;
}
host.getTypeRootsCacheKey = getTypeRootsCacheKey;
const resolutions = resolutionWorker(
unknownEntries,
containingFile,
@ -2703,7 +2782,11 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
);
if (resolutionsChanged) structureIsReused = StructureIsReused.SafeModules;
const typesReferenceDirectives = newSourceFile.typeReferenceDirectives;
const typeReferenceResolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typesReferenceDirectives, newSourceFile);
const typeReferenceResolutions = resolveTypeReferenceDirectiveNamesReusingOldState(
typesReferenceDirectives,
newSourceFile,
getProcessingTypeRootsCacheKey,
);
(resolvedTypeReferenceDirectiveNamesProcessing ??= new Map()).set(newSourceFile.path, typeReferenceResolutions);
// ensure that types resolutions are still correct
const typeReferenceResolutionsChanged = hasChangesInResolutions(
@ -2778,6 +2861,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
resolvedTypeReferenceDirectiveNames = oldProgram.resolvedTypeReferenceDirectiveNames;
resolvedLibReferences = oldProgram.resolvedLibReferences;
packageMap = oldProgram.getCurrentPackagesMap();
typeRootsCacheKeys = oldProgram.getTypeRootsCacheKeys();
return StructureIsReused.Completely;
}
@ -4057,7 +4141,13 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
}
const resolutions = resolvedTypeReferenceDirectiveNamesProcessing?.get(file.path) ||
resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectives, file);
resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectives, file, getTypeRootsCacheKey);
if (resolutions.length && resolvedTypeReferenceDirectiveNamesProcessing?.get(file.path)) {
// Ensure type reference key is cached from processing to actual
const redirect = getRedirectReferenceForResolution(file);
const value = processingTypeRootsCacheKeys?.get(redirect?.sourceFile.path);
if (value !== undefined) (typeRootsCacheKeys ??= new Map()).set(redirect?.sourceFile.path, value);
}
const resolutionsInFile = createModeAwareCache<ResolvedTypeReferenceDirectiveWithFailedLookupLocations>();
(resolvedTypeReferenceDirectiveNames ??= new Map()).set(file.path, resolutionsInFile);
for (let index = 0; index < typeDirectives.length; index++) {

Просмотреть файл

@ -74,6 +74,7 @@ import {
trace,
TypeReferenceDirectiveResolutionCache,
typeReferenceResolutionNameAndModeGetter,
TypeRootsCacheKeyOrSpecifiedTypeRoots,
WatchDirectoryFlags,
} from "./_namespaces/ts.js";
@ -360,6 +361,7 @@ function resolveModuleNameUsingGlobalCache(
mode,
getDirectoryPath(containingFile),
redirectedReference,
undefined,
primary.globalCacheResolution.globalResult,
primary,
);
@ -658,16 +660,25 @@ export function createResolutionCache(
function compactCaches(newProgram: Program | undefined) {
const availableOptions = new Set<CompilerOptions>();
const availableTypeCacheKeys = new Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>>();
if (newProgram) {
availableOptions.add(newProgram.getCompilerOptions());
const key = newProgram.getTypeRootsCacheKeys()?.get(/*key*/ undefined);
if (key !== undefined) availableTypeCacheKeys.set(newProgram.getCompilerOptions(), new Set([key]));
newProgram.forEachResolvedProjectReference(ref => {
availableOptions.add(ref.commandLine.options);
const key = newProgram.getTypeRootsCacheKeys()?.get(ref.sourceFile.path);
if (key !== undefined) {
const existing = availableTypeCacheKeys.get(ref.commandLine.options);
if (existing) existing.add(key);
else availableTypeCacheKeys.set(ref.commandLine.options, new Set([key]));
}
});
}
moduleResolutionCache.compact(availableOptions, /*skipOptionsToRedirectsKeyCleanup*/ true);
typeReferenceDirectiveResolutionCache.compact(availableOptions);
typeReferenceDirectiveResolutionCache.compact(availableOptions, /*skipOptionsToRedirectsKeyCleanup*/ false, availableTypeCacheKeys);
libraryResolutionCache.compact();
sharedCache.compactCaches(availableOptions, cache);
sharedCache.compactCaches(availableOptions, availableTypeCacheKeys, cache);
}
function gcModuleOrTypeRefCache(

Просмотреть файл

@ -45,6 +45,7 @@ import {
startsWith,
tryAddToSet,
TypeReferenceDirectiveResolutionCache,
TypeRootsCacheKeyOrSpecifiedTypeRoots,
WatchDirectoryFlags,
} from "./_namespaces/ts.js";
@ -55,6 +56,12 @@ declare module "./_namespaces/ts.js" {
}
}
/** @internal */
export interface CacheToOptionsEntry {
availableOptions: Set<CompilerOptions>;
availableTypeCacheKeys: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>>;
}
/**
* This is the cache of module/typedirectives resolution that are shared across projects
*
@ -72,7 +79,7 @@ export interface SharedResolutionCache {
watchedResolutionInfoMap: Map<ResolutionWithFailedLookupLocations, WatchedResolutionInfo>;
typeRootsWatches: Map<string, TypeRootWatch>;
inUseResolutionCaches: RefCountCache;
cacheToOptions: Map<ResolutionCache, Set<CompilerOptions>>;
cacheToOptions: Map<ResolutionCache, CacheToOptionsEntry>;
directoryWatchesOfFailedLookups: Map<Path, DirectoryWatchesOfFailedLookup>;
nonRecursiveDirectoryWatchesOfFailedLookups: Map<Path, DirectoryWatchesOfFailedLookup>;
fileWatchesOfAffectingLocations: Map<string, FileWatcherOfAffectingLocation>;
@ -82,7 +89,11 @@ export interface SharedResolutionCache {
clear(cache: ResolutionCache): void;
startCachingPerDirectoryResolution(cache: ResolutionCache): void;
finishCachingPerDirectoryResolution(): void;
compactCaches(availableOptions: Set<CompilerOptions>, cache: ResolutionCache): void;
compactCaches(
availableOptions: Set<CompilerOptions>,
availableTypeCacheKeys: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>>,
cache: ResolutionCache,
): void;
watchResolution<T extends ResolutionWithFailedLookupLocations, R extends ResolutionWithResolvedFileName>(
resolution: T,
@ -412,7 +423,7 @@ export function createSharedResolutionCache(sharedCacheHost: SharedResolutionCac
const watchedResolutionInfoMap = new Map<ResolutionWithFailedLookupLocations, WatchedResolutionInfo>();
const typeRootsWatches = new Map<string, TypeRootWatch>();
const inUseResolutionCaches = new Map<ResolutionCache, number>();
const cacheToOptions = new Map<ResolutionCache, Set<CompilerOptions>>();
const cacheToOptions = new Map<ResolutionCache, CacheToOptionsEntry>();
let affectingPathChecks: Set<string> | undefined;
let failedLookupChecks: Set<Path> | undefined;
@ -587,21 +598,36 @@ export function createSharedResolutionCache(sharedCacheHost: SharedResolutionCac
currentCache = undefined;
}
function compactCaches(availableOptions: Set<CompilerOptions>, cache: ResolutionCache) {
if (availableOptions.size) cacheToOptions.set(cache, availableOptions);
function compactCaches(
availableOptions: Set<CompilerOptions>,
availableTypeCacheKeys: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>>,
cache: ResolutionCache,
) {
if (availableOptions.size) cacheToOptions.set(cache, { availableOptions, availableTypeCacheKeys });
else cacheToOptions.delete(cache);
compactCachesWoker();
}
function compactCachesWoker() {
let availableOptions: Set<CompilerOptions>;
if (cacheToOptions.size === 1) availableOptions = firstDefinedIterator(cacheToOptions.values(), identity)!;
let availableTypeCacheKeys: Map<CompilerOptions, Set<TypeRootsCacheKeyOrSpecifiedTypeRoots>>;
if (cacheToOptions.size === 1) {
({ availableOptions, availableTypeCacheKeys } = firstDefinedIterator(cacheToOptions.values(), identity)!);
}
else {
availableOptions = new Set();
cacheToOptions.forEach(setOfOptions => setOfOptions.forEach(options => availableOptions.add(options)));
availableTypeCacheKeys = new Map();
cacheToOptions.forEach(entry => {
entry.availableOptions.forEach(options => availableOptions.add(options));
entry.availableTypeCacheKeys.forEach((keys, options) => {
const existing = availableTypeCacheKeys.get(options);
if (existing) keys.forEach(key => existing.add(key));
else availableTypeCacheKeys.set(options, new Set(keys));
});
});
}
moduleResolutionCache.compact(availableOptions, /*skipOptionsToRedirectsKeyCleanup*/ true);
typeReferenceDirectiveResolutionCache.compact(availableOptions);
typeReferenceDirectiveResolutionCache.compact(availableOptions, /*skipOptionsToRedirectsKeyCleanup*/ false, availableTypeCacheKeys);
libraryResolutionCache.compact();
}
@ -1351,12 +1377,12 @@ export function enableSharingModuleOrTypeReferenceResolutionCache<T extends Modu
sharedCache: T,
): T {
const getFromDirectoryCache = moduleOrTypeRefCache.getFromDirectoryCache;
moduleOrTypeRefCache.getFromDirectoryCache = (name, mode, directoryName, redirectedReference) => {
let result = getFromDirectoryCache.call(moduleOrTypeRefCache, name, mode, directoryName, redirectedReference);
moduleOrTypeRefCache.getFromDirectoryCache = (name, mode, directoryName, redirectedReference, typeRootsKey?) => {
let result = getFromDirectoryCache.call(moduleOrTypeRefCache, name, mode, directoryName, redirectedReference, typeRootsKey);
if (result) return result;
result = withSharingModuleOrTypeReferenceResolutionCache(
moduleOrTypeRefCache,
sharedCache => sharedCache.getFromDirectoryCache(name, mode, directoryName, redirectedReference),
sharedCache => sharedCache.getFromDirectoryCache(name, mode, directoryName, redirectedReference, typeRootsKey as TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined),
);
if (result) {
moduleOrTypeRefCache.setPerDirectoryAndNonRelativeNameCacheResult(
@ -1364,26 +1390,27 @@ export function enableSharingModuleOrTypeReferenceResolutionCache<T extends Modu
mode,
directoryName,
redirectedReference,
typeRootsKey as TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined,
result,
);
}
return result;
};
const getFromNonRelativeNameCache = moduleOrTypeRefCache.getFromNonRelativeNameCache;
moduleOrTypeRefCache.getFromNonRelativeNameCache = (nonRelativeModuleName, mode, directoryName, redirectedReference) =>
getFromNonRelativeNameCache.call(moduleOrTypeRefCache, nonRelativeModuleName, mode, directoryName, redirectedReference) ||
moduleOrTypeRefCache.getFromNonRelativeNameCache = (nonRelativeModuleName, mode, directoryName, redirectedReference, typeRootsKey?) =>
getFromNonRelativeNameCache.call(moduleOrTypeRefCache, nonRelativeModuleName, mode, directoryName, redirectedReference, typeRootsKey) ||
withSharingModuleOrTypeReferenceResolutionCache(
moduleOrTypeRefCache,
sharedCache => sharedCache?.getFromNonRelativeNameCache(nonRelativeModuleName, mode, directoryName, redirectedReference),
sharedCache => sharedCache?.getFromNonRelativeNameCache(nonRelativeModuleName, mode, directoryName, redirectedReference, typeRootsKey as TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined),
);
const setPerDirectoryAndNonRelativeNameCacheResult = moduleOrTypeRefCache.setPerDirectoryAndNonRelativeNameCacheResult;
moduleOrTypeRefCache.setPerDirectoryAndNonRelativeNameCacheResult = (name, mode, directoryName, redirectedReference, result, primary) => {
setPerDirectoryAndNonRelativeNameCacheResult.call(moduleOrTypeRefCache, name, mode, directoryName, redirectedReference, result, primary);
moduleOrTypeRefCache.setPerDirectoryAndNonRelativeNameCacheResult = (name, mode, directoryName, redirectedReference, typeRootsKey, result, primary) => {
setPerDirectoryAndNonRelativeNameCacheResult.call(moduleOrTypeRefCache, name, mode, directoryName, redirectedReference, typeRootsKey, result, primary);
if (primary) return; // Already in the cache
result = result.globalCacheResolution?.primary || result;
withSharingModuleOrTypeReferenceResolutionCache(
moduleOrTypeRefCache,
sharedCache => sharedCache.setPerDirectoryAndNonRelativeNameCacheResult(name, mode, directoryName, redirectedReference, result),
sharedCache => sharedCache.setPerDirectoryAndNonRelativeNameCacheResult(name, mode, directoryName, redirectedReference, typeRootsKey, result),
);
};
const update = moduleOrTypeRefCache.update;

Просмотреть файл

@ -27,6 +27,7 @@ import {
createProgramHost,
createTypeReferenceDirectiveResolutionCache,
createTypeReferenceResolutionLoader,
createTypeRootsCacheKey,
createWatchFactory,
createWatchHost,
CustomTransformers,
@ -57,6 +58,7 @@ import {
getBuildInfoFileVersionMap,
getConfigFileParsingDiagnostics,
getDirectoryPath,
getEffectiveTypeRoots as ts_getEffectiveTypeRoots,
getEmitDeclarations,
getErrorCountForSummary,
getFileNamesFromConfigSpecs,
@ -101,6 +103,7 @@ import {
ReadBuildProgramHost,
resolveConfigFileProjectName,
ResolvedConfigFileName,
ResolvedProjectReference,
resolveLibrary,
resolvePath,
resolveProjectReferencePath,
@ -114,6 +117,7 @@ import {
System,
toPath as ts_toPath,
TypeReferenceDirectiveResolutionCache,
TypeRootsCacheKeyOrSpecifiedTypeRoots,
unorderedRemoveItem,
updateErrorForNoInputFiles,
updateSharedExtendedConfigFileWatcher,
@ -399,6 +403,8 @@ interface SolutionBuilderState<T extends BuilderProgram> extends WatchFactory<Wa
readonly moduleResolutionCache: ModuleResolutionCache | undefined;
readonly typeReferenceDirectiveResolutionCache: TypeReferenceDirectiveResolutionCache | undefined;
readonly libraryResolutionCache: ModuleResolutionCache | undefined;
readonly typeRootsCacheKeyMap: Map<Path, TypeRootsCacheKeyOrSpecifiedTypeRoots>;
readonly effectiveTypeRoots: Map<Path, readonly string[] | false>;
// Mutable state
buildOrder: AnyBuildOrder | undefined;
@ -434,6 +440,8 @@ function createSolutionBuilderState<T extends BuilderProgram>(watch: boolean, ho
const baseCompilerOptions = getCompilerOptionsOfBuildOptions(options);
const compilerHost = createCompilerHostFromProgramHost(host, () => state.projectCompilerOptions) as CompilerHost & ReadBuildProgramHost;
setGetSourceFileAsHashVersioned(compilerHost);
compilerHost.getTypeRootsCacheKey = (options, redirect) => getTypeRootsCacheKey(state, options, redirect);
compilerHost.getEffectiveTypeRoots = (options, redirect) => getEffectiveTypeRoots(state, options, redirect);
compilerHost.getParsedCommandLine = fileName => parseConfigFile(state, fileName as ResolvedConfigFileName, toResolvedConfigFilePath(state, fileName as ResolvedConfigFileName));
compilerHost.resolveModuleNameLiterals = maybeBind(host, host.resolveModuleNameLiterals);
compilerHost.resolveTypeReferenceDirectiveReferences = maybeBind(host, host.resolveTypeReferenceDirectiveReferences);
@ -521,6 +529,8 @@ function createSolutionBuilderState<T extends BuilderProgram>(watch: boolean, ho
moduleResolutionCache,
typeReferenceDirectiveResolutionCache,
libraryResolutionCache,
typeRootsCacheKeyMap: new Map(),
effectiveTypeRoots: new Map(),
// Mutable state
buildOrder: undefined,
@ -566,6 +576,38 @@ function toResolvedConfigFilePath<T extends BuilderProgram>(state: SolutionBuild
return resolvedPath;
}
function getEffectiveTypeRoots<T extends BuilderProgram>(
state: SolutionBuilderState<T>,
options: CompilerOptions,
redirects: ResolvedProjectReference | undefined,
) {
const path = !redirects ? options.configFile!.path : redirects.sourceFile.path;
let result = state.effectiveTypeRoots.get(path);
if (result === undefined) {
state.effectiveTypeRoots.set(
path,
result = ts_getEffectiveTypeRoots(options, state.compilerHost) ?? false,
);
}
return result || undefined;
}
function getTypeRootsCacheKey<T extends BuilderProgram>(
state: SolutionBuilderState<T>,
options: CompilerOptions,
redirects: ResolvedProjectReference | undefined,
): TypeRootsCacheKeyOrSpecifiedTypeRoots {
const path = !redirects ? options.configFile!.path : redirects.sourceFile.path;
let result = state.typeRootsCacheKeyMap.get(path);
if (result === undefined) {
state.typeRootsCacheKeyMap.set(
path,
result = createTypeRootsCacheKey(options, redirects, state.compilerHost) ?? false,
);
}
return result;
}
function isParsedCommandLine(entry: ConfigFileCacheEntry): entry is ParsedCommandLine {
return !!(entry as ParsedCommandLine).options;
}
@ -777,20 +819,19 @@ function enableCache<T extends BuilderProgram>(state: SolutionBuilderState<T>) {
function disableCache<T extends BuilderProgram>(state: SolutionBuilderState<T>) {
if (!state.cache) return;
const { cache, host, compilerHost, extendedConfigCache, moduleResolutionCache, typeReferenceDirectiveResolutionCache, libraryResolutionCache } = state;
host.readFile = cache.originalReadFile;
host.fileExists = cache.originalFileExists;
host.directoryExists = cache.originalDirectoryExists;
host.createDirectory = cache.originalCreateDirectory;
host.writeFile = cache.originalWriteFile;
compilerHost.getSourceFile = cache.originalGetSourceFile;
state.readFileWithCache = cache.originalReadFileWithCache;
extendedConfigCache.clear();
moduleResolutionCache?.clear();
typeReferenceDirectiveResolutionCache?.clear();
libraryResolutionCache?.clear();
state.host.readFile = state.cache.originalReadFile;
state.host.fileExists = state.cache.originalFileExists;
state.host.directoryExists = state.cache.originalDirectoryExists;
state.host.createDirectory = state.cache.originalCreateDirectory;
state.host.writeFile = state.cache.originalWriteFile;
state.compilerHost.getSourceFile = state.cache.originalGetSourceFile;
state.readFileWithCache = state.cache.originalReadFileWithCache;
state.extendedConfigCache.clear();
state.moduleResolutionCache?.clear();
state.typeReferenceDirectiveResolutionCache?.clear();
state.libraryResolutionCache?.clear();
state.typeRootsCacheKeyMap.clear();
state.effectiveTypeRoots.clear();
state.cache = undefined;
}

Просмотреть файл

@ -15,6 +15,7 @@ import {
Pattern,
SymlinkCache,
ThisContainer,
TypeRootsCacheKeyOrSpecifiedTypeRoots,
} from "./_namespaces/ts.js";
// branded string type used to store absolute, normalized and canonicalized paths
@ -4727,6 +4728,8 @@ export interface Program extends ScriptReferenceHost {
callback: (resolution: ResolvedTypeReferenceDirectiveWithFailedLookupLocations, moduleName: string, mode: ResolutionMode, filePath: Path) => void,
file?: SourceFile,
): void;
/** @internal */
getTypeRootsCacheKeys(): Map<Path | undefined, TypeRootsCacheKeyOrSpecifiedTypeRoots> | undefined;
/**
* Emits the JavaScript and declaration files. If targetSourceFile is not specified, then
@ -7908,6 +7911,8 @@ export interface ModuleResolutionHost {
getDirectories?(path: string): string[];
useCaseSensitiveFileNames?: boolean | (() => boolean) | undefined;
/** @internal */ getGlobalTypingsCacheLocation?(): string | undefined;
/** @internal */ getTypeRootsCacheKey?(options: CompilerOptions, redirect: ResolvedProjectReference | undefined): TypeRootsCacheKeyOrSpecifiedTypeRoots;
/** @internal */ getEffectiveTypeRoots?(options: CompilerOptions, redirect: ResolvedProjectReference | undefined): readonly string[] | undefined;
}
/**

Просмотреть файл

@ -41,6 +41,7 @@ import {
getBuildInfo,
getConfigFileParsingDiagnostics,
getDirectoryPath,
getEffectiveTypeRoots as ts_getEffectiveTypeRoots,
getFileNamesFromConfigSpecs,
getNewLineCharacter,
getNormalizedAbsolutePath,
@ -402,6 +403,8 @@ interface ParsedConfig {
watchedDirectories?: Map<string, WildcardDirectoryWatcher>;
/** Level of program update to be done for this config file */
updateLevel?: ProgramUpdateLevel.RootNamesAndUpdate | ProgramUpdateLevel.Full;
/** Effective typeroots if calculated and cached */
effectiveTypeRoots?: readonly string[] | false;
}
// All of one and partial of the other, or vice versa.
@ -455,6 +458,7 @@ export function createWatchProgram<T extends BuilderProgram>(host: WatchCompiler
const currentDirectory = host.getCurrentDirectory();
const { configFileName, optionsToExtend: optionsToExtendForConfigFile = {}, watchOptionsToExtend, extraFileExtensions, createProgram } = host;
let { rootFiles: rootFileNames, options: compilerOptions, watchOptions, projectReferences } = host;
let effectiveTypeRoots: readonly string[] | false | undefined;
let wildcardDirectories: MapLike<WatchDirectoryFlags> | undefined;
let configFileParsingDiagnostics: Diagnostic[] | undefined;
let canConfigFileJsonReportNoInputFiles = false;
@ -516,6 +520,7 @@ export function createWatchProgram<T extends BuilderProgram>(host: WatchCompiler
compilerHost.getCurrentProgram = getCurrentProgram;
compilerHost.writeLog = writeLog;
compilerHost.getParsedCommandLine = getParsedCommandLine;
compilerHost.getEffectiveTypeRoots = getEffectiveTypeRoots;
// Cache for the module resolution
const resolutionCache = createResolutionCache(
@ -971,6 +976,20 @@ export function createWatchProgram<T extends BuilderProgram>(host: WatchCompiler
); // TODO: GH#18217
}
function getEffectiveTypeRoots(options: CompilerOptions, redirect: ResolvedProjectReference | undefined): readonly string[] | undefined {
if (!redirect) {
if (effectiveTypeRoots === undefined) {
effectiveTypeRoots = ts_getEffectiveTypeRoots(options, compilerHost) ?? false;
}
return effectiveTypeRoots || undefined;
}
const config = parsedConfigs!.get(redirect.sourceFile.path)!;
if (config.effectiveTypeRoots === undefined) {
config.effectiveTypeRoots = ts_getEffectiveTypeRoots(config.parsedCommandLine!.options, compilerHost) ?? false;
}
return config.effectiveTypeRoots || undefined;
}
function setConfigFileParsingResult(configFileParseResult: ParsedCommandLine) {
rootFileNames = configFileParseResult.fileNames;
compilerOptions = configFileParseResult.options;
@ -980,6 +999,7 @@ export function createWatchProgram<T extends BuilderProgram>(host: WatchCompiler
configFileParsingDiagnostics = getConfigFileParsingDiagnostics(configFileParseResult).slice();
canConfigFileJsonReportNoInputFiles = canJsonReportNoInputFiles(configFileParseResult.raw);
hasChangedConfigFileParsingErrors = true;
effectiveTypeRoots = undefined;
}
function getParsedCommandLine(configFileName: string): ParsedCommandLine | undefined {

Просмотреть файл

@ -442,6 +442,7 @@ function populateResolutionCache(
path !== inferredTypesPath ?
actualProgram.getResolvedTypeReferenceDirective(actualProgram.getSourceFileByPath(path)!, name, mode) :
actualProgram.getAutomaticTypeDirectiveResolutions().get(name, mode),
redirect => actualProgram.getTypeRootsCacheKeys()?.get(redirect?.sourceFile.path),
)
);
actual.resolvedLibraries.forEach((resolved, libFileName) => {
@ -462,6 +463,7 @@ function populateResolutionCache(
undefined,
ts.getDirectoryPath(libResolvedFrom),
undefined,
undefined,
expectedResolution,
);
});
@ -521,6 +523,7 @@ function populateResolutionCache(
moduleOrTypeRefCache: ts.ModuleOrTypeReferenceResolutionCache<T>,
getRedirectReferenceForResolution: () => ts.ResolvedProjectReference | undefined,
getProgramResolutions: (name: string, mode: ts.ResolutionMode) => T | undefined,
getTypeRootsCacheKey?: (redirect: ts.ResolvedProjectReference | undefined) => ts.TypeRootsCacheKeyOrSpecifiedTypeRoots | undefined,
) {
if (verifyProgramAndResolution) {
ts.Debug.assert(
@ -542,11 +545,13 @@ function populateResolutionCache(
);
if (!expectedCache) storeExpected.set(fileName, expectedCache = ts.createModeAwareCache());
expectedCache.set(name, mode, expected);
const redirect = getRedirectReferenceForResolution();
moduleOrTypeRefCache.setPerDirectoryAndNonRelativeNameCacheResult(
name,
mode,
ts.getDirectoryPath(fileName),
getRedirectReferenceForResolution(),
redirect,
getTypeRootsCacheKey?.(redirect),
expected as unknown as T,
);
if (verifyProgramAndResolution) {
@ -1179,22 +1184,21 @@ export function verifyResolutionCache(
(expectedOwnOptions && ts.computeRedirectsCacheKey(expectedOwnOptions)) === (actualOwnOptions && ts.computeRedirectsCacheKey(actualOwnOptions)),
`${projectName}:: ${cacheType}:: ownOptions affecting cache should match`,
);
verifyMap(
verifyMapAndTypeRootsCacheKeyMaps(
expectedCacheWithRedirects.getOwnMap(),
actualCacheWithRedirects.getOwnMap(),
verifyValue,
`${cacheType}:: ownMap`,
);
expectedCacheWithRedirects.redirectsKeyToMap.forEach(
(expectedCacheWithRedirectsValue, key) => {
// Expected might have value in redirectsKeyToMap because we collect and set resolutions
// in different order than its computed by program creation
const actualCacheWithRedirectsValue = actualCacheWithRedirects.redirectsKeyToMap.get(key);
if (actualCacheWithRedirectsValue) {
verifyMap(
verifyMapAndTypeRootsCacheKeyMaps(
expectedCacheWithRedirectsValue,
actualCacheWithRedirects.redirectsKeyToMap.get(key),
verifyValue,
`${cacheType}:: redirectsKeyToMap:: ${key}`,
);
}
@ -1216,10 +1220,9 @@ export function verifyResolutionCache(
(actualCacheWithRedirectsValue, key) => {
const expectedCacheWithRedirectsValue = expectedCacheWithRedirects.redirectsKeyToMap.get(key);
if (expectedCacheWithRedirectsValue) {
verifyMap(
verifyMapAndTypeRootsCacheKeyMaps(
expectedCacheWithRedirectsValue,
actualCacheWithRedirectsValue,
verifyValue,
`${cacheType}:: redirectsKeyToMap:: ${key}`,
);
}
@ -1238,6 +1241,55 @@ export function verifyResolutionCache(
}
},
);
function verifyMapAndTypeRootsCacheKeyMaps(
expectedRootMap: Map<K, V> | undefined,
actualRootMap: Map<K, V> | undefined,
caption: string,
) {
verifyMapFromCacheSame(
expectedRootMap,
actualRootMap,
caption,
);
verifyTypeRootsCacheKeyMaps(
expectedCacheWithRedirects,
actualCacheWithRedirects,
verifyMapFromCacheSame,
expectedRootMap,
actualRootMap,
caption,
);
}
function verifyMapFromCacheSame(
expctedCacheMap: Map<K, V> | undefined,
actualCacheMap: Map<K, V> | undefined,
caption: string,
) {
verifyMap(
expctedCacheMap,
actualCacheMap,
verifyValue,
caption,
);
}
}
function verifyTypeRootsCacheKeyMaps<K extends string, V>(
expectedCacheWithRedirects: ts.CacheWithRedirects<K, V>,
actualCacheWithRedirects: ts.CacheWithRedirects<K, V>,
verifyTypeRootsResultMap: (expectedTypeRootsCacheMap: Map<K, V> | undefined, actualTypeRootsCacheMap: Map<K, V> | undefined, caption: string) => void,
expectedKeyMap: Map<K, V> | undefined,
actualKeyMap: Map<K, V> | undefined,
caption: string,
) {
verifyMap(
expectedCacheWithRedirects.getTypesRootKeyToMap()?.get(expectedKeyMap!),
actualCacheWithRedirects.getTypesRootKeyToMap()?.get(actualKeyMap!),
verifyTypeRootsResultMap,
caption,
);
}
function verifyModuleOrTypeResolutionCacheIsEmpty(
@ -1279,6 +1331,7 @@ export function verifyResolutionCache(
);
}
});
// TODO:: sheetal
}
function verifyModuleOrTypeResolutionCacheReferencesOnlyOtherCaches(
@ -1286,10 +1339,11 @@ export function verifyResolutionCache(
cacheType: ModuleOrTypeRefOrLibraryCacheType,
compacted: boolean,
) {
// TODO:: sheetal
let allowedKeys: Set<ts.RedirectsCacheKey> | undefined;
forEachOtherResolutionCachesInSharedCache(cache =>
cacheType !== "libraryResolutionCache" ?
actual.sharedCache.cacheToOptions.get(cache)?.forEach(
actual.sharedCache.cacheToOptions.get(cache)?.availableOptions.forEach(
options =>
(allowedKeys ??= new Set()).add(
ts.computeRedirectsCacheKey(options),
@ -1319,6 +1373,7 @@ export function verifyResolutionCache(
allowedKeys: Set<ts.RedirectsCacheKey> | undefined,
compacted: boolean,
) {
// TODO:: sheetal
ts.Debug.assert(
cacheWithRedirects.getOwnMap().size === 0 || allowedKeys?.has(ts.computeRedirectsCacheKey(cacheWithRedirects.getOwnOptions()!)),
`${projectName}:: ${cacheType}:: ${compacted}:: ownMap should be empty`,

Просмотреть файл

@ -1163,6 +1163,7 @@ export interface ParsedConfig {
*/
watchedDirectoriesStale?: boolean;
updateLevel?: ProgramUpdateLevel.RootNamesAndUpdate | ProgramUpdateLevel.Full;
effectiveTypeRoots?: readonly string[] | false;
}
function createProjectNameFactoryWithCounter(nameFactory: (counter: number) => string) {
@ -3024,6 +3025,7 @@ export class ProjectService {
configFileExistenceInfo.config.watchedDirectoriesStale = true;
configFileExistenceInfo.config.updateLevel = undefined;
}
configFileExistenceInfo.config.effectiveTypeRoots = undefined;
// If watch options different than older options when setting for the first time, update the config file watcher
if (

Просмотреть файл

@ -479,6 +479,7 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
/** @internal */ useSourceOfProjectReferenceRedirect?(): boolean;
/** @internal */ getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined;
/** @internal */ getEffectiveTypeRoots?(options: CompilerOptions, redirect: ResolvedProjectReference | undefined): readonly string[] | undefined;
private readonly cancellationToken: ThrottledCancellationToken;
@ -575,6 +576,7 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
/** @internal*/ preferNonRecursiveWatch: boolean | undefined;
readonly jsDocParsingMode: JSDocParsingMode | undefined;
private compilerHost?: CompilerHost;
/** @internal */
constructor(
@ -656,6 +658,16 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
this.projectService.onProjectCreation(this);
}
/** @internal */
setCompilerHost(host: CompilerHost): void {
this.compilerHost = host;
}
/** @internal */
getCompilerHost(): CompilerHost | undefined {
return this.compilerHost;
}
isKnownTypesPackageName(name: string): boolean {
return this.projectService.typingsInstaller.isKnownTypesPackageName(name);
}
@ -1198,6 +1210,7 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
}
close(): void {
this.compilerHost = undefined;
if (this.typingsCache) this.projectService.typingsInstaller.onProjectClosed(this);
this.typingsCache = undefined;
this.closeWatchingTypingLocations();
@ -1754,6 +1767,7 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
tracing?.push(tracing.Phase.Session, "finishCachingPerDirectoryResolution");
this.resolutionCache.finishCachingPerDirectoryResolution(this.program, oldProgram);
tracing?.pop();
this.compilerHost = undefined;
Debug.assert(oldProgram === undefined || this.program !== undefined);
@ -3008,8 +3022,6 @@ export class ConfiguredProject extends Project {
/** @internal */
sendLoadingProjectFinish = false;
private compilerHost?: CompilerHost;
/** @internal */
configDiagDiagnosticsReported?: number;
@ -3043,16 +3055,6 @@ export class ConfiguredProject extends Project {
this.pendingUpdateReason = pendingUpdateReason;
}
/** @internal */
setCompilerHost(host: CompilerHost): void {
this.compilerHost = host;
}
/** @internal */
getCompilerHost(): CompilerHost | undefined {
return this.compilerHost;
}
/** @internal */
override useSourceOfProjectReferenceRedirect(): boolean {
return this.languageServiceEnabled;
@ -3111,7 +3113,6 @@ export class ConfiguredProject extends Project {
default:
result = super.updateGraph();
}
this.compilerHost = undefined;
this.projectService.sendProjectLoadingFinishEvent(this);
this.projectService.sendProjectTelemetry(this);
if (
@ -3219,7 +3220,6 @@ export class ConfiguredProject extends Project {
this.projectService.configFileExistenceInfoCache.forEach((_configFileExistenceInfo, canonicalConfigFilePath) => this.releaseParsedConfig(canonicalConfigFilePath));
this.projectErrors = undefined;
this.openFileWatchTriggered.clear();
this.compilerHost = undefined;
super.close();
}
@ -3234,8 +3234,18 @@ export class ConfiguredProject extends Project {
return !!this.deferredClose;
}
getEffectiveTypeRoots(): string[] {
return getEffectiveTypeRoots(this.getCompilationSettings(), this) || [];
/** @internal */
override getEffectiveTypeRoots(
options: CompilerOptions,
redirect: ResolvedProjectReference | undefined,
): readonly string[] | undefined {
const path = !redirect ? this.canonicalConfigFilePath : redirect.sourceFile.path as unknown as NormalizedPath;
const configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(path)!;
let result = configFileExistenceInfo.config!.effectiveTypeRoots;
if (result === undefined) {
result = configFileExistenceInfo.config!.effectiveTypeRoots = getEffectiveTypeRoots(options, this) ?? false;
}
return result || undefined;
}
/** @internal */

Просмотреть файл

@ -1778,6 +1778,7 @@ export function createLanguageService(
onSourceFileNotCreated: maybeBind(host, host.onSourceFileNotCreated),
useSourceOfProjectReferenceRedirect: maybeBind(host, host.useSourceOfProjectReferenceRedirect),
getParsedCommandLine,
getEffectiveTypeRoots: maybeBind(host, host.getEffectiveTypeRoots),
jsDocParsingMode: host.jsDocParsingMode,
getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation),
};

Просмотреть файл

@ -3033,7 +3033,6 @@ declare namespace ts {
getAllProjectErrors(): readonly Diagnostic[];
setProjectErrors(projectErrors: Diagnostic[]): void;
close(): void;
getEffectiveTypeRoots(): string[];
}
/**
* Project whose configuration is handled externally, such as in a '.csproj'.

Просмотреть файл

@ -111,9 +111,7 @@ File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'
@ -331,9 +329,7 @@ File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'

Просмотреть файл

@ -118,10 +118,7 @@ node_modules/@types/responselike/index.d.ts
======== Resolving type reference directive 'responselike', containing file '/home/src/workspaces/project/test/module/ts/__inferred type names__.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
File '/home/src/workspaces/project/node_modules/@types/responselike/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', result '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'.
Resolution for type reference directive 'responselike' was found in cache from location '/home/src/workspaces/project/test/module'.
======== Type reference directive 'responselike' was successfully resolved to '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', primary: true. ========
File '/home/src/workspaces/project/node_modules/@types/responselike/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/node_modules/@types/package.json' does not exist according to earlier cached lookups.
@ -131,8 +128,13 @@ File '/home/src/workspaces/package.json' does not exist according to earlier cac
File '/home/src/package.json' does not exist according to earlier cached lookups.
File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'. ========
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/node_modules/@types/responselike'.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/node_modules/@types/package.json' does not exist according to earlier cached lookups.

Просмотреть файл

@ -97,11 +97,7 @@ File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts-require/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types' does not exist, skipping all lookups in it.
Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts-require'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'
@ -121,18 +117,12 @@ node_modules/@types/responselike/index.d.ts
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/test/module/ts/__inferred type names__.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
======== Resolving type reference directive 'responselike', containing file '/home/src/workspaces/project/test/module/ts/__inferred type names__.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
File '/home/src/workspaces/project/node_modules/@types/responselike/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', result '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'.
Resolution for type reference directive 'responselike' was found in cache from location '/home/src/workspaces/project/test/module'.
======== Type reference directive 'responselike' was successfully resolved to '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', primary: true. ========
File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/node_modules/@types/package.json' does not exist according to earlier cached lookups.
@ -151,8 +141,9 @@ File '/home/src/workspaces/package.json' does not exist according to earlier cac
File '/home/src/package.json' does not exist according to earlier cached lookups.
File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'. ========
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/node_modules/@types/responselike'.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'
@ -402,11 +393,7 @@ File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'
@ -563,11 +550,7 @@ File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts-require/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types' does not exist, skipping all lookups in it.
Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts-require'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,222 +0,0 @@
0:: build ts project with edit
*** Needs explanation
TsBuild info text without affectedFilesPendingEmit:: /home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"fileInfos": {
"../../../../../tslibs/ts/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
},
"./index.ts": {
"version": "-13547799514-export const tsIndex= 10;"
},
"./main.ts": {
"version": "-8570461073-export const tsMain = 10;export const z = 10;"
},
"../ts-require/node_modules/@types/node/index.d.ts": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"../../../node_modules/@types/responselike/index.d.ts": {
"version": "4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n",
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./index.ts"
],
[
3,
"./main.ts"
]
],
"referencedMap": {
"../../../node_modules/@types/responselike/index.d.ts": [
"../ts-require/node_modules/@types/node/index.d.ts"
]
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"fileInfos": {
"../../../../../tslibs/ts/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
},
"./index.ts": {
"version": "-13547799514-export const tsIndex= 10;"
},
"./main.ts": {
"version": "-8570461073-export const tsMain = 10;export const z = 10;"
},
"./node_modules/@types/node/index.d.ts": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"../../../node_modules/@types/responselike/index.d.ts": {
"version": "4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n",
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./index.ts"
],
[
3,
"./main.ts"
]
],
"referencedMap": {
"../../../node_modules/@types/responselike/index.d.ts": [
"./node_modules/@types/node/index.d.ts"
]
},
"version": "FakeTSVersion"
}
Incremental signature is neither dts signature nor file version for File:: ../ts-require/node_modules/@types/node/index.d.ts
Incremental:: undefined
Clean:: {
"original": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"signature": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
Dts Signature:: undefined
Incremental signature is neither dts signature nor file version for File:: ./node_modules/@types/node/index.d.ts
Incremental:: {
"original": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"signature": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
Clean:: undefined
Dts Signature:: undefined
1:: build ts-require project with edit
*** Needs explanation
TsBuild info text without affectedFilesPendingEmit:: /home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"fileInfos": {
"../../../../../tslibs/ts/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
},
"./index.ts": {
"version": "-13547799514-export const tsIndex= 10;"
},
"./main.ts": {
"version": "-8570461073-export const tsMain = 10;export const z = 10;"
},
"../ts-require/node_modules/@types/node/index.d.ts": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"../../../node_modules/@types/responselike/index.d.ts": {
"version": "4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n",
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./index.ts"
],
[
3,
"./main.ts"
]
],
"referencedMap": {
"../../../node_modules/@types/responselike/index.d.ts": [
"../ts-require/node_modules/@types/node/index.d.ts"
]
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"fileInfos": {
"../../../../../tslibs/ts/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
},
"./index.ts": {
"version": "-13547799514-export const tsIndex= 10;"
},
"./main.ts": {
"version": "-8570461073-export const tsMain = 10;export const z = 10;"
},
"./node_modules/@types/node/index.d.ts": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"../../../node_modules/@types/responselike/index.d.ts": {
"version": "4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n",
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./index.ts"
],
[
3,
"./main.ts"
]
],
"referencedMap": {
"../../../node_modules/@types/responselike/index.d.ts": [
"./node_modules/@types/node/index.d.ts"
]
},
"version": "FakeTSVersion"
}
Incremental signature is neither dts signature nor file version for File:: ../ts-require/node_modules/@types/node/index.d.ts
Incremental:: undefined
Clean:: {
"original": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"signature": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
Dts Signature:: undefined
Incremental signature is neither dts signature nor file version for File:: ./node_modules/@types/node/index.d.ts
Incremental:: {
"original": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"signature": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
Clean:: undefined
Dts Signature:: undefined

Просмотреть файл

@ -134,13 +134,16 @@ File '/home/src/workspaces/package.json' does not exist according to earlier cac
File '/home/src/package.json' does not exist according to earlier cached lookups.
File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'. ========
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/node_modules/@types/responselike'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts-require/node_modules/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts-require/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/package.json' does not exist.
File '/home/src/workspaces/project/test/module/ts/node_modules/package.json' does not exist.
File '/home/src/workspaces/project/test/module/ts/package.json' does not exist.
File '/home/src/workspaces/project/test/module/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/package.json' does not exist according to earlier cached lookups.
@ -154,7 +157,7 @@ test/module/ts/index.ts
Matched by default include pattern '**/*'
test/module/ts/main.ts
Matched by default include pattern '**/*'
test/module/ts-require/node_modules/@types/node/index.d.ts
test/module/ts/node_modules/@types/node/index.d.ts
Type library referenced via 'node' from file 'node_modules/@types/responselike/index.d.ts'
node_modules/@types/responselike/index.d.ts
Entry point of type library 'responselike' specified in compilerOptions
@ -264,7 +267,7 @@ exports.tsMain = 10;
//// [/home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo]
{"fileNames":["../../../../../tslibs/ts/lib/lib.d.ts","./index.ts","./main.ts","../ts-require/node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileIdsList":[[4]],"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},"-13547799514-export const tsIndex= 10;","-10684672141-export const tsMain = 10;",{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n","impliedFormat":1}],"root":[2,3],"referencedMap":[[5,1]],"version":"FakeTSVersion"}
{"fileNames":["../../../../../tslibs/ts/lib/lib.d.ts","./index.ts","./main.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileIdsList":[[4]],"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},"-13547799514-export const tsIndex= 10;","-10684672141-export const tsMain = 10;",{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n","impliedFormat":1}],"root":[2,3],"referencedMap":[[5,1]],"version":"FakeTSVersion"}
//// [/home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@ -272,12 +275,12 @@ exports.tsMain = 10;
"../../../../../tslibs/ts/lib/lib.d.ts",
"./index.ts",
"./main.ts",
"../ts-require/node_modules/@types/node/index.d.ts",
"./node_modules/@types/node/index.d.ts",
"../../../node_modules/@types/responselike/index.d.ts"
],
"fileIdsList": [
[
"../ts-require/node_modules/@types/node/index.d.ts"
"./node_modules/@types/node/index.d.ts"
]
],
"fileInfos": {
@ -298,7 +301,7 @@ exports.tsMain = 10;
"version": "-10684672141-export const tsMain = 10;",
"signature": "-10684672141-export const tsMain = 10;"
},
"../ts-require/node_modules/@types/node/index.d.ts": {
"./node_modules/@types/node/index.d.ts": {
"original": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
@ -331,11 +334,11 @@ exports.tsMain = 10;
],
"referencedMap": {
"../../../node_modules/@types/responselike/index.d.ts": [
"../ts-require/node_modules/@types/node/index.d.ts"
"./node_modules/@types/node/index.d.ts"
]
},
"version": "FakeTSVersion",
"size": 1051
"size": 1039
}
@ -405,7 +408,6 @@ node_modules/@types/responselike/index.d.ts
Entry point of type library 'responselike' specified in compilerOptions
//// [/home/src/workspaces/project/test/module/ts/index.js] file written with same contents
//// [/home/src/workspaces/project/test/module/ts/main.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@ -415,7 +417,7 @@ exports.z = 10;
//// [/home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo]
{"fileNames":["../../../../../tslibs/ts/lib/lib.d.ts","./index.ts","./main.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileIdsList":[[4]],"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":"-13547799514-export const tsIndex= 10;","signature":"-3096057536-export declare const tsIndex = 10;\n"},{"version":"-8570461073-export const tsMain = 10;export const z = 10;","signature":"-7988574173-export declare const tsMain = 10;\nexport declare const z = 10;\n"},{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n","impliedFormat":1}],"root":[2,3],"referencedMap":[[5,1]],"version":"FakeTSVersion"}
{"fileNames":["../../../../../tslibs/ts/lib/lib.d.ts","./index.ts","./main.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileIdsList":[[4]],"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},"-13547799514-export const tsIndex= 10;",{"version":"-8570461073-export const tsMain = 10;export const z = 10;","signature":"-7988574173-export declare const tsMain = 10;\nexport declare const z = 10;\n"},{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n","impliedFormat":1}],"root":[2,3],"referencedMap":[[5,1]],"version":"FakeTSVersion"}
//// [/home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@ -442,12 +444,8 @@ exports.z = 10;
"affectsGlobalScope": true
},
"./index.ts": {
"original": {
"version": "-13547799514-export const tsIndex= 10;",
"signature": "-3096057536-export declare const tsIndex = 10;\n"
},
"version": "-13547799514-export const tsIndex= 10;",
"signature": "-3096057536-export declare const tsIndex = 10;\n"
"signature": "-13547799514-export const tsIndex= 10;"
},
"./main.ts": {
"original": {
@ -494,7 +492,7 @@ exports.z = 10;
]
},
"version": "FakeTSVersion",
"size": 1237
"size": 1162
}

Просмотреть файл

@ -100,9 +100,7 @@ File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts-require/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts-require'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'
@ -152,40 +150,10 @@ File '/home/src/workspaces/package.json' does not exist according to earlier cac
File '/home/src/package.json' does not exist according to earlier cached lookups.
File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'. ========
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/node_modules/@types/responselike'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts-require/node_modules/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts-require/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/package.json' does not exist according to earlier cached lookups.
File '/home/src/package.json' does not exist according to earlier cached lookups.
File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
test/module/ts-require/node_modules/@types/node/index.d.ts:1:15 - error TS2451: Cannot redeclare block-scoped variable 'tsRequireGlobal'.
1 declare const tsRequireGlobal = 10;
   ~~~~~~~~~~~~~~~
test/module/ts/node_modules/@types/node/index.d.ts:1:15
1 declare const tsRequireGlobal = 10;
   ~~~~~~~~~~~~~~~
'tsRequireGlobal' was also declared here.
test/module/ts/node_modules/@types/node/index.d.ts:1:15 - error TS2451: Cannot redeclare block-scoped variable 'tsRequireGlobal'.
1 declare const tsRequireGlobal = 10;
   ~~~~~~~~~~~~~~~
test/module/ts-require/node_modules/@types/node/index.d.ts:1:15
1 declare const tsRequireGlobal = 10;
   ~~~~~~~~~~~~~~~
'tsRequireGlobal' was also declared here.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'
test/module/ts/index.ts
@ -194,13 +162,9 @@ test/module/ts/main.ts
Matched by default include pattern '**/*'
test/module/ts/node_modules/@types/node/index.d.ts
Entry point for implicit type library 'node'
test/module/ts-require/node_modules/@types/node/index.d.ts
Type library referenced via 'node' from file 'node_modules/@types/responselike/index.d.ts'
node_modules/@types/responselike/index.d.ts
Entry point for implicit type library 'responselike'
Found 2 errors.
//// [/home/src/workspaces/project/test/module/ts-require/index.js]
@ -307,7 +271,7 @@ exports.tsMain = 10;
//// [/home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo]
{"fileNames":["../../../../../tslibs/ts/lib/lib.d.ts","./index.ts","./main.ts","./node_modules/@types/node/index.d.ts","../ts-require/node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileIdsList":[[5]],"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},"-13547799514-export const tsIndex= 10;","-10684672141-export const tsMain = 10;",{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n","impliedFormat":1}],"root":[2,3],"referencedMap":[[6,1]],"semanticDiagnosticsPerFile":[[4,[{"start":14,"length":15,"messageText":"Cannot redeclare block-scoped variable 'tsRequireGlobal'.","category":1,"code":2451,"relatedInformation":[{"file":"../ts-require/node_modules/@types/node/index.d.ts","start":14,"length":15,"messageText":"'tsRequireGlobal' was also declared here.","category":3,"code":6203}]}]],[5,[{"start":14,"length":15,"messageText":"Cannot redeclare block-scoped variable 'tsRequireGlobal'.","category":1,"code":2451,"relatedInformation":[{"file":"./node_modules/@types/node/index.d.ts","start":14,"length":15,"messageText":"'tsRequireGlobal' was also declared here.","category":3,"code":6203}]}]]],"version":"FakeTSVersion"}
{"fileNames":["../../../../../tslibs/ts/lib/lib.d.ts","./index.ts","./main.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileIdsList":[[4]],"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},"-13547799514-export const tsIndex= 10;","-10684672141-export const tsMain = 10;",{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n","impliedFormat":1}],"root":[2,3],"referencedMap":[[5,1]],"version":"FakeTSVersion"}
//// [/home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@ -316,12 +280,11 @@ exports.tsMain = 10;
"./index.ts",
"./main.ts",
"./node_modules/@types/node/index.d.ts",
"../ts-require/node_modules/@types/node/index.d.ts",
"../../../node_modules/@types/responselike/index.d.ts"
],
"fileIdsList": [
[
"../ts-require/node_modules/@types/node/index.d.ts"
"./node_modules/@types/node/index.d.ts"
]
],
"fileInfos": {
@ -353,17 +316,6 @@ exports.tsMain = 10;
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"../ts-require/node_modules/@types/node/index.d.ts": {
"original": {
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "-4340658070-declare const tsRequireGlobal = 10;",
"signature": "-4340658070-declare const tsRequireGlobal = 10;",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"../../../node_modules/@types/responselike/index.d.ts": {
"original": {
"version": "4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n",
@ -386,61 +338,15 @@ exports.tsMain = 10;
],
"referencedMap": {
"../../../node_modules/@types/responselike/index.d.ts": [
"../ts-require/node_modules/@types/node/index.d.ts"
"./node_modules/@types/node/index.d.ts"
]
},
"semanticDiagnosticsPerFile": [
[
"./node_modules/@types/node/index.d.ts",
[
{
"start": 14,
"length": 15,
"messageText": "Cannot redeclare block-scoped variable 'tsRequireGlobal'.",
"category": 1,
"code": 2451,
"relatedInformation": [
{
"file": "../ts-require/node_modules/@types/node/index.d.ts",
"start": 14,
"length": 15,
"messageText": "'tsRequireGlobal' was also declared here.",
"category": 3,
"code": 6203
}
]
}
]
],
[
"../ts-require/node_modules/@types/node/index.d.ts",
[
{
"start": 14,
"length": 15,
"messageText": "Cannot redeclare block-scoped variable 'tsRequireGlobal'.",
"category": 1,
"code": 2451,
"relatedInformation": [
{
"file": "./node_modules/@types/node/index.d.ts",
"start": 14,
"length": 15,
"messageText": "'tsRequireGlobal' was also declared here.",
"category": 3,
"code": 6203
}
]
}
]
]
],
"version": "FakeTSVersion",
"size": 1856
"size": 1039
}
exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated
exitCode:: ExitStatus.Success
Change:: build ts project with edit
@ -457,7 +363,7 @@ Output::
[HH:MM:SS AM] Project 'test/module/ts-require/tsconfig.json' is up to date because newest input 'test/module/ts-require/main.ts' is older than output 'test/module/ts-require/tsconfig.tsbuildinfo'
[HH:MM:SS AM] Project 'test/module/ts/tsconfig.json' is out of date because buildinfo file 'test/module/ts/tsconfig.tsbuildinfo' indicates that program needs to report errors.
[HH:MM:SS AM] Project 'test/module/ts/tsconfig.json' is out of date because output 'test/module/ts/tsconfig.tsbuildinfo' is older than input 'test/module/ts/main.ts'
[HH:MM:SS AM] Building project '/home/src/workspaces/project/test/module/ts/tsconfig.json'...
@ -496,9 +402,7 @@ File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'
@ -513,7 +417,6 @@ node_modules/@types/responselike/index.d.ts
Entry point for implicit type library 'responselike'
//// [/home/src/workspaces/project/test/module/ts/index.js] file written with same contents
//// [/home/src/workspaces/project/test/module/ts/main.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
@ -523,7 +426,7 @@ exports.z = 10;
//// [/home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo]
{"fileNames":["../../../../../tslibs/ts/lib/lib.d.ts","./index.ts","./main.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileIdsList":[[4]],"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":"-13547799514-export const tsIndex= 10;","signature":"-3096057536-export declare const tsIndex = 10;\n"},{"version":"-8570461073-export const tsMain = 10;export const z = 10;","signature":"-7988574173-export declare const tsMain = 10;\nexport declare const z = 10;\n"},{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n","impliedFormat":1}],"root":[2,3],"referencedMap":[[5,1]],"version":"FakeTSVersion"}
{"fileNames":["../../../../../tslibs/ts/lib/lib.d.ts","./index.ts","./main.ts","./node_modules/@types/node/index.d.ts","../../../node_modules/@types/responselike/index.d.ts"],"fileIdsList":[[4]],"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},"-13547799514-export const tsIndex= 10;",{"version":"-8570461073-export const tsMain = 10;export const z = 10;","signature":"-7988574173-export declare const tsMain = 10;\nexport declare const z = 10;\n"},{"version":"-4340658070-declare const tsRequireGlobal = 10;","affectsGlobalScope":true,"impliedFormat":1},{"version":"4670743798-/// <reference types=\"node\" />\nexport const z = 10;\n","impliedFormat":1}],"root":[2,3],"referencedMap":[[5,1]],"version":"FakeTSVersion"}
//// [/home/src/workspaces/project/test/module/ts/tsconfig.tsbuildinfo.readable.baseline.txt]
{
@ -550,12 +453,8 @@ exports.z = 10;
"affectsGlobalScope": true
},
"./index.ts": {
"original": {
"version": "-13547799514-export const tsIndex= 10;",
"signature": "-3096057536-export declare const tsIndex = 10;\n"
},
"version": "-13547799514-export const tsIndex= 10;",
"signature": "-3096057536-export declare const tsIndex = 10;\n"
"signature": "-13547799514-export const tsIndex= 10;"
},
"./main.ts": {
"original": {
@ -602,7 +501,7 @@ exports.z = 10;
]
},
"version": "FakeTSVersion",
"size": 1237
"size": 1162
}
@ -660,9 +559,7 @@ File '/home/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/test/module/ts-require/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Resolving real path for '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts'.
Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts-require'.
======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
../../tslibs/TS/Lib/lib.d.ts
Default library for target 'es5'

Просмотреть файл

@ -307,7 +307,8 @@ File '/user/username/projects/package.json' does not exist according to earlier
File '/user/username/package.json' does not exist according to earlier cached lookups.
File '/user/package.json' does not exist according to earlier cached lookups.
File '/package.json' does not exist according to earlier cached lookups.
======== Resolving type reference directive 'pkg', containing file '/user/username/projects/myproject/a.ts'. ========
======== Resolving type reference directive 'pkg', containing file '/user/username/projects/myproject/a.ts', root directory '/user/username/projects/myproject/node_modules/@types,/user/username/projects/node_modules/@types,/user/username/node_modules/@types,/user/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/user/username/projects/myproject/node_modules/@types, /user/username/projects/node_modules/@types, /user/username/node_modules/@types, /user/node_modules/@types, /node_modules/@types'.
Resolution for type reference directive 'pkg' was found in cache from location '/user/username/projects/myproject'.
======== Type reference directive 'pkg' was successfully resolved to '/user/username/projects/myproject/node_modules/pkg/import.d.ts' with Package ID 'pkg/import.d.ts@0.0.1', primary: false. ========
File '/user/username/projects/myproject/node_modules/pkg/package.json' exists according to earlier cached lookups.

Просмотреть файл

@ -684,7 +684,8 @@ Reusing resolution of type reference directive 'pkg2' from '/home/src/workspaces
Reusing resolution of type reference directive 'pkg3' from '/home/src/workspaces/project/fileWithTypeRefs.ts' of old program, it was not resolved.
File '/home/src/workspaces/project/node_modules/pkg2/package.json' exists according to earlier cached lookups.
Reusing resolution of module 'pkg0' from '/home/src/workspaces/project/randomFileForImport.ts' of old program, it was successfully resolved to '/home/src/workspaces/project/node_modules/pkg0/import.d.ts' with Package ID 'pkg0/import.d.ts@0.0.1'.
======== Resolving type reference directive 'pkg2', containing file '/home/src/workspaces/project/randomFileForTypeRef.ts'. ========
======== Resolving type reference directive 'pkg2', containing file '/home/src/workspaces/project/randomFileForTypeRef.ts', root directory '/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Resolving with primary search path '/home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Resolution for type reference directive 'pkg2' was found in cache from location '/home/src/workspaces/project'.
======== Type reference directive 'pkg2' was successfully resolved to '/home/src/workspaces/project/node_modules/pkg2/import.d.ts' with Package ID 'pkg2/import.d.ts@0.0.1', primary: false. ========
Reusing resolution of type reference directive 'pkg4' from '/home/src/workspaces/project/__inferred type names__.ts' of old program, it was successfully resolved to '/home/src/workspaces/project/node_modules/@types/pkg4/index.d.ts'.

Просмотреть файл

@ -299,23 +299,23 @@ Info seq [hh:mm:ss:mss] fileExists:: [
Info seq [hh:mm:ss:mss] directoryExists:: [
{
"key": "/users/username/projects/project",
"count": 3
"count": 2
},
{
"key": "/users/username/projects",
"count": 3
"count": 2
},
{
"key": "/users/username",
"count": 2
"count": 1
},
{
"key": "/users",
"count": 2
"count": 1
},
{
"key": "/",
"count": 2
"count": 1
},
{
"key": "/users/username/projects/project/node_modules",

Просмотреть файл

@ -342,31 +342,31 @@ Info seq [hh:mm:ss:mss] fileExists:: [
Info seq [hh:mm:ss:mss] directoryExists:: [
{
"key": "/user/username/projects/project/c/d",
"count": 2
"count": 1
},
{
"key": "/user/username/projects/project/c",
"count": 3
"count": 2
},
{
"key": "/user/username/projects/project",
"count": 3
"count": 2
},
{
"key": "/user/username/projects",
"count": 3
"count": 2
},
{
"key": "/user/username",
"count": 2
"count": 1
},
{
"key": "/user",
"count": 2
"count": 1
},
{
"key": "/",
"count": 2
"count": 1
},
{
"key": "/user/username/projects/project/c/d/node_modules",

Просмотреть файл

@ -273,10 +273,6 @@ Info seq [hh:mm:ss:mss] event:
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/a 1 undefined Config: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Wild card directory
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/a 1 undefined Config: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Wild card directory
Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/projects/project/node_modules/@types/a/tsconfig.json
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/a/node_modules 1 undefined Project: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Failed Lookup Locations
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/a/node_modules 1 undefined Project: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Failed Lookup Locations
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/a 0 undefined Project: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Failed Lookup Locations
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/a 0 undefined Project: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Failed Lookup Locations
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/a/node_modules/@types 1 undefined Project: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Type roots
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/a/node_modules/@types 1 undefined Project: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Type roots
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/projects/project/node_modules/@types/node_modules/@types 1 undefined Project: /home/src/projects/project/node_modules/@types/a/tsconfig.json WatchType: Type roots
@ -392,8 +388,6 @@ PolledWatches::
{"pollingInterval":500}
/home/src/projects/package.json:
{"pollingInterval":2000}
/home/src/projects/project/node_modules/@types/a/node_modules: *new*
{"pollingInterval":500}
/home/src/projects/project/node_modules/@types/a/node_modules/@types: *new*
{"pollingInterval":500}
/home/src/projects/project/node_modules/@types/a/package.json:
@ -412,8 +406,6 @@ PolledWatches::
{"pollingInterval":2000}
FsWatches::
/home/src/projects/project/node_modules/@types/a: *new*
{}
/home/src/projects/project/node_modules/@types/a/tsconfig.json: *new*
{}
/home/src/projects/project/tsconfig.json:

Просмотреть файл

@ -132,9 +132,7 @@ Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/p
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts', result '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/users/username/projects/replay/axios-src/test/module/ts-require'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/tslibs/TS/Lib/lib.d.ts 500 undefined WatchType: Closed Script info
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/package.json 2000 undefined Project: /dev/null/inferredProject1* WatchType: File location affecting resolution
@ -412,21 +410,10 @@ Info seq [hh:mm:ss:mss] File '/users/username/projects/package.json' does not e
Info seq [hh:mm:ss:mss] File '/users/username/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts'. ========
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/users/username/projects/replay/axios-src/node_modules/@types/responselike'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/test/module/ts-require/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/test/module/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/test/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/axios-src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/replay/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/projects/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/username/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/users/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts', root directory '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types,/users/username/projects/replay/axios-src/test/module/node_modules/@types,/users/username/projects/replay/axios-src/test/node_modules/@types,/users/username/projects/replay/axios-src/node_modules/@types,/users/username/projects/replay/node_modules/@types,/users/username/projects/node_modules/@types,/users/username/node_modules/@types,/users/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types, /users/username/projects/replay/axios-src/test/module/node_modules/@types, /users/username/projects/replay/axios-src/test/node_modules/@types, /users/username/projects/replay/axios-src/node_modules/@types, /users/username/projects/replay/node_modules/@types, /users/username/projects/node_modules/@types, /users/username/node_modules/@types, /users/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/users/username/projects/replay/axios-src/test/module/ts'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/package.json 2000 undefined Project: /dev/null/inferredProject2* WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/package.json 2000 undefined Project: /dev/null/inferredProject2* WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules/package.json 2000 undefined Project: /dev/null/inferredProject2* WatchType: File location affecting resolution
@ -435,11 +422,10 @@ Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /users/username/p
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /users/username/projects/replay/axios-src/test/module/ts/node_modules/@types 1 undefined Project: /dev/null/inferredProject2* WatchType: Type roots
Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /dev/null/inferredProject2* projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms
Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject2*' (Inferred)
Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] Files (4)
/home/src/tslibs/TS/Lib/lib.d.ts Text-1 "/// <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; };"
/users/username/projects/replay/axios-src/test/module/ts/index.js SVC-1-0 "export const y = 10;\n"
/users/username/projects/replay/axios-src/test/module/ts/node_modules/@types/node/index.d.ts Text-1 "export const x = 10;\n"
/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts Text-1 "export const x = 10;\n"
/users/username/projects/replay/axios-src/node_modules/@types/responselike/index.d.ts Text-1 "/// <reference types=\"node\" />\nexport const z = 10;\n"
@ -449,7 +435,6 @@ Info seq [hh:mm:ss:mss] Files (5)
Root file specified for compilation
node_modules/@types/node/index.d.ts
Entry point for implicit type library 'node'
../ts-require/node_modules/@types/node/index.d.ts
Type library referenced via 'node' from file '../../../node_modules/@types/responselike/index.d.ts'
../../../node_modules/@types/responselike/index.d.ts
Entry point for implicit type library 'responselike'
@ -460,7 +445,7 @@ Info seq [hh:mm:ss:mss] Files (4)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Project '/dev/null/inferredProject2*' (Inferred)
Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] Files (4)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Open files:
@ -595,11 +580,10 @@ ScriptInfos::
version: SVC-1-1
containingProjects: 1
/dev/null/inferredProject1* *default*
/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts *changed*
/users/username/projects/replay/axios-src/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2 *changed*
containingProjects: 1
/dev/null/inferredProject1*
/dev/null/inferredProject2* *new*
/users/username/projects/replay/axios-src/test/module/ts/index.js (Open) *new*
version: SVC-1-0
containingProjects: 1

Просмотреть файл

@ -813,7 +813,8 @@ Info seq [hh:mm:ss:mss] Reusing resolution of type reference directive 'pkg2' f
Info seq [hh:mm:ss:mss] Reusing resolution of type reference directive 'pkg3' from '/home/src/workspaces/project/fileWithTypeRefs.ts' of old program, it was not resolved.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/node_modules/pkg2/package.json' exists according to earlier cached lookups.
Info seq [hh:mm:ss:mss] Reusing resolution of module 'pkg0' from '/home/src/workspaces/project/randomFileForImport.ts' of old program, it was successfully resolved to '/home/src/workspaces/project/node_modules/pkg0/import.d.ts' with Package ID 'pkg0/import.d.ts@0.0.1'.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'pkg2', containing file '/home/src/workspaces/project/randomFileForTypeRef.ts'. ========
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'pkg2', containing file '/home/src/workspaces/project/randomFileForTypeRef.ts', root directory '/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'pkg2' was found in cache from location '/home/src/workspaces/project'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'pkg2' was successfully resolved to '/home/src/workspaces/project/node_modules/pkg2/import.d.ts' with Package ID 'pkg2/import.d.ts@0.0.1', primary: false. ========
Info seq [hh:mm:ss:mss] Reusing resolution of type reference directive 'pkg4' from '/home/src/workspaces/project/__inferred type names__.ts' of old program, it was successfully resolved to '/home/src/workspaces/project/node_modules/@types/pkg4/index.d.ts'.

Просмотреть файл

@ -317,9 +317,7 @@ Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/workspa
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution

Просмотреть файл

@ -378,10 +378,7 @@ Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/workspac
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'responselike', containing file '/home/src/workspaces/project/test/module/ts/__inferred type names__.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/node_modules/@types/responselike/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', result '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'responselike' was found in cache from location '/home/src/workspaces/project/test/module'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'responselike' was successfully resolved to '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules 1 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: Failed Lookup Locations
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules 1 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: Failed Lookup Locations
@ -393,8 +390,13 @@ Info seq [hh:mm:ss:mss] File '/home/src/workspaces/package.json' does not exist
Info seq [hh:mm:ss:mss] File '/home/src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'. ========
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/node_modules/@types/responselike'.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/package.json' does not exist according to earlier cached lookups.

Просмотреть файл

@ -139,11 +139,7 @@ Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/workspa
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts-require/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts-require'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/tslibs/TS/Lib/lib.d.ts 500 undefined WatchType: Closed Script info
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/node_modules/@types/node/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts-require/tsconfig.json WatchType: File location affecting resolution
@ -392,20 +388,14 @@ Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/workspac
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/test/module/ts/__inferred type names__.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules 1 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: Failed Lookup Locations
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules 1 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: Failed Lookup Locations
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'responselike', containing file '/home/src/workspaces/project/test/module/ts/__inferred type names__.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/ts/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] Directory '/home/src/workspaces/project/test/module/node_modules/@types' does not exist, skipping all lookups in it.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/node_modules/@types/responselike/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', result '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'responselike' was found in cache from location '/home/src/workspaces/project/test/module'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'responselike' was successfully resolved to '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/node_modules/@types/package.json' does not exist according to earlier cached lookups.
@ -424,8 +414,9 @@ Info seq [hh:mm:ss:mss] File '/home/src/workspaces/package.json' does not exist
Info seq [hh:mm:ss:mss] File '/home/src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'. ========
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/node_modules/@types/responselike'.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types 1 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: Type roots
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types 1 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: Type roots

Просмотреть файл

@ -402,13 +402,16 @@ Info seq [hh:mm:ss:mss] File '/home/src/workspaces/package.json' does not exist
Info seq [hh:mm:ss:mss] File '/home/src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'. ========
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/node_modules/@types/responselike'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/@types/package.json' does not exist.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/package.json' does not exist.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/package.json' does not exist.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/package.json' does not exist according to earlier cached lookups.
@ -416,13 +419,19 @@ Info seq [hh:mm:ss:mss] File '/home/src/workspaces/package.json' does not exist
Info seq [hh:mm:ss:mss] File '/home/src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/workspaces/project/test/module/ts/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/test/module/ts/tsconfig.json' (Configured)
Info seq [hh:mm:ss:mss] Files (5)
/home/src/tslibs/TS/Lib/lib.d.ts Text-1 "/// <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; };"
/home/src/workspaces/project/test/module/ts/index.ts SVC-1-0 "export const tsIndex= 10;"
/home/src/workspaces/project/test/module/ts/main.ts Text-1 "export const tsMain = 10;"
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts Text-1 "declare const tsRequireGlobal = 10;"
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts Text-1 "declare const tsRequireGlobal = 10;"
/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts Text-1 "/// <reference types=\"node\" />\nexport const z = 10;\n"
@ -432,7 +441,7 @@ Info seq [hh:mm:ss:mss] Files (5)
Matched by default include pattern '**/*'
main.ts
Matched by default include pattern '**/*'
../ts-require/node_modules/@types/node/index.d.ts
node_modules/@types/node/index.d.ts
Type library referenced via 'node' from file '../../../node_modules/@types/responselike/index.d.ts'
../../../node_modules/@types/responselike/index.d.ts
Entry point of type library 'responselike' specified in compilerOptions
@ -554,6 +563,14 @@ PolledWatches::
{"pollingInterval":2000}
/home/src/workspaces/project/test/module/ts-require/package.json:
{"pollingInterval":2000}
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json: *new*
{"pollingInterval":2000}
/home/src/workspaces/project/test/module/ts/node_modules/@types/package.json: *new*
{"pollingInterval":2000}
/home/src/workspaces/project/test/module/ts/node_modules/package.json: *new*
{"pollingInterval":2000}
/home/src/workspaces/project/test/module/ts/package.json: *new*
{"pollingInterval":2000}
/home/src/workspaces/project/test/node_modules:
{"pollingInterval":500}
/home/src/workspaces/project/test/package.json:
@ -612,11 +629,10 @@ ScriptInfos::
version: Text-1
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts *changed*
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2 *changed*
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json *new*
/home/src/workspaces/project/test/module/ts/index.ts (Open) *new*
version: SVC-1-0
containingProjects: 1
@ -625,6 +641,10 @@ ScriptInfos::
version: Text-1
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts *new*
version: Text-1
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
build ts project with edit
Info seq [hh:mm:ss:mss] FileWatcher:: Triggered with /home/src/workspaces/project/test/module/ts/main.ts 1:: WatchInfo: /home/src/workspaces/project/test/module/ts/main.ts 500 undefined WatchType: Closed Script info
@ -674,9 +694,8 @@ ScriptInfos::
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/index.ts (Open)
version: SVC-1-0
containingProjects: 1
@ -686,13 +705,17 @@ ScriptInfos::
pendingReloadFromDisk: true *changed*
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
Info seq [hh:mm:ss:mss] Running: /home/src/workspaces/project/test/module/ts/tsconfig.json
Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/workspaces/project/test/module/ts/tsconfig.json
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/@types/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/node_modules/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/package.json' does not exist according to earlier cached lookups.
@ -714,7 +737,7 @@ Info seq [hh:mm:ss:mss] Files (5)
/home/src/tslibs/TS/Lib/lib.d.ts Text-1 "/// <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; };"
/home/src/workspaces/project/test/module/ts/index.ts SVC-1-0 "export const tsIndex= 10;"
/home/src/workspaces/project/test/module/ts/main.ts Text-2 "export const tsMain = 10;export const z = 10;"
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts Text-1 "declare const tsRequireGlobal = 10;"
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts Text-1 "declare const tsRequireGlobal = 10;"
/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts Text-1 "/// <reference types=\"node\" />\nexport const z = 10;\n"
Info seq [hh:mm:ss:mss] -----------------------------------------------
@ -794,9 +817,8 @@ ScriptInfos::
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/index.ts (Open)
version: SVC-1-0
containingProjects: 1
@ -806,6 +828,10 @@ ScriptInfos::
pendingReloadFromDisk: false *changed*
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
Before running Timeout callback:: count: 0
@ -864,9 +890,8 @@ ScriptInfos::
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/index.ts (Open)
version: SVC-1-0
containingProjects: 1
@ -875,6 +900,10 @@ ScriptInfos::
version: Text-2
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
Info seq [hh:mm:ss:mss] Running: /home/src/workspaces/project/test/module/ts-require/tsconfig.json
Info seq [hh:mm:ss:mss] Starting updateGraphWorker: Project: /home/src/workspaces/project/test/module/ts-require/tsconfig.json
@ -984,9 +1013,8 @@ ScriptInfos::
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/index.ts (Open)
version: SVC-1-0
containingProjects: 1
@ -995,6 +1023,10 @@ ScriptInfos::
version: Text-2
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 1
/home/src/workspaces/project/test/module/ts/tsconfig.json
Before running Timeout callback:: count: 0

Просмотреть файл

@ -142,9 +142,7 @@ Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/workspa
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts-require/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts-require/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts' exists - use it as a name resolution result.
Info seq [hh:mm:ss:mss] Resolving real path for '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', result '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts-require'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/tslibs/TS/Lib/lib.d.ts 500 undefined WatchType: Closed Script info
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts-require/tsconfig.json WatchType: File location affecting resolution
@ -433,20 +431,10 @@ Info seq [hh:mm:ss:mss] File '/home/src/workspaces/package.json' does not exist
Info seq [hh:mm:ss:mss] File '/home/src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts'. ========
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/node_modules/@types/responselike'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] ======== Resolving type reference directive 'node', containing file '/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts', root directory '/home/src/workspaces/project/test/module/ts/node_modules/@types,/home/src/workspaces/project/test/module/node_modules/@types,/home/src/workspaces/project/test/node_modules/@types,/home/src/workspaces/project/node_modules/@types,/home/src/workspaces/node_modules/@types,/home/src/node_modules/@types,/home/node_modules/@types,/node_modules/@types'. ========
Info seq [hh:mm:ss:mss] Resolving with primary search path '/home/src/workspaces/project/test/module/ts/node_modules/@types, /home/src/workspaces/project/test/module/node_modules/@types, /home/src/workspaces/project/test/node_modules/@types, /home/src/workspaces/project/node_modules/@types, /home/src/workspaces/node_modules/@types, /home/src/node_modules/@types, /home/node_modules/@types, /node_modules/@types'.
Info seq [hh:mm:ss:mss] Resolution for type reference directive 'node' was found in cache from location '/home/src/workspaces/project/test/module/ts'.
Info seq [hh:mm:ss:mss] ======== Type reference directive 'node' was successfully resolved to '/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts', primary: true. ========
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types/node/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution
Info seq [hh:mm:ss:mss] FileWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/package.json 2000 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: File location affecting resolution
@ -455,12 +443,11 @@ Info seq [hh:mm:ss:mss] DirectoryWatcher:: Added:: WatchInfo: /home/src/workspa
Info seq [hh:mm:ss:mss] Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /home/src/workspaces/project/test/module/ts/node_modules/@types 1 undefined Project: /home/src/workspaces/project/test/module/ts/tsconfig.json WatchType: Type roots
Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/workspaces/project/test/module/ts/tsconfig.json projectStateVersion: 1 projectProgramVersion: 0 structureChanged: true structureIsReused:: Not Elapsed:: *ms
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/test/module/ts/tsconfig.json' (Configured)
Info seq [hh:mm:ss:mss] Files (6)
Info seq [hh:mm:ss:mss] Files (5)
/home/src/tslibs/TS/Lib/lib.d.ts Text-1 "/// <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; };"
/home/src/workspaces/project/test/module/ts/index.ts SVC-1-0 "export const tsIndex= 10;"
/home/src/workspaces/project/test/module/ts/main.ts Text-1 "export const tsMain = 10;"
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts Text-1 "declare const tsRequireGlobal = 10;"
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts Text-1 "declare const tsRequireGlobal = 10;"
/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts Text-1 "/// <reference types=\"node\" />\nexport const z = 10;\n"
@ -472,7 +459,6 @@ Info seq [hh:mm:ss:mss] Files (6)
Matched by default include pattern '**/*'
node_modules/@types/node/index.d.ts
Entry point for implicit type library 'node'
../ts-require/node_modules/@types/node/index.d.ts
Type library referenced via 'node' from file '../../../node_modules/@types/responselike/index.d.ts'
../../../node_modules/@types/responselike/index.d.ts
Entry point for implicit type library 'responselike'
@ -505,8 +491,8 @@ Info seq [hh:mm:ss:mss] event:
"tsSize": 50,
"tsx": 0,
"tsxSize": 0,
"dts": 4,
"dtsSize": 535,
"dts": 3,
"dtsSize": 500,
"deferred": 0,
"deferredSize": 0
},
@ -547,7 +533,7 @@ Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/test/module/ts/tsconfig.json' (Configured)
Info seq [hh:mm:ss:mss] Files (6)
Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Open files:
@ -669,11 +655,10 @@ ScriptInfos::
version: Text-1
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts *changed*
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2 *changed*
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json *new*
/home/src/workspaces/project/test/module/ts/index.ts (Open) *new*
version: SVC-1-0
containingProjects: 1
@ -735,9 +720,8 @@ ScriptInfos::
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/index.ts (Open)
version: SVC-1-0
containingProjects: 1
@ -765,17 +749,6 @@ Info seq [hh:mm:ss:mss] File '/home/src/workspaces/package.json' does not exist
Info seq [hh:mm:ss:mss] File '/home/src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/@types/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/node_modules/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/ts-require/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/module/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/test/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/node_modules/@types/responselike/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/node_modules/@types/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] File '/home/src/workspaces/project/node_modules/package.json' does not exist according to earlier cached lookups.
@ -786,12 +759,11 @@ Info seq [hh:mm:ss:mss] File '/home/package.json' does not exist according to e
Info seq [hh:mm:ss:mss] File '/package.json' does not exist according to earlier cached lookups.
Info seq [hh:mm:ss:mss] Finishing updateGraphWorker: Project: /home/src/workspaces/project/test/module/ts/tsconfig.json projectStateVersion: 2 projectProgramVersion: 1 structureChanged: false structureIsReused:: Completely Elapsed:: *ms
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/test/module/ts/tsconfig.json' (Configured)
Info seq [hh:mm:ss:mss] Files (6)
Info seq [hh:mm:ss:mss] Files (5)
/home/src/tslibs/TS/Lib/lib.d.ts Text-1 "/// <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; };"
/home/src/workspaces/project/test/module/ts/index.ts SVC-1-0 "export const tsIndex= 10;"
/home/src/workspaces/project/test/module/ts/main.ts Text-2 "export const tsMain = 10;export const z = 10;"
/home/src/workspaces/project/test/module/ts/node_modules/@types/node/index.d.ts Text-1 "declare const tsRequireGlobal = 10;"
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts Text-1 "declare const tsRequireGlobal = 10;"
/home/src/workspaces/project/node_modules/@types/responselike/index.d.ts Text-1 "/// <reference types=\"node\" />\nexport const z = 10;\n"
Info seq [hh:mm:ss:mss] -----------------------------------------------
@ -802,7 +774,7 @@ Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/test/module/ts/tsconfig.json' (Configured)
Info seq [hh:mm:ss:mss] Files (6)
Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Open files:
@ -816,7 +788,7 @@ Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/test/module/ts/tsconfig.json' (Configured)
Info seq [hh:mm:ss:mss] Files (6)
Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Open files:
@ -871,9 +843,8 @@ ScriptInfos::
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/index.ts (Open)
version: SVC-1-0
containingProjects: 1
@ -945,9 +916,8 @@ ScriptInfos::
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/index.ts (Open)
version: SVC-1-0
containingProjects: 1
@ -999,7 +969,7 @@ Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/test/module/ts/tsconfig.json' (Configured)
Info seq [hh:mm:ss:mss] Files (6)
Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Open files:
@ -1013,7 +983,7 @@ Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Project '/home/src/workspaces/project/test/module/ts/tsconfig.json' (Configured)
Info seq [hh:mm:ss:mss] Files (6)
Info seq [hh:mm:ss:mss] Files (5)
Info seq [hh:mm:ss:mss] -----------------------------------------------
Info seq [hh:mm:ss:mss] Open files:
@ -1069,9 +1039,8 @@ ScriptInfos::
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts-require/node_modules/@types/node/index.d.ts
version: Text-1
containingProjects: 2
containingProjects: 1
/home/src/workspaces/project/test/module/ts-require/tsconfig.json
/home/src/workspaces/project/test/module/ts/tsconfig.json
/home/src/workspaces/project/test/module/ts/index.ts (Open)
version: SVC-1-0
containingProjects: 1