@wrench/roll-typescript
Version:
plugin for bundling TypeScript with support of modular output and declaration bundle
51 lines (41 loc) • 1.48 kB
TypeScript
import { Plugin } from "rollup";
import { Bundle, CompilerOptions, Program, SourceFile, TransformationContext, Transformer } from "typescript";
/** Defines a function creating source code for particular program. */
export interface TransformersFactory {
(program: Program): Transformers | Transformers[];
}
/** Transformation hooks. */
export interface Transformers {
before?(context: TransformationContext): Transformer<SourceFile>;
after?(context: TransformationContext): Transformer<SourceFile>;
afterDeclarations?(context: TransformationContext): Transformer<Bundle | SourceFile>;
}
export interface TypeScriptOptions {
/**
* Path to the project configuration.
* @default `ts.findConfigFile`
*/
tsconfig?: string;
/**
* TypeScript module instance to use.
* @default `require("typescript")`
*/
typescript?: typeof import("typescript");
/**
* Compiler options to extend by {@link tsconfig}.
* @default null
*/
baseCompilerOptions?: CompilerOptions;
/**
* Compiler options to override.
* @default null.
*/
compilerOptions?: CompilerOptions;
/** List of external modules. */
external: string[];
/** Output path for project typings bundle. */
types?: string;
/** Factory to use for creating source code transformers. */
transformerFactory?: TransformersFactory;
}
export declare function typescript(options?: TypeScriptOptions): Plugin;