@farris/devkit-vue
Version:
54 lines (53 loc) • 1.31 kB
TypeScript
import { InjectionToken } from '../common/index';
import { Module } from '../module/index';
import { Entity, EntitySchema, EntityState, EntityStore } from '../store/index';
import { RepositoryConfig } from './configs/index';
declare function getDynamicRepositoryToken(id: string): InjectionToken<any>;
/**
* 远程实体仓库
*/
declare abstract class Repository<T extends Entity> {
/**
* 所属模块
*/
module: Module;
/**
* 实体描述
*/
entitySchema: EntitySchema;
/**
* 实体仓库
* BAP: BA统一查询平台entityStore存在多个,所以新增类型any
*/
entityStore: EntityStore<EntityState<Entity>> | any;
/**
* ID
*/
id: string;
/**
* 配置
*/
protected config: RepositoryConfig;
/**
* 构造函数
*/
constructor(module: Module);
/**
* 初始化
*/
init(config: RepositoryConfig): void;
updateEntitySchema(entitySchema?: EntitySchema): void;
/**
* 批量创建实体
*/
buildEntites(entityDatas: any[]): T[];
/**
* 创建实体
*/
buildEntity(entityData: any): T;
/**
* 获取实体仓库
*/
getEntityStore(): EntityStore<EntityState<Entity>>;
}
export { getDynamicRepositoryToken, Repository };