存储结构

interface Window {
  Blinko: {
    store: {
      // 基础存储类型
      StorageState: typeof StorageState;        // 持久化存储状态
      PromiseState: typeof PromiseState;        // 异步操作状态
      PromisePageState: typeof PromisePageState;  // 分页异步状态
      
      // 存储实例
      blinkoStore: BlinkoStore;    // 核心功能存储
      baseStore: BaseStore;        // 基础应用存储
      hubStore: HubStore;          // 同步和连接存储
      resourceStore: ResourceStore; // 资源管理存储
    }
  }
}

基础存储类型

StorageState

用于管理具有订阅支持的持久化状态。

class StorageState<T> {
  // 获取当前值
  get(): T;
  
  // 更新值
  set(value: T): void;
  
  // 订阅变更
  subscribe(callback: (value: T) => void): () => void;
}

// 使用示例
const settings = window.Blinko.store.blinkoStore.settings;
settings.subscribe((newSettings) => {
  console.log('Settings changed:', newSettings);
});

存储实例

BlinkoStore

笔记、标签和设置的核心功能存储。

interface BlinkoStore {
  notes: {
    list: PromisePageState<Note[]>;
    detail: PromiseState<Note>;
    // ... 其他笔记操作
  };
  tags: {
    list: PromiseState<Tag[]>;
    // ... 标签操作
  };
  settings: StorageState<Settings>;
  // ... 其他核心功能
}

BaseStore

基础应用存储,用于基本操作。

interface BaseStore {
  // 应用状态
  initialized: boolean;
  loading: boolean;
  
  // 用户会话
  session: StorageState<Session>;
  
  // 核心操作
  initialize(): Promise<void>;
  reset(): Promise<void>;
}

HubStore

管理同步和连接。

interface HubStore {
  // 连接状态
  connected: boolean;
  connecting: boolean;
  
  // 同步操作
  sync(): Promise<void>;
  connect(): Promise<void>;
  disconnect(): Promise<void>;
}

ResourceStore

处理文件和资源管理。

interface ResourceStore {
  // 资源操作
  upload(file: File): Promise<string>;
  download(url: string): Promise<Blob>;
  delete(url: string): Promise<void>;
  
  // 资源信息
  getInfo(url: string): Promise<ResourceInfo>;
  list(): Promise<ResourceInfo[]>;
}