Files
code-center/src/app.ts

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',
});
});