Files
ChatLab/apps/desktop/main/path-context.ts
T
digua b12c07dc32 refactor: extract Electron shell to apps/desktop/
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)
2026-05-19 00:31:00 +08:00

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
}