source: trip-planner-front/node_modules/@angular/compiler-cli/ngcc/src/packages/source_file_cache.d.ts@ 6a3a178

Last change on this file since 6a3a178 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 5.1 KB
Line 
1/// <amd-module name="@angular/compiler-cli/ngcc/src/packages/source_file_cache" />
2/**
3 * @license
4 * Copyright Google LLC All Rights Reserved.
5 *
6 * Use of this source code is governed by an MIT-style license that can be
7 * found in the LICENSE file at https://angular.io/license
8 */
9import * as ts from 'typescript';
10import { AbsoluteFsPath, ReadonlyFileSystem } from '../../../src/ngtsc/file_system';
11/**
12 * A cache that holds on to source files that can be shared for processing all entry-points in a
13 * single invocation of ngcc. In particular, the following files are shared across all entry-points
14 * through this cache:
15 *
16 * 1. Default library files such as `lib.dom.d.ts` and `lib.es5.d.ts`. These files don't change
17 * and some are very large, so parsing is expensive. Therefore, the parsed `ts.SourceFile`s for
18 * the default library files are cached.
19 * 2. The typings of @angular scoped packages. The typing files for @angular packages are typically
20 * used in the entry-points that ngcc processes, so benefit from a single source file cache.
21 * Especially `@angular/core/core.d.ts` is large and expensive to parse repeatedly. In contrast
22 * to default library files, we have to account for these files to be invalidated during a single
23 * invocation of ngcc, as ngcc will overwrite the .d.ts files during its processing.
24 *
25 * The lifecycle of this cache corresponds with a single invocation of ngcc. Separate invocations,
26 * e.g. the CLI's synchronous module resolution fallback will therefore all have their own cache.
27 * This allows for the source file cache to be garbage collected once ngcc processing has completed.
28 */
29export declare class SharedFileCache {
30 private fs;
31 private sfCache;
32 constructor(fs: ReadonlyFileSystem);
33 /**
34 * Loads a `ts.SourceFile` if the provided `fileName` is deemed appropriate to be cached. To
35 * optimize for memory usage, only files that are generally used in all entry-points are cached.
36 * If `fileName` is not considered to benefit from caching or the requested file does not exist,
37 * then `undefined` is returned.
38 */
39 getCachedSourceFile(fileName: string): ts.SourceFile | undefined;
40 /**
41 * Attempts to load the source file from the cache, or parses the file into a `ts.SourceFile` if
42 * it's not yet cached. This method assumes that the file will not be modified for the duration
43 * that this cache is valid for. If that assumption does not hold, the `getVolatileCachedFile`
44 * method is to be used instead.
45 */
46 private getStableCachedFile;
47 /**
48 * In contrast to `getStableCachedFile`, this method always verifies that the cached source file
49 * is the same as what's stored on disk. This is done for files that are expected to change during
50 * ngcc's processing, such as @angular scoped packages for which the .d.ts files are overwritten
51 * by ngcc. If the contents on disk have changed compared to a previously cached source file, the
52 * content from disk is re-parsed and the cache entry is replaced.
53 */
54 private getVolatileCachedFile;
55}
56/**
57 * Determines whether the provided path corresponds with a default library file inside of the
58 * typescript package.
59 *
60 * @param absPath The path for which to determine if it corresponds with a default library file.
61 * @param fs The filesystem to use for inspecting the path.
62 */
63export declare function isDefaultLibrary(absPath: AbsoluteFsPath, fs: ReadonlyFileSystem): boolean;
64/**
65 * Determines whether the provided path corresponds with a .d.ts file inside of an @angular
66 * scoped package. This logic only accounts for the .d.ts files in the root, which is sufficient
67 * to find the large, flattened entry-point files that benefit from caching.
68 *
69 * @param absPath The path for which to determine if it corresponds with an @angular .d.ts file.
70 * @param fs The filesystem to use for inspecting the path.
71 */
72export declare function isAngularDts(absPath: AbsoluteFsPath, fs: ReadonlyFileSystem): boolean;
73/**
74 * A cache for processing a single entry-point. This exists to share `ts.SourceFile`s between the
75 * source and typing programs that are created for a single program.
76 */
77export declare class EntryPointFileCache {
78 private fs;
79 private sharedFileCache;
80 private readonly sfCache;
81 constructor(fs: ReadonlyFileSystem, sharedFileCache: SharedFileCache);
82 /**
83 * Returns and caches a parsed `ts.SourceFile` for the provided `fileName`. If the `fileName` is
84 * cached in the shared file cache, that result is used. Otherwise, the source file is cached
85 * internally. This method returns `undefined` if the requested file does not exist.
86 *
87 * @param fileName The path of the file to retrieve a source file for.
88 * @param languageVersion The language version to use for parsing the file.
89 */
90 getCachedSourceFile(fileName: string, languageVersion: ts.ScriptTarget): ts.SourceFile | undefined;
91}
92/**
93 * Creates a `ts.ModuleResolutionCache` that uses the provided filesystem for path operations.
94 *
95 * @param fs The filesystem to use for path operations.
96 */
97export declare function createModuleResolutionCache(fs: ReadonlyFileSystem): ts.ModuleResolutionCache;
Note: See TracBrowser for help on using the repository browser.