@nx/js
Version:
30 lines (29 loc) • 1.53 kB
TypeScript
import type { CustomTransformerFactory, Node, Program, TransformerFactory as TypescriptTransformerFactory } from 'typescript';
type TransformerFactory = TypescriptTransformerFactory<Node> | CustomTransformerFactory;
export interface TransformerPlugin {
name: string;
options: Record<string, unknown>;
}
export type TransformerEntry = string | TransformerPlugin;
export interface CompilerPlugin {
before?: (options?: Record<string, unknown>, program?: Program) => TransformerFactory;
after?: (options?: Record<string, unknown>, program?: Program) => TransformerFactory;
afterDeclarations?: (options?: Record<string, unknown>, program?: Program) => TransformerFactory;
}
/**
* Extended plugin interface to support different transformer API formats
* including function-based transformers and direct function exports
*/
export type AnyCompilerPlugin = CompilerPlugin | ((options?: Record<string, unknown>, program?: Program) => TransformerFactory) | {
before: (options?: Record<string, unknown>, program?: Program) => TransformerFactory;
} | {
after: (options?: Record<string, unknown>, program?: Program) => TransformerFactory;
} | {
afterDeclarations: (options?: Record<string, unknown>, program?: Program) => TransformerFactory;
};
export interface CompilerPluginHooks {
beforeHooks: Array<(program?: Program) => TransformerFactory>;
afterHooks: Array<(program?: Program) => TransformerFactory>;
afterDeclarationsHooks: Array<(program?: Program) => TransformerFactory>;
}
export {};