blob: 189241c06d0feb10586ec0f3d83e68beff76cf1a [file] [log] [blame]
import * as log4js from "log4js";
import * as ts from "typescript";
import { Configuration } from "../shared/configuration";
export interface TransformResult {
dirty?: boolean;
transpile?: boolean;
transformedScript?: boolean;
}
export interface TransformCallback {
(error: Error, dirty: boolean, transpile?: boolean): void;
(error: Error, result: TransformResult): void;
}
export interface TransformContextJs {
ast: acorn.Node;
}
export interface TransformContextTs {
version: string;
ast: ts.SourceFile;
transpiled: string;
}
export interface TransformContext {
config: Configuration;
js?: TransformContextJs;
filename: string;
module: string;
source: string;
ts?: TransformContextTs;
}
export interface TransformInitializeLogOptions {
appenders: {
[name: string]: log4js.Appender;
};
level: string;
}
export declare type TransformInitialize = (log: TransformInitializeLogOptions) => void;
export interface Transform {
(context: TransformContext, callback: TransformCallback): void;
initialize?: TransformInitialize;
}