@lynker-desktop/electron-sdk 0.0.9-alpha.76 → 0.0.9-alpha.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"shortcut.js","sources":["../src/src/main/shortcut.ts"],"sourcesContent":["import { globalShortcut } from 'electron';\nimport ipc from '@lynker-desktop/electron-ipc/main';\n\n// 存储已注册的快捷键及其回调函数\nconst registeredShortcuts = new Map<string, () => void>();\n\nexport interface ShortcutData {\n accelerator: string;\n registered: boolean;\n}\n\nexport interface ShortcutQuery {\n method: 'register' | 'unregister' | 'unregisterAll' | 'isRegistered' | 'getAll';\n accelerator?: string;\n callback?: () => void;\n}\n\n/**\n * 安全执行快捷键操作(统一错误处理)\n */\nfunction safeShortcutOperation<T>(\n operation: () => T,\n defaultValue: T,\n errorMessage: string\n): T {\n try {\n return operation();\n } catch (error) {\n console.error(errorMessage, error);\n return defaultValue;\n }\n}\n\n/**\n * 验证快捷键格式\n */\nfunction isValidAccelerator(accelerator: string): boolean {\n if (!accelerator || typeof accelerator !== 'string') {\n return false;\n }\n\n const trimmed = accelerator.trim();\n if (trimmed.length === 0) {\n return false;\n }\n\n // Electron 的 accelerator 格式验证\n // 基本格式:CommandOrControl+X, Alt+Shift+X 等\n // 这里只做基本检查,实际验证由 Electron 的 globalShortcut 处理\n return true;\n}\n\n/**\n * 注册全局快捷键\n */\nfunction handleRegister(accelerator: string, callback?: () => void): boolean {\n if (!isValidAccelerator(accelerator)) {\n console.error('无效的快捷键格式:', accelerator);\n return false;\n }\n\n // 如果已经注册,先注销\n if (registeredShortcuts.has(accelerator)) {\n handleUnregister(accelerator);\n }\n\n return safeShortcutOperation(\n () => {\n const success = globalShortcut.register(accelerator, () => {\n // 如果提供了回调函数,执行它\n if (callback) {\n try {\n callback();\n } catch (error) {\n console.error('快捷键回调执行失败:', error);\n }\n }\n // 通知所有渲染进程快捷键被触发\n ipc.mainIPC.invokeAllRenderer('core:shortcut:triggered', { accelerator });\n });\n\n if (success) {\n // 存储回调函数(如果有)\n if (callback) {\n registeredShortcuts.set(accelerator, callback);\n } else {\n registeredShortcuts.set(accelerator, () => {});\n }\n } else {\n console.error('注册快捷键失败,可能已被其他应用占用:', accelerator);\n }\n\n return success;\n },\n false,\n '注册快捷键失败:'\n );\n}\n\n/**\n * 注销单个全局快捷键\n */\nfunction handleUnregister(accelerator: string): boolean {\n if (!isValidAccelerator(accelerator)) {\n console.error('无效的快捷键格式:', accelerator);\n return false;\n }\n\n return safeShortcutOperation(\n () => {\n // 检查是否已注册\n const wasRegistered = registeredShortcuts.has(accelerator);\n if (wasRegistered) {\n globalShortcut.unregister(accelerator);\n registeredShortcuts.delete(accelerator);\n return true;\n }\n return false;\n },\n false,\n '注销快捷键失败:'\n );\n}\n\n/**\n * 注销所有全局快捷键\n */\nfunction handleUnregisterAll(): boolean {\n return safeShortcutOperation(\n () => {\n globalShortcut.unregisterAll();\n registeredShortcuts.clear();\n return true;\n },\n false,\n '注销所有快捷键失败:'\n );\n}\n\n/**\n * 检查快捷键是否已注册\n */\nfunction handleIsRegistered(accelerator: string): boolean {\n if (!isValidAccelerator(accelerator)) {\n return false;\n }\n\n return safeShortcutOperation(\n () => {\n return globalShortcut.isRegistered(accelerator);\n },\n false,\n '检查快捷键注册状态失败:'\n );\n}\n\n/**\n * 获取所有已注册的快捷键\n */\nfunction handleGetAll(): ShortcutData[] {\n return safeShortcutOperation(\n () => {\n const shortcuts: ShortcutData[] = [];\n registeredShortcuts.forEach((_, accelerator) => {\n shortcuts.push({\n accelerator,\n registered: globalShortcut.isRegistered(accelerator),\n });\n });\n return shortcuts;\n },\n [],\n '获取所有快捷键失败:'\n );\n}\n\n/**\n * 初始化快捷键 IPC 处理器\n */\nexport const initializeShortcut = () => {\n ipc.mainIPC.handleRenderer('core:shortcut', async (options: ShortcutQuery): Promise<ShortcutData[] | boolean> => {\n const { method, accelerator, callback } = options;\n\n try {\n switch (method) {\n case 'register':\n if (!accelerator) {\n console.error('注册快捷键需要提供 accelerator');\n return false;\n }\n return handleRegister(accelerator, callback);\n\n case 'unregister':\n if (!accelerator) {\n console.error('注销快捷键需要提供 accelerator');\n return false;\n }\n return handleUnregister(accelerator);\n\n case 'unregisterAll':\n return handleUnregisterAll();\n\n case 'isRegistered':\n if (!accelerator) {\n console.error('检查快捷键需要提供 accelerator');\n return false;\n }\n return handleIsRegistered(accelerator);\n\n case 'getAll':\n return handleGetAll();\n\n default:\n console.error('未知的快捷键操作方法:', method);\n return false;\n }\n } catch (error) {\n console.error('快捷键操作失败:', error);\n return false;\n }\n });\n};\n\n"],"names":["globalShortcut"],"mappings":"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"}
1
+ {"version":3,"file":"shortcut.js","sources":["../src/src/main/shortcut.ts"],"sourcesContent":["import { globalShortcut } from 'electron';\nimport ipc from '@lynker-desktop/electron-ipc/main';\n\n// 存储已注册的快捷键及其回调函数\nconst registeredShortcuts = new Map<string, () => void>();\n\nexport interface ShortcutData {\n accelerator: string;\n registered: boolean;\n}\n\nexport interface ShortcutQuery {\n method: 'register' | 'unregister' | 'unregisterAll' | 'isRegistered' | 'getAll';\n accelerator?: string;\n callback?: () => void;\n}\n\n/**\n * 安全执行快捷键操作(统一错误处理)\n */\nfunction safeShortcutOperation<T>(\n operation: () => T,\n defaultValue: T,\n errorMessage: string\n): T {\n try {\n return operation();\n } catch (error) {\n console.error(errorMessage, error);\n return defaultValue;\n }\n}\n\n/**\n * 验证快捷键格式\n */\nfunction isValidAccelerator(accelerator: string): boolean {\n if (!accelerator || typeof accelerator !== 'string') {\n return false;\n }\n\n const trimmed = accelerator.trim();\n if (trimmed.length === 0) {\n return false;\n }\n\n // Electron 的 accelerator 格式验证\n // 基本格式:CommandOrControl+X, Alt+Shift+X 等\n // 这里只做基本检查,实际验证由 Electron 的 globalShortcut 处理\n return true;\n}\n\n/**\n * 注册全局快捷键\n */\nfunction handleRegister(accelerator: string, callback?: () => void): boolean {\n if (!isValidAccelerator(accelerator)) {\n console.error('无效的快捷键格式:', accelerator);\n return false;\n }\n\n // 如果已经注册,先注销\n if (registeredShortcuts.has(accelerator)) {\n handleUnregister(accelerator);\n }\n\n return safeShortcutOperation(\n () => {\n const success = globalShortcut.register(accelerator, () => {\n // 如果提供了回调函数,执行它\n if (callback) {\n try {\n callback();\n } catch (error) {\n console.error('快捷键回调执行失败:', error);\n }\n }\n // 通知所有渲染进程快捷键被触发\n ipc.mainIPC.invokeAllRendererNotReply('core:shortcut:triggered', { accelerator });\n });\n\n if (success) {\n // 存储回调函数(如果有)\n if (callback) {\n registeredShortcuts.set(accelerator, callback);\n } else {\n registeredShortcuts.set(accelerator, () => {});\n }\n } else {\n console.error('注册快捷键失败,可能已被其他应用占用:', accelerator);\n }\n\n return success;\n },\n false,\n '注册快捷键失败:'\n );\n}\n\n/**\n * 注销单个全局快捷键\n */\nfunction handleUnregister(accelerator: string): boolean {\n if (!isValidAccelerator(accelerator)) {\n console.error('无效的快捷键格式:', accelerator);\n return false;\n }\n\n return safeShortcutOperation(\n () => {\n // 检查是否已注册\n const wasRegistered = registeredShortcuts.has(accelerator);\n if (wasRegistered) {\n globalShortcut.unregister(accelerator);\n registeredShortcuts.delete(accelerator);\n return true;\n }\n return false;\n },\n false,\n '注销快捷键失败:'\n );\n}\n\n/**\n * 注销所有全局快捷键\n */\nfunction handleUnregisterAll(): boolean {\n return safeShortcutOperation(\n () => {\n globalShortcut.unregisterAll();\n registeredShortcuts.clear();\n return true;\n },\n false,\n '注销所有快捷键失败:'\n );\n}\n\n/**\n * 检查快捷键是否已注册\n */\nfunction handleIsRegistered(accelerator: string): boolean {\n if (!isValidAccelerator(accelerator)) {\n return false;\n }\n\n return safeShortcutOperation(\n () => {\n return globalShortcut.isRegistered(accelerator);\n },\n false,\n '检查快捷键注册状态失败:'\n );\n}\n\n/**\n * 获取所有已注册的快捷键\n */\nfunction handleGetAll(): ShortcutData[] {\n return safeShortcutOperation(\n () => {\n const shortcuts: ShortcutData[] = [];\n registeredShortcuts.forEach((_, accelerator) => {\n shortcuts.push({\n accelerator,\n registered: globalShortcut.isRegistered(accelerator),\n });\n });\n return shortcuts;\n },\n [],\n '获取所有快捷键失败:'\n );\n}\n\n/**\n * 初始化快捷键 IPC 处理器\n */\nexport const initializeShortcut = () => {\n ipc.mainIPC.handleRenderer('core:shortcut', async (options: ShortcutQuery): Promise<ShortcutData[] | boolean> => {\n const { method, accelerator, callback } = options;\n\n try {\n switch (method) {\n case 'register':\n if (!accelerator) {\n console.error('注册快捷键需要提供 accelerator');\n return false;\n }\n return handleRegister(accelerator, callback);\n\n case 'unregister':\n if (!accelerator) {\n console.error('注销快捷键需要提供 accelerator');\n return false;\n }\n return handleUnregister(accelerator);\n\n case 'unregisterAll':\n return handleUnregisterAll();\n\n case 'isRegistered':\n if (!accelerator) {\n console.error('检查快捷键需要提供 accelerator');\n return false;\n }\n return handleIsRegistered(accelerator);\n\n case 'getAll':\n return handleGetAll();\n\n default:\n console.error('未知的快捷键操作方法:', method);\n return false;\n }\n } catch (error) {\n console.error('快捷键操作失败:', error);\n return false;\n }\n });\n};\n\n"],"names":["globalShortcut"],"mappings":"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"}
package/main/store.js CHANGED
@@ -21,7 +21,7 @@ function ensureStore(name) {
21
21
  }
