60 lines
1.7 KiB
TypeScript
60 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';
|
|
|
|
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);
|
|
});
|
|
|
|
export const runtime = useContextKey('runtime', () => {
|
|
return {
|
|
type: 'client',
|
|
};
|
|
});
|
|
|
|
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.route({
|
|
path: 'router',
|
|
key: 'list',
|
|
description: '获取路由列表',
|
|
}).define(async (ctx) => {
|
|
const list = ctx.app.getList((item) => {
|
|
if (item?.path?.includes('auth') || item?.id?.includes('auth')) return false;
|
|
return true;
|
|
})
|
|
ctx.body = { list }
|
|
}).addTo(app); |