ember-auto-import
Version:
Zero-config import from NPM packages
41 lines (40 loc) • 1.72 kB
TypeScript
import Analyzer from './analyzer';
import type { TreeType } from './analyzer';
import { V2AddonResolver } from './package';
import type { Node } from 'broccoli-node-api';
import { type AddonInstance, type AddonMeta, type AppInstance } from '@embroider/shared-internals';
export interface AutoImportSharedAPI {
isPrimary(addonInstance: AddonInstance): boolean;
analyze(tree: Node, addon: AddonInstance, treeType?: TreeType, supportsFastAnalyzer?: true): Node;
included(addonInstance: AddonInstance): void;
addTo(tree: Node): Node;
registerV2Addon(packageName: string, packageRoot: string, compatOptions?: CompatOptions): void;
}
export interface CompatOptions {
customizeMeta?: (meta: AddonMeta) => AddonMeta;
}
export default class AutoImport implements AutoImportSharedAPI {
private packages;
private packageCache;
private env;
private consoleWrite;
private analyzers;
private bundles;
private v2Addons;
static register(addon: AddonInstance): void;
static lookup(addon: AddonInstance): AutoImportSharedAPI;
constructor(addonInstance: AddonInstance);
installAppFilter(_host: AppInstance): void;
isPrimary(_addon: AddonInstance): boolean;
analyze(tree: Node, addon: AddonInstance, treeType?: TreeType, supportsFastAnalyzer?: true): Analyzer;
registerV2Addon(packageName: string, packageRoot: string, options?: CompatOptions): void;
get v2AddonResolver(): V2AddonResolver;
private _renamedModules;
private renamedModules;
private makeBundler;
private get rootPackage();
addTo(allAppTree: Node): Node;
included(addonInstance: AddonInstance): void;
private installBabelPlugin;
private configureFingerprints;
}