mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-26 02:04:37 +08:00
Move Electron-specific code (main, preload, shared) and configs (electron.vite, electron-builder) into apps/desktop/ to prepare for multi-platform support (Web Browser standalone). - Create apps/desktop/ with dedicated package.json and tsconfig - Split Electron deps (electron, electron-updater, better-sqlite3, etc.) from shared frontend deps in root package.json - Declare better-sqlite3 and @node-rs/jieba in packages/node-runtime - Add stream-json to packages/parser where it belongs - Update all path aliases (@electron/* → apps/desktop/*) in tsconfig, vite configs, and relative imports in preload/main - Keep slim root tsconfig.node.json as shared base for packages - Update CI/CD release workflow for new directory layout - Fix pre-existing type errors (pi-ai Model generic, SQLLabTab LLMChatStreamChunk, filter.test.ts empty methods)
21 lines
635 B
TypeScript
21 lines
635 B
TypeScript
/**
|
|
* Global PathProvider singleton for the Electron main process.
|
|
*
|
|
* Initializes lazily on first access. All modules that need directory paths
|
|
* should import getPathProvider() instead of importing functions from paths.ts
|
|
* directly — this makes them PathProvider-aware and easier to extract to
|
|
* shared packages later.
|
|
*/
|
|
|
|
import type { PathProvider } from '@openchatlab/core'
|
|
import { ElectronPathProvider } from './electron-path-provider'
|
|
|
|
let _provider: PathProvider | null = null
|
|
|
|
export function getPathProvider(): PathProvider {
|
|
if (!_provider) {
|
|
_provider = new ElectronPathProvider()
|
|
}
|
|
return _provider
|
|
}
|