UNPKG

@pisell/pisellos

Version:

一个可扩展的前端模块化SDK框架,支持插件系统

82 lines (81 loc) 2.37 kB
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>; }