///
export * from '@platform/npm/lib/types';
export * from './common/prompt/types';
export declare type ITemplateSource = {
dir: string;
pattern?: string;
targetDir?: string;
};
export declare type ITemplateFile = {
base: string;
source: string;
target: string;
isBinary: boolean;
};
export declare type IVariables = {
[key: string]: any;
};
export declare type TemplateFilter = (file: ITemplateFile) => boolean;
export declare type ITemplateEvent = IExecuteTemplateStart | IExecuteTemplateComplete | ITemplateAlert;
export declare type IExecutePayload = {
files: ITemplateFile[];
};
export declare type IExecuteTemplateStart = {
type: 'EXECUTE/start';
payload: IExecutePayload;
};
export declare type IExecuteTemplateComplete = {
type: 'EXECUTE/complete';
payload: IExecutePayload;
};
export declare type ITemplateAlertPayload = {
message: string;
};
export declare type ITemplateAlert = {
type: 'ALERT';
payload: ITemplateAlertPayload;
};
export declare type TemplateMiddleware = (req: ITemplateRequest, res: ITemplateResponse) => any | Promise;
export declare type TemplatePathFilter = RegExp;
export declare type ITemplateRequest = {
path: {
source: string;
target: string;
};
buffer: Buffer;
text?: string;
isBinary: boolean;
variables: V;
};
export declare type AfterTemplateMiddleware = 'NEXT' | 'COMPLETE';
export declare type ITemplateResponse = {
text: string | undefined;
replaceText: ReplaceTemplateText;
alert: (e: T) => ITemplateResponse;
next: () => void;
complete: () => void;
done: (next?: AfterTemplateMiddleware) => void;
};
export declare type ReplaceTemplateText = (searchValue: {
[Symbol.replace](string: string, replaceValue: string): string;
}, replaceValue: string) => ITemplateResponse;