///
import chokidar from 'chokidar';
import { EventEmitter } from 'events';
import * as generator from './generator';
import Watcher, { WatchItem } from './watcher';
import { BaseGenerator } from './generators/base';
import * as utils from './utils';
import { CompilerOptions } from 'typescript';
declare global {
interface PlainObject {
[key: string]: T;
}
}
export interface TsHelperOption {
cwd?: string;
framework?: string;
typings?: string;
generatorConfig?: {
[key: string]: WatchItem | boolean;
};
/** @deprecated alias of generatorConfig, has been deprecated */
watchDirs?: {
[key: string]: WatchItem | boolean;
};
caseStyle?: string | ((...args: any[]) => string);
watch?: boolean;
watchOptions?: chokidar.WatchOptions;
autoRemoveJs?: boolean;
throttle?: number;
execAtInit?: boolean;
customLoader?: any;
configFile?: string | string[];
silent?: boolean;
}
export declare type TsHelperConfig = typeof defaultConfig & {
id: string;
eggInfo: utils.EggInfoResult;
customLoader: any;
tsConfig: CompilerOptions;
};
export declare type TsGenConfig = {
name: string;
dir: string;
dtsDir: string;
fileList: string[];
file?: string;
} & WatchItem;
export interface GeneratorResult {
dist: string;
content?: string;
}
declare type GeneratorAllResult = GeneratorResult | GeneratorResult[];
declare type GeneratorCbResult = T | Promise;
export declare type TsGenerator = ((config: TsGenConfig, baseConfig: TsHelperConfig, tsHelper: TsHelper) => GeneratorCbResult) & {
defaultConfig?: WatchItem;
};
export declare const defaultConfig: {
cwd: string;
framework: string;
typings: string;
caseStyle: string;
autoRemoveJs: boolean;
throttle: number;
watch: boolean;
watchOptions: undefined;
execAtInit: boolean;
silent: boolean;
generatorConfig: PlainObject;
configFile: string[];
};
export declare function getDefaultGeneratorConfig(opt?: TsHelperConfig): PlainObject;
export default class TsHelper extends EventEmitter {
config: TsHelperConfig;
watcherList: Watcher[];
private cacheDist;
private dtsFileList;
utils: typeof utils;
constructor(options: TsHelperOption);
build(): this;
destroy(): void;
log(info: string, ignoreSilent?: boolean): void;
warn(info: string): void;
createOneForAll(dist?: string): void;
private initWatcher;
destroyWatcher(...refs: string[]): void;
cleanFiles(): void;
registerWatcher(name: string, watchConfig: WatchItem & {
directory: string | string[];
}, removeDuplicate?: boolean): Watcher[] | undefined;
private loadWatcherConfig;
private configure;
private generateTs;
private updateDistFiles;
private isCached;
private formatConfig;
private mergeConfig;
}
export declare function createTsHelperInstance(options: TsHelperOption): TsHelper;
export { TsHelper, WatchItem, BaseGenerator, generator };
//# sourceMappingURL=core.d.ts.map