@neo-one/typescript-concatenator-esnext-esm
Version:
NEO•ONE TypeScript Concatenator
47 lines (46 loc) • 1.79 kB
TypeScript
import ts from 'typescript';
export interface ConcatenatorContext {
readonly typeChecker: ts.TypeChecker;
readonly program: ts.Program;
readonly languageService: ts.LanguageService;
readonly isExternalFile: (node: ts.SourceFile, importPath: string, decl: ts.ImportDeclaration | ts.ExportDeclaration) => boolean;
readonly getSymbol?: (node: ts.Node) => ts.Symbol | undefined;
}
export interface ConcatenatorOptions {
readonly context: ConcatenatorContext;
readonly sourceFile: ts.SourceFile;
}
export declare class Concatenator {
readonly sourceFiles: readonly ts.SourceFile[];
private readonly sourceFile;
private readonly sourceFileExportSymbols;
private readonly context;
private readonly duplicateIdentifiers;
private readonly sourceFileImported;
private readonly sourceFileToImports;
constructor(options: ConcatenatorOptions);
readonly substituteNode: (_hint: ts.EmitHint, node: ts.Node) => ts.Node;
private getCombinedImport;
private getAllSourceFiles;
private getAllSourceFilesWorker;
private getAllDuplicateIdentifiers;
private getAllIdentifiersForFile;
private consolidateAllImports;
private consolidateAllImportsForFile;
private consolidateImports;
private filterModifiers;
private getIdentifierForIdentifier;
private getIdentifierForNode;
private getIdentifierForSymbol;
private getIdentifierStringForSymbol;
private isEntryNode;
private isExportedEntryNode;
private isExportedNode;
private isExportedSymbol;
private isDuplicateIdentifier;
private isContainerSourceFileForDeclaration;
private isContainerSourceFileForDeclarationSymbol;
private isContainerSourceFile;
private isExternalFileImportExport;
private getSymbol;
}