UNPKG

9.98 kBTypeScriptView Raw
1import * as typescript from 'typescript';
2import { Chalk } from 'chalk';
3import * as logger from './logger';
4export interface ErrorInfo {
5 code: number;
6 severity: Severity;
7 content: string;
8 file: string;
9 line: number;
10 character: number;
11 context: string;
12}
13export declare type FileLocation = {
14 line: number;
15 character: number;
16};
17export interface WebpackError {
18 module?: any;
19 file?: string;
20 message: string;
21 location?: FileLocation;
22 loaderSource: string;
23}
24export interface WebpackModule {
25 resource: string;
26 errors: WebpackError[];
27 addWarning(warning: Error): void;
28 addError(error: WebpackError | Error): void;
29 getWarnings(): Iterable<Error> | undefined;
30 getErrors(): Iterable<WebpackError | Error> | undefined;
31 clearWarningsAndErrors(): void;
32 buildMeta: {
33 tsLoaderFileVersion: number;
34 tsLoaderDefinitionFileVersions: string[];
35 };
36}
37export declare type ResolveSync = (context: string | undefined, path: string, moduleName: string) => string;
38export interface HostMayBeCacheable {
39 clearCache?(): void;
40 fileExistsCache?: Map<string, boolean>;
41 directoryExistsCache?: Map<string, boolean>;
42 realpathCache?: Map<string, string>;
43}
44export interface CacheableHost extends HostMayBeCacheable {
45 fileExists: typescript.ModuleResolutionHost['fileExists'];
46 directoryExists: NonNullable<typescript.ModuleResolutionHost['directoryExists']>;
47 realpath?: typescript.ModuleResolutionHost['realpath'];
48}
49export interface ModuleResolutionHostMayBeCacheable extends typescript.ModuleResolutionHost, HostMayBeCacheable {
50 readFile(filePath: string, encoding?: string): string | undefined;
51 trace: NonNullable<typescript.ModuleResolutionHost['trace']>;
52 directoryExists: NonNullable<typescript.ModuleResolutionHost['directoryExists']>;
53 getCurrentDirectory: NonNullable<typescript.ModuleResolutionHost['getCurrentDirectory']>;
54 getDirectories: NonNullable<typescript.ModuleResolutionHost['getDirectories']>;
55 useCaseSensitiveFileNames: NonNullable<typescript.LanguageServiceHost['useCaseSensitiveFileNames']>;
56 getNewLine: NonNullable<typescript.LanguageServiceHost['getNewLine']>;
57 getDefaultLibFileName: NonNullable<typescript.LanguageServiceHost['getDefaultLibFileName']>;
58 readDirectory: NonNullable<typescript.LanguageServiceHost['readDirectory']>;
59}
60export interface ServiceHostWhichMayBeCacheable extends typescript.LanguageServiceHost, HostMayBeCacheable {
61}
62export interface WatchHost extends typescript.WatchCompilerHostOfFilesAndCompilerOptions<typescript.EmitAndSemanticDiagnosticsBuilderProgram> {
63 invokeFileWatcher: WatchFactory['invokeFileWatcher'];
64 updateRootFileNames(): void;
65 outputFiles: Map<FilePathKey, typescript.OutputFile[]>;
66 tsbuildinfo?: typescript.OutputFile;
67}
68export declare type WatchCallbacks<T> = Map<FilePathKey, {
69 fileName: string;
70 callbacks: T[];
71}>;
72export interface WatchFactory {
73 watchedFiles: WatchCallbacks<typescript.FileWatcherCallback>;
74 watchedDirectories: WatchCallbacks<typescript.DirectoryWatcherCallback>;
75 watchedDirectoriesRecursive: WatchCallbacks<typescript.DirectoryWatcherCallback>;
76 invokeFileWatcher(fileName: string, eventKind: typescript.FileWatcherEventKind): boolean;
77 /** Used to watch changes in source files, missing files needed to update the program or config file */
78 watchFile: typescript.WatchHost['watchFile'];
79 /** Used to watch resolved module's failed lookup locations, config file specs, type roots where auto type reference directives are added */
80 watchDirectory: typescript.WatchHost['watchDirectory'];
81}
82export interface SolutionDiagnostics {
83 global: typescript.Diagnostic[];
84 perFile: Map<FilePathKey, typescript.Diagnostic[]>;
85 transpileErrors: [FilePathKey | undefined, typescript.Diagnostic[]][];
86}
87export declare type FilePathKey = string & {
88 __filePathKeyBrand: any;
89};
90export interface SolutionBuilderWithWatchHost extends typescript.SolutionBuilderWithWatchHost<typescript.EmitAndSemanticDiagnosticsBuilderProgram>, WatchFactory {
91 diagnostics: SolutionDiagnostics;
92 writtenFiles: typescript.OutputFile[];
93 configFileInfo: Map<FilePathKey, ConfigFileInfo>;
94 outputAffectingInstanceVersion: Map<FilePathKey, true>;
95 getInputFileStamp(fileName: string): Date;
96 updateSolutionBuilderInputFile(fileName: string): void;
97 getOutputFileKeyFromReferencedProject(outputFileName: string): FilePathKey | undefined;
98 getOutputFileAndKeyFromReferencedProject(oututFileName: string): {
99 key: FilePathKey;
100 outputFile: string | false;
101 } | undefined;
102 getOutputFileTextAndKeyFromReferencedProject(oututFileName: string): {
103 key: FilePathKey;
104 text: string | undefined;
105 } | undefined;
106 getInputFileNameFromOutput(outputFileName: string): string | undefined;
107 getOutputFilesFromReferencedProjectInput(inputFileName: string): typescript.OutputFile[];
108 buildReferences(): void;
109 ensureAllReferenceTimestamps(): void;
110 clearCache(): void;
111 close(): void;
112}
113export interface ConfigFileInfo {
114 config: typescript.ParsedCommandLine | undefined;
115 outputFileNames?: Map<FilePathKey, {
116 inputFileName: string;
117 outputNames: string[];
118 }>;
119 tsbuildInfoFile?: string;
120 dtsFiles?: string[];
121}
122export interface TSInstance {
123 compiler: typeof typescript;
124 compilerOptions: typescript.CompilerOptions;
125 /** Used for Vue for the most part */
126 appendTsTsxSuffixesIfRequired: (filePath: string) => string;
127 loaderOptions: LoaderOptions;
128 rootFileNames: Set<string>;
129 /**
130 * a cache of all the files
131 */
132 files: TSFiles;
133 /**
134 * contains the modified files - cleared each time after-compile is called
135 */
136 modifiedFiles?: Map<FilePathKey, true>;
137 /**
138 * Paths to project references that are missing source maps.
139 * Cleared each time after-compile is called. Used to dedupe
140 * warnings about source maps during a single compilation.
141 */
142 projectsMissingSourceMaps?: Set<string>;
143 servicesHost?: ServiceHostWhichMayBeCacheable;
144 languageService?: typescript.LanguageService | null;
145 version: number;
146 dependencyGraph: DependencyGraph;
147 filesWithErrors?: TSFiles;
148 transformers: typescript.CustomTransformers;
149 colors: Chalk;
150 otherFiles: TSFiles;
151 watchHost?: WatchHost;
152 watchOfFilesAndCompilerOptions?: typescript.WatchOfFilesAndCompilerOptions<typescript.EmitAndSemanticDiagnosticsBuilderProgram>;
153 builderProgram?: typescript.EmitAndSemanticDiagnosticsBuilderProgram;
154 program?: typescript.Program;
155 hasUnaccountedModifiedFiles?: boolean;
156 changedFilesList?: boolean;
157 reportTranspileErrors?: boolean;
158 solutionBuilderHost?: SolutionBuilderWithWatchHost;
159 configFilePath: string | undefined;
160 filePathKeyMapper: (fileName: string) => FilePathKey;
161 initialSetupPending: boolean;
162 configParseResult: typescript.ParsedCommandLine;
163 log: logger.Logger;
164}
165export interface LoaderOptionsCache {
166 [name: string]: WeakMap<LoaderOptions, LoaderOptions>;
167}
168export declare type DependencyGraph = Map<FilePathKey, ResolvedModule[]>;
169export declare type ReverseDependencyGraph = Map<FilePathKey, Map<FilePathKey, true>>;
170export declare type LogLevel = 'INFO' | 'WARN' | 'ERROR';
171export declare type ResolveModuleName = (moduleName: string, containingFile: string, compilerOptions: typescript.CompilerOptions, moduleResolutionHost: typescript.ModuleResolutionHost) => typescript.ResolvedModuleWithFailedLookupLocations;
172export declare type CustomResolveModuleName = (moduleName: string, containingFile: string, compilerOptions: typescript.CompilerOptions, moduleResolutionHost: typescript.ModuleResolutionHost, parentResolver: ResolveModuleName) => typescript.ResolvedModuleWithFailedLookupLocations;
173export declare type CustomResolveTypeReferenceDirective = (typeDirectiveName: string, containingFile: string, compilerOptions: typescript.CompilerOptions, moduleResolutionHost: typescript.ModuleResolutionHost, parentResolver: typeof typescript.resolveTypeReferenceDirective) => typescript.ResolvedTypeReferenceDirectiveWithFailedLookupLocations;
174export interface LoaderOptions {
175 silent: boolean;
176 logLevel: LogLevel;
177 logInfoToStdOut: boolean;
178 instance: string;
179 compiler: string;
180 configFile: string;
181 context: string;
182 transpileOnly: boolean;
183 ignoreDiagnostics: number[];
184 reportFiles: string[];
185 errorFormatter: (message: ErrorInfo, colors: Chalk) => string;
186 onlyCompileBundledFiles: boolean;
187 colors: boolean;
188 compilerOptions: typescript.CompilerOptions;
189 appendTsSuffixTo: (RegExp | string)[];
190 appendTsxSuffixTo: (RegExp | string)[];
191 happyPackMode: boolean;
192 getCustomTransformers: string | ((program: typescript.Program) => typescript.CustomTransformers | undefined);
193 experimentalWatchApi: boolean;
194 allowTsInNodeModules: boolean;
195 experimentalFileCaching: boolean;
196 projectReferences: boolean;
197 resolveModuleName: CustomResolveModuleName;
198 resolveTypeReferenceDirective: CustomResolveTypeReferenceDirective;
199 useCaseSensitiveFileNames?: boolean;
200}
201export interface TSFile {
202 fileName: string;
203 text?: string;
204 version: number;
205 modifiedTime?: Date;
206 projectReference?: {
207 /**
208 * Undefined here means weve already checked and confirmed there is no
209 * project reference for the file. Dont bother checking again.
210 */
211 project?: typescript.ResolvedProjectReference;
212 outputFileName?: string;
213 };
214}
215/** where key is filepath */
216export declare type TSFiles = Map<FilePathKey, TSFile>;
217export interface ResolvedModule {
218 originalFileName: string;
219 resolvedFileName: string;
220 resolvedModule?: ResolvedModule;
221 isExternalLibraryImport?: boolean;
222}
223export declare type Severity = 'error' | 'warning';
224//# sourceMappingURL=interfaces.d.ts.map
\No newline at end of file