index.ts 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. import { IStorageAdapter } from './IStorageAdapter';
  2. import { platform } from '../../../utils/platform';
  3. // 只导出接口类型,不导入实现类(避免编译时加载)
  4. export type { IStorageAdapter };
  5. /**
  6. * 创建存储适配器
  7. * 根据当前平台自动选择合适的存储实现
  8. * 使用动态导入避免在编译时加载不需要的模块
  9. */
  10. export function createStorageAdapter(): IStorageAdapter {
  11. if (platform.isElectron) {
  12. console.log('使用 Electron 存储适配器(持久化到文件系统)');
  13. // 动态加载 Electron 适配器
  14. const { ElectronStorageAdapter } = require('./ElectronStorageAdapter');
  15. return new ElectronStorageAdapter();
  16. } else if (platform.isCordova) {
  17. console.log('使用 Cordova 存储适配器(持久化到 NativeStorage)');
  18. // 动态加载 Cordova 适配器
  19. const { CordovaStorageAdapter } = require('./CordovaStorageAdapter');
  20. return new CordovaStorageAdapter();
  21. } else if (platform.isBrowser) {
  22. console.log('使用浏览器存储适配器(内存存储,无持久化)');
  23. // 动态加载浏览器适配器
  24. const { BrowserStorageAdapter } = require('./BrowserStorageAdapter');
  25. return new BrowserStorageAdapter();
  26. } else {
  27. throw new Error(`不支持的平台:${platform.platform}`);
  28. }
  29. }