/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /// /** * This is a private API for @ngtools/webpack. This API should be stable for NG 5. * * It contains copies of the interfaces needed and wrapper functions to ensure that * they are not broken accidentally. * * Once the ngc api is public and stable, this can be removed. */ /** ********************************************************************* * Changes to this file need to be approved by the Angular CLI team. * ********************************************************************* */ import { ParseSourceSpan } from '@angular/compiler'; import * as ts from 'typescript'; export interface Diagnostic { messageText: string; span?: ParseSourceSpan; category: ts.DiagnosticCategory; code: number; source: 'angular'; } export interface CompilerOptions extends ts.CompilerOptions { basePath?: string; skipMetadataEmit?: boolean; strictMetadataEmit?: boolean; skipTemplateCodegen?: boolean; flatModuleOutFile?: string; flatModuleId?: string; generateCodeForLibraries?: boolean; annotateForClosureCompiler?: boolean; annotationsAs?: 'decorators' | 'static fields'; trace?: boolean; disableExpressionLowering?: boolean; i18nOutLocale?: string; i18nOutFormat?: string; i18nOutFile?: string; i18nInFormat?: string; i18nInLocale?: string; i18nInFile?: string; i18nInMissingTranslations?: 'error' | 'warning' | 'ignore'; preserveWhitespaces?: boolean; disableTypeScriptVersionCheck?: boolean; } export interface CompilerHost extends ts.CompilerHost { moduleNameToFileName?(moduleName: string, containingFile?: string): string | null; fileNameToModuleName?(importedFilePath: string, containingFilePath: string): string; resourceNameToFileName?(resourceName: string, containingFilePath: string): string | null; toSummaryFileName?(fileName: string, referringSrcFileName: string): string; fromSummaryFileName?(fileName: string, referringLibFileName: string): string; readResource?(fileName: string): Promise | string; } export declare enum EmitFlags { DTS = 1, JS = 2, Metadata = 4, I18nBundle = 8, Codegen = 16, Default = 19, All = 31 } export interface CustomTransformers { beforeTs?: ts.TransformerFactory[]; afterTs?: ts.TransformerFactory[]; } export interface TsEmitArguments { program: ts.Program; host: CompilerHost; options: CompilerOptions; targetSourceFile?: ts.SourceFile; writeFile?: ts.WriteFileCallback; cancellationToken?: ts.CancellationToken; emitOnlyDtsFiles?: boolean; customTransformers?: ts.CustomTransformers; } export interface TsEmitCallback { (args: TsEmitArguments): ts.EmitResult; } export interface LazyRoute { module: { name: string; filePath: string; }; route: string; referencedModule: { name: string; filePath: string; }; } export interface Program { getTsProgram(): ts.Program; getTsOptionDiagnostics(cancellationToken?: ts.CancellationToken): ReadonlyArray; getNgOptionDiagnostics(cancellationToken?: ts.CancellationToken): ReadonlyArray; getTsSyntacticDiagnostics(sourceFile?: ts.SourceFile, cancellationToken?: ts.CancellationToken): ReadonlyArray; getNgStructuralDiagnostics(cancellationToken?: ts.CancellationToken): ReadonlyArray; getTsSemanticDiagnostics(sourceFile?: ts.SourceFile, cancellationToken?: ts.CancellationToken): ReadonlyArray; getNgSemanticDiagnostics(fileName?: string, cancellationToken?: ts.CancellationToken): ReadonlyArray; loadNgStructureAsync(): Promise; listLazyRoutes(entryRoute?: string): LazyRoute[]; emit({ emitFlags, cancellationToken, customTransformers, emitCallback }: { emitFlags?: EmitFlags; cancellationToken?: ts.CancellationToken; customTransformers?: CustomTransformers; emitCallback?: TsEmitCallback; }): ts.EmitResult; } export declare function createProgram({ rootNames, options, host, oldProgram }: { rootNames: string[]; options: CompilerOptions; host: CompilerHost; oldProgram?: Program; }): Program; export declare function createCompilerHost({ options, tsHost }: { options: CompilerOptions; tsHost?: ts.CompilerHost; }): CompilerHost; export declare type Diagnostics = ReadonlyArray; export declare function formatDiagnostics(diags: Diagnostics): string;