sdin
Version:
JavaScript package builder.
58 lines (57 loc) • 1.81 kB
TypeScript
import { SdinProject, SdinProjectDatas } from './project';
import { SdinAbstractProject, SdinAbstractProjectParams } from './abstract-project';
export interface SdinAbstractModuleDatas extends SdinProjectDatas {
SDIN_MODULE_ENV: string;
SDIN_MODULE_TYPE: string;
SDIN_MODULE_MODE: string;
SDIN_MODULE_NAME: string;
}
/**
* Sdin 抽象模块选项
*/
export interface SdinAbstractModuleParams<TType extends string, TMode extends string> extends SdinAbstractProjectParams {
/** 模块类型 */
type: TType;
/** 模块名称 */
name: string;
/** 模块构建模式 */
mode?: TMode;
/** 模块源码目录 */
src?: string;
/** 模块目标目录 */
tar?: string;
}
/**
* Sdin 抽象模块配置
*/
export declare abstract class SdinAbstractModule<TType extends string, TMode extends string, TParam extends SdinAbstractModuleParams<TType, TMode>, TDatas extends SdinAbstractModuleDatas> extends SdinAbstractProject<SdinProject, SdinProject, TParam, TDatas> {
/** 模块类型 */
readonly type: TType;
/** 模块名称 */
readonly name: string;
/** 模块构建模式 */
readonly mode: TMode;
/** 模块源码目录 */
readonly src: string;
/** 模块目标目录 */
readonly tar: string;
/** 数据宏定义 */
abstract datas: TDatas;
constructor(project: SdinProject, params: TParam, mode: TMode, tarSuffix: string);
/**
* 检查模块配置对象
*/
validate(): Promise<void>;
/**
* 获取模块源码目录下的绝对路径
*/
withSrc(...pathSegments: string[]): string;
/**
* 获得模块目标目录下的绝对路径
*/
withTar(...pathSegments: string[]): string;
/**
* 设置环境标识
*/
setEnv(it: 'pro' | 'dev'): void;
}