@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
82 lines (81 loc) • 2.37 kB
TypeScript
import { Module, PisellCore, ModuleOptions } from '../../../types';
import { BaseModule } from '../../../modules/BaseModule';
import { ScheduleModuleAPI, ScheduleItem } from '../../../modules/Schedule/types';
/**
* Schedule 模块(扩展版本)
* 在原有基础上添加了 getAvailableScheduleIds 方法
*/
export declare class ScheduleModuleEx extends BaseModule implements Module, ScheduleModuleAPI {
protected defaultName: string;
protected defaultVersion: string;
private request;
private store;
private dbManager;
private logger;
constructor(name?: string, version?: string);
/**
* 记录信息日志
* @param title 日志标题
* @param metadata 日志元数据
*/
private logInfo;
/**
* 记录警告日志
* @param title 日志标题
* @param metadata 日志元数据
*/
private logWarning;
/**
* 记录错误日志
* @param title 日志标题
* @param metadata 日志元数据
*/
private logError;
initialize(core: PisellCore, options: ModuleOptions): Promise<void>;
/**
* 加载当前店铺下所有 schedule(从服务器)
*/
loadAllSchedule(): Promise<any>;
setScheduleList(list: ScheduleItem[]): void;
/**
* 获取所有日程列表
*/
getScheduleList(): ScheduleItem[];
/**
* 根据 schedule IDs 获取日程数据
* 使用 Map 快速查询,时间复杂度 O(m),m 为 ids 数量
*/
getScheduleByIds(ids: number[]): ScheduleItem[];
/**
* 同步更新日程 Map 缓存
* 将 scheduleList 中的日程同步到 map,以 id 为 key
* @private
*/
private syncScheduleMap;
/**
* 清除缓存
*/
clear(): Promise<void>;
/**
* 判断日期是否在日程范围内
* @param date 日期
* @param scheduleList 日程列表
* @returns 是否在日程范围内
*/
getDateIsInSchedule(date: string, scheduleList: (ScheduleItem | number)[]): boolean;
/**
* 从 IndexDB 加载日程数据
* @private
*/
private loadScheduleFromIndexDB;
/**
* 保存日程数据到 IndexDB
* @private
*/
private saveScheduleToIndexDB;
/**
* 预加载模块数据(统一接口)
* 在模块注册后自动调用
*/
preload(): Promise<void>;
}