fuse-box
Version:
Fuse-Box a bundler that does it right
34 lines (33 loc) • 1.38 kB
TypeScript
import { Context } from '../../core/context';
import { IModule } from '../../moduleResolver/module';
import { IProductionContext } from '../../production/ProductionContext';
import { ISchema } from '../core/nodeSchema';
import { ISerializableTransformationContext } from '../transformer';
import { ASTNode } from './AST';
import { ImportType } from './ImportType';
export declare type ITransformerList = Array<ITransformerVisitors | undefined>;
export declare type ITranformerCallbackController = (schema: ISchema) => any;
export interface ITransformerVisitors {
onEach?: ITranformerCallbackController;
onProgramBody?: ITranformerCallbackController;
}
export interface IRequireStatementModuleOptions {
breakDependantsCache?: boolean;
}
export interface ITransformerCommon {
transformationContext: ISerializableTransformationContext;
onRequireCallExpression?: (importType: ImportType, node: ASTNode, moduleOptions?: IRequireStatementModuleOptions) => void;
}
export interface ITransformerProduction {
ctx: Context;
module: IModule;
productionContext: IProductionContext;
}
export interface ITransformer {
target?: {
test?: RegExp;
type?: 'js' | 'js_ts' | 'ts';
};
commonVisitors?: (props?: ITransformerCommon) => ITransformerVisitors;
productionWarmupPhase?: (props?: ITransformerProduction) => ITransformerVisitors;
}