ember-auto-import
Version:
Zero-config import from NPM packages
31 lines (30 loc) • 1.26 kB
TypeScript
import type { Node } from 'broccoli-node-api';
import { Funnel } from 'broccoli-funnel';
import type Package from './package';
import { ImportSyntax, LiteralImportSyntax, TemplateImportSyntax } from './analyzer-syntax';
export type TreeType = 'app' | 'addon' | 'addon-templates' | 'addon-test-support' | 'styles' | 'templates' | 'test';
interface PackageContext {
path: string;
package: Package;
treeType: TreeType | undefined;
}
export type LiteralImport = LiteralImportSyntax & PackageContext;
export type TemplateImport = TemplateImportSyntax & PackageContext;
export type Import = LiteralImport | TemplateImport;
export default class Analyzer extends Funnel {
private pack;
private treeType;
private supportsFastAnalyzer;
private previousTree;
private modules;
private paths;
constructor(inputTree: Node, pack: Package, treeType: TreeType | undefined, supportsFastAnalyzer: true | undefined);
get imports(): Import[];
build(...args: unknown[]): Promise<void>;
private getPatchset;
private matchesExtension;
removeImports(relativePath: string): void;
updateImports(relativePath: string): Promise<void>;
parser(): Promise<(source: string, relativePath: string) => ImportSyntax[]>;
}
export {};