48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
import { App } from '@kevisual/router';
|
|
import * as redisLib from './modules/redis.ts';
|
|
import * as minioLib from './modules/minio.ts';
|
|
import * as sequelizeLib from './modules/sequelize.ts';
|
|
import { useContextKey } from '@kevisual/context';
|
|
import { SimpleRouter } from '@kevisual/router/simple';
|
|
import { OssBase } from '@kevisual/oss/services';
|
|
import { BailianProvider } from '@kevisual/ai';
|
|
|
|
export const router = useContextKey('router', () => new SimpleRouter());
|
|
export const runtime = useContextKey('runtime', () => {
|
|
return {
|
|
env: process.env.NODE_ENV || 'development',
|
|
type: 'server',
|
|
};
|
|
});
|
|
export const oss = useContextKey(
|
|
'oss',
|
|
() =>
|
|
new OssBase({
|
|
client: minioLib.minioClient,
|
|
bucketName: minioLib.bucketName,
|
|
prefix: '',
|
|
}),
|
|
);
|
|
export const redis = useContextKey('redis', () => redisLib.redis);
|
|
export const subscriber = useContextKey('subscriber', () => redisLib.subscriber);
|
|
export const minioClient = useContextKey('minioClient', () => minioLib.minioClient);
|
|
export const sequelize = useContextKey('sequelize', () => sequelizeLib.sequelize);
|
|
|
|
const init = () => {
|
|
return new App({
|
|
serverOptions: {
|
|
cors: {
|
|
origin: '*',
|
|
},
|
|
io: true,
|
|
}
|
|
});
|
|
};
|
|
export const app = useContextKey('app', init);
|
|
|
|
export const ai = useContextKey('ai', () => {
|
|
return new BailianProvider({
|
|
apiKey: process.env.BAILIAN_API_KEY || '',
|
|
model: 'qwen-plus',
|
|
});
|
|
}); |