import { type CloudApiService } from '@cloudbase/cloud-api'; /** * 最基础的参数 */ export interface IBaseParams { /** * 资源类型 */ resource?: string; } /** * 包含资源名称的参数 */ export interface IParamsWithName extends IBaseParams { /** * 资源名称 */ name?: string; } /** * 具有云端服务相关信息的参数 */ export interface IParamsWithService extends IBaseParams { /** * 云环境 ID */ envId: string; /** * 云 API 服务,用于调用云 API */ cloudService: ICloudService; } export interface ICloudService { lowcode: CloudApiService; tcb: CloudApiService; } /** * 所有命令执行方法的入口 */ export declare function commandRun(params: IBaseParams, basePath: string): Promise; export declare enum CommandCheckType { /** * 忽略检查 */ IGNORE = 1, /** * 只检查是否在有效的插件/资源目录中 * 适用场景:像 push 这种只能在插件/资源目录中执行 */ PROJECT_ROOT = 2, /** * 检查是否在有效的插件/资源目录或是否提供了 name 参数 * 适用场景:像 pull 这种即可以在插件/资源目录中执行,也可以在非插件/资源目录中执行,但需要提供 name 参数 */ PROJECT_ROOT_OR_NAME = 3 } interface IBaseCommandOptions { /** * 初始校验类型 */ initCheckType?: CommandCheckType; } /** * 所有命令执行的基类 */ export declare abstract class BaseCommand { /** * 配置项 */ options: IBaseCommandOptions; /** * 命令入参 */ params: T; /** * 插件/资源的根目录 */ projectRoot: string; /** * 插件/资源的名称 * 注意:请始终使用该属性来获取插件/资源的名称,而不是使用 params.name */ name: string; /** * package.json 的数据 */ packageJsonData: { [key: string]: any; }; /** * cloudbase 配置 */ cloudbasercConfig: { [key: string]: any; }; /** * @param params 命令入参 * @param options 配置项 */ constructor(params: T); run(): Promise; /** * 自定义校验 */ check(): Promise; /** * 命令逻辑处理 */ abstract handler(): Promise | any; /** * 生成 package.json 文件 */ generatePackageJson(data?: { [key: string]: any; }): Promise; /** * 生成 cloudbaserc.json */ generateCloudbasercJson(data: { envId: string; others?: { [key: string]: any; }; }): Promise; /** * 判断当前是否处于 addon 项目根目录 */ private isInAddonProjectRoot; } export {}; //# sourceMappingURL=base.d.ts.map