@eljs/create
Version:
Create a project from a remote template.
65 lines • 2.11 kB
TypeScript
import { type RunnerPluginApi } from "../core";
import type { PluggablePluginApi, PluginApi } from '@eljs/pluggable';
import type { CopyFileOptions, PackageJson, RenderTemplateOptions, RunCommandOptions } from '@eljs/utils';
/**
* 插件 Api 参数
*/
export type Api = Omit<PluginApi, 'registerPresets' | 'registerPlugins'> & PluggablePluginApi & RunnerPluginApi & {
/**
* 拷贝文件
* @param from 源文件路径
* @param to 目标文件路径
* @param options 选项
*/
copyFile: (from: string, to: string, options: CopyFileOptions) => Promise<void>;
/**
* 拷贝模版
* @param from 源文件路径
* @param to 目标文件路径
* @param data 模版数据
* @param options 选项
*/
copyTpl: (from: string, to: string, data: object, options: CopyFileOptions) => Promise<void>;
/**
* 拷贝文件夹
* @param from 源文件路径
* @param to 目标文件路径
* @param data 模版数据
* @param options 选项
*/
copyDirectory: (from: string, to: string, data: object, options: CopyFileOptions) => Promise<void>;
/**
* 渲染模版
* @param path 模版路径
* @param data 模版数据
* @param options 选项
*/
render: (path: string, data: Record<string, any>, options?: RenderTemplateOptions) => Promise<void>;
/**
* 扩展 package.json
* @param partial pkgJson 数据
*/
extendPackage(partial: PackageJson): void;
/**
* 扩展 package.json
* @param fn pkgJson 获取函数
*/
extendPackage(fn: (memo: PackageJson) => PackageJson): void;
/**
* 在当前工程下解析一个路径
* @param paths 文件路径
*/
resolve: (...paths: string[]) => string;
/**
* 安装依赖
* @param options 选项
*/
install(options?: RunCommandOptions): Promise<void>;
/**
* 安装依赖
* @param args 命令行参数
* @param options 选项
*/
install(args: string[], option?: RunCommandOptions): Promise<void>;
};
//# sourceMappingURL=api.d.ts.map