57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
import { app } from './app';
|
|
import { theme } from './theme';
|
|
import { window } from './window';
|
|
import { databaseRouter } from './database/router';
|
|
import { accountRouter } from './account/router';
|
|
import { cloudRouter } from './cloud/router';
|
|
import { configRouter } from './config/router';
|
|
import { gatewayRouter } from './gateway/router';
|
|
|
|
import { os } from '@orpc/server';
|
|
import { z } from 'zod';
|
|
import { isProcessRunning, closeAntigravity, startAntigravity } from './process/handler';
|
|
import { systemHandler } from './system/handler';
|
|
|
|
// Log middleware setup
|
|
const logMiddleware = os.middleware(async (opts: any) => {
|
|
const { next, path, meta } = opts;
|
|
const requestPath = path || meta?.path || 'unknown';
|
|
|
|
try {
|
|
const result = await next({});
|
|
return result;
|
|
} catch (err) {
|
|
console.error(`[ORPC] Error in handler for ${JSON.stringify(requestPath)}:`, err);
|
|
throw err;
|
|
}
|
|
});
|
|
|
|
// Explicit Router Definition
|
|
export const router = os.use(logMiddleware).router({
|
|
ping: os.output(z.string()).handler(async () => 'pong'),
|
|
|
|
theme,
|
|
window,
|
|
app,
|
|
database: databaseRouter,
|
|
|
|
// Inline process router to ensure structure
|
|
proc: os.router({
|
|
isProcessRunning: os.output(z.boolean()).handler(async () => {
|
|
return await isProcessRunning();
|
|
}),
|
|
closeAntigravity: os.output(z.void()).handler(async () => {
|
|
await closeAntigravity();
|
|
}),
|
|
startAntigravity: os.output(z.void()).handler(async () => {
|
|
await startAntigravity();
|
|
}),
|
|
}),
|
|
|
|
account: accountRouter,
|
|
cloud: cloudRouter,
|
|
config: configRouter,
|
|
gateway: gatewayRouter,
|
|
system: systemHandler,
|
|
});
|