Files
cli/assistant/src/app.ts

57 lines
1.7 KiB
TypeScript

import { App } from '@kevisual/router';
import { SimpleRouter } from '@kevisual/router/simple'
// import { App } from '@kevisual/router/src/app.ts';
// import { AssistantConfig } from '@/module/assistant/index.ts';
import { AssistantInit, parseHomeArg } from '@/services/init/index.ts';
import { configDir as HomeConfigDir } from '@/module/assistant/config/index.ts';
import { useContextKey } from '@kevisual/use-config/context';
import { AssistantQuery } from '@/module/assistant/query/index.ts';
import { config } from '@/module/config.ts';
export { config };
const manualParse = parseHomeArg(HomeConfigDir);
const _configDir = manualParse.configDir;
export const configDir = AssistantInit.detectConfigDir(_configDir);
const isInit = manualParse?.options?.help ? false : true;
export const assistantConfig = useContextKey<AssistantInit>('assistantConfig', () => {
return new AssistantInit({
path: configDir,
init: isInit,
initWorkspace: manualParse.isOpencode ? false : true,
});
});
export const assistantQuery = useContextKey('assistantQuery', () => {
return new AssistantQuery(assistantConfig);
});
type Runtime = {
type: 'client' | 'server';
isServer?: boolean;
}
export const runtime: Runtime = useContextKey('runtime', () => {
console.log('Runtime detected:', 'isDev:', manualParse.isDev, 'isServer:', manualParse.isServer);
return {
type: 'client',
isServer: manualParse.isServer,
};
});
export const app: App = useContextKey<App>('app', () => {
return new App({
serverOptions: {
path: '/client/router',
httpType: 'http',
cors: {
origin: '*',
},
io: true
},
});
});
export const simpleRouter = useContextKey('simpleRouter', () => {
return new SimpleRouter();
});
app.createRouteList()