22
22
  _appStore.get(name).onDidAnyChange((newValue, oldValue) => {
23
23
  try {
24
- ipc.mainIPC.invokeAllRenderer('core:estore:didAnyChange', {
24
+ ipc.mainIPC.invokeAllRendererNotReply('core:estore:didAnyChange', {
25
25
  name,
26
26
  newValue: newValue ? JSON.stringify(newValue) : undefined,
27
27
  oldValue: oldValue ? JSON.stringify(oldValue) : undefined,
package/main/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":["../src/src/main/store.ts"],"sourcesContent":["import ElectronStore from 'electron-store';\nimport ipc from '@lynker-desktop/electron-ipc/main';\n\nexport const _appStore: Map<string, any> = new Map();\n\nexport interface EStoreQuery {\n name?: string;\n method: 'get' | 'set' | 'delete' | 'clear' | 'has' | 'store';\n key?: string;\n value?: any;\n};\n\nexport type AppStoreOptions = {[key: string]: any};\n\n/**\n * 确保 store 存在并已初始化,如果不存在则创建\n */\nfunction ensureStore(name: string) {\n if (!_appStore.has(name) || typeof _appStore.get(name)?.set !== 'function') {\n const Store = ElectronStore;\n _appStore.set(name, new Store({\n name,\n accessPropertiesByDotNotation: true,\n }));\n /**\n * 临时存储,每次启动时清空\n */\n if (name.startsWith('__temp__')) {\n _appStore.get(name).clear();\n console.log('clear temp store', name);\n }\n _appStore.get(name).onDidAnyChange((newValue: any, oldValue: any) => {\n try {\n ipc.mainIPC.invokeAllRenderer('core:estore:didAnyChange', {\n name,\n newValue: newValue ? JSON.stringify(newValue) : undefined,\n oldValue: oldValue ? JSON.stringify(oldValue) : undefined,\n });\n } catch (error) {\n console.error('core:estore:didAnyChange', error);\n }\n });\n }\n return _appStore.get(name);\n}\n\nexport const initializeStore = () => {\n ipc.mainIPC.handleRenderer('core:estore', async (options: EStoreQuery) => {\n const { name = 'appStore', method, key, value } = options;\n const appStore = ensureStore(name);\n\n if (method === 'get') {\n return appStore.get(key);\n } else if (method === 'set') {\n appStore.set(key, value);\n return true;\n } else if (method === 'delete') {\n appStore.delete(key);\n return true;\n } else if (method === 'clear') {\n appStore.clear();\n return true;\n } else if (method === 'has') {\n return appStore.has(key);\n } else if (method === 'store') {\n return appStore.store;\n }\n })\n}\n\nexport const getAppStore = (name: string) => {\n return ensureStore(name);\n}\n\nexport const appStoreInit = (stores: string[]) => {\n if (stores.length) {\n stores.forEach((storeName: string) => {\n try {\n if (typeof storeName === 'string') {\n ensureStore(storeName);\n }\n } catch (error) {\n console.error('appStoreInit', error);\n }\n });\n }\n return true;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sources":["../src/src/main/store.ts"],"sourcesContent":["import ElectronStore from 'electron-store';\nimport ipc from '@lynker-desktop/electron-ipc/main';\n\nexport const _appStore: Map<string, any> = new Map();\n\nexport interface EStoreQuery {\n name?: string;\n method: 'get' | 'set' | 'delete' | 'clear' | 'has' | 'store';\n key?: string;\n value?: any;\n};\n\nexport type AppStoreOptions = {[key: string]: any};\n\n/**\n * 确保 store 存在并已初始化,如果不存在则创建\n */\nfunction ensureStore(name: string) {\n if (!_appStore.has(name) || typeof _appStore.get(name)?.set !== 'function') {\n const Store = ElectronStore;\n _appStore.set(name, new Store({\n name,\n accessPropertiesByDotNotation: true,\n }));\n /**\n * 临时存储,每次启动时清空\n */\n if (name.startsWith('__temp__')) {\n _appStore.get(name).clear();\n console.log('clear temp store', name);\n }\n _appStore.get(name).onDidAnyChange((newValue: any, oldValue: any) => {\n try {\n ipc.mainIPC.invokeAllRendererNotReply('core:estore:didAnyChange', {\n name,\n newValue: newValue ? JSON.stringify(newValue) : undefined,\n oldValue: oldValue ? JSON.stringify(oldValue) : undefined,\n });\n } catch (error) {\n console.error('core:estore:didAnyChange', error);\n }\n });\n }\n return _appStore.get(name);\n}\n\nexport const initializeStore = () => {\n ipc.mainIPC.handleRenderer('core:estore', async (options: EStoreQuery) => {\n const { name = 'appStore', method, key, value } = options;\n const appStore = ensureStore(name);\n\n if (method === 'get') {\n return appStore.get(key);\n } else if (method === 'set') {\n appStore.set(key, value);\n return true;\n } else if (method === 'delete') {\n appStore.delete(key);\n return true;\n } else if (method === 'clear') {\n appStore.clear();\n return true;\n } else if (method === 'has') {\n return appStore.has(key);\n } else if (method === 'store') {\n return appStore.store;\n }\n })\n}\n\nexport const getAppStore = (name: string) => {\n return ensureStore(name);\n}\n\nexport const appStoreInit = (stores: string[]) => {\n if (stores.length) {\n stores.forEach((storeName: string) => {\n try {\n if (typeof storeName === 'string') {\n ensureStore(storeName);\n }\n } catch (error) {\n console.error('appStoreInit', error);\n }\n });\n }\n return true;\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynker-desktop/electron-sdk",
3
- "version": "0.0.9-alpha.76",
3
+ "version": "0.0.9-alpha.78",
4
4
  "description": "electron-sdk",
5
5
  "keywords": [
6
6
  "electron",
@@ -53,9 +53,9 @@
53
53
  "packageManager": "pnpm@9.6.0",
54
54
  "dependencies": {
55
55
  "@electron/remote": "^2.1.2",
56
- "@lynker-desktop/electron-ipc": "0.0.9-alpha.76",
57
- "@lynker-desktop/electron-logs": "0.0.9-alpha.76",
58
- "@lynker-desktop/electron-window-manager": "0.0.9-alpha.76",
56
+ "@lynker-desktop/electron-ipc": "0.0.9-alpha.78",
57
+ "@lynker-desktop/electron-logs": "0.0.9-alpha.78",
58
+ "@lynker-desktop/electron-window-manager": "0.0.9-alpha.78",
59
59
  "electron-store": "^11.0.2",
60
60
  "events": "^3.3.0",
61
61
  "lodash": "^4.17.21",
@@ -92,5 +92,5 @@
92
92
  "tslib": "^2.6.3",
93
93
  "typescript": "^5.5.3"
94
94
  },
95
- "gitHead": "abd885596ff9cf1eb0150e46ba366d472cc5e0c8"
95
+ "gitHead": "e1a4ef4af18830dfb334e3539ed6dd3ef2587f73"
96
96
  }