Files
orca/src/main/ipc/opencode-usage.ts
T
2026-06-02 18:10:31 -07:00

49 lines
1.7 KiB
TypeScript

import { ipcMain } from 'electron'
import type { OpenCodeUsageStore } from '../opencode-usage/store'
import type {
OpenCodeUsageBreakdownKind,
OpenCodeUsageRange,
OpenCodeUsageScope
} from '../../shared/opencode-usage-types'
export function registerOpenCodeUsageHandlers(openCodeUsage: OpenCodeUsageStore): void {
ipcMain.handle('openCodeUsage:getScanState', () => openCodeUsage.getScanState())
ipcMain.handle('openCodeUsage:setEnabled', (_event, args: { enabled: boolean }) =>
openCodeUsage.setEnabled(args.enabled)
)
ipcMain.handle('openCodeUsage:refresh', (_event, args?: { force?: boolean }) =>
openCodeUsage.refresh(args?.force ?? false)
)
ipcMain.handle(
'openCodeUsage:getSnapshot',
(_event, args: { scope: OpenCodeUsageScope; range: OpenCodeUsageRange; limit?: number }) =>
openCodeUsage.getSnapshot(args.scope, args.range, args.limit)
)
ipcMain.handle(
'openCodeUsage:getSummary',
(_event, args: { scope: OpenCodeUsageScope; range: OpenCodeUsageRange }) =>
openCodeUsage.getSummary(args.scope, args.range)
)
ipcMain.handle(
'openCodeUsage:getDaily',
(_event, args: { scope: OpenCodeUsageScope; range: OpenCodeUsageRange }) =>
openCodeUsage.getDaily(args.scope, args.range)
)
ipcMain.handle(
'openCodeUsage:getBreakdown',
(
_event,
args: {
scope: OpenCodeUsageScope
range: OpenCodeUsageRange
kind: OpenCodeUsageBreakdownKind
}
) => openCodeUsage.getBreakdown(args.scope, args.range, args.kind)
)
ipcMain.handle(
'openCodeUsage:getRecentSessions',
(_event, args: { scope: OpenCodeUsageScope; range: OpenCodeUsageRange; limit?: number }) =>
openCodeUsage.getRecentSessions(args.scope, args.range, args.limit)
)
}