Configuration: recactor how it is written and handled
This commit is contained in:
parent
13e993b964
commit
7ff4abc3c0
10 changed files with 130 additions and 61 deletions
25
src/index.ts
25
src/index.ts
|
@ -1,11 +1,12 @@
|
|||
import DiscordApi from "discord.js";
|
||||
import { Configuration as OpenAIApiConfiguration, OpenAIApi } from "openai";
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
import Typescript from "typescript";
|
||||
import fs from "node:fs";
|
||||
|
||||
import config from "./config";
|
||||
import { queueRequest } from "./execution";
|
||||
import InteractionManager from "./interactionManager";
|
||||
|
||||
import newConfig, { IConfig, IConfigRequired } from "./configDefault";
|
||||
const discord = new DiscordApi.Client({
|
||||
intents: [
|
||||
DiscordApi.GatewayIntentBits.Guilds,
|
||||
|
@ -14,6 +15,26 @@ const discord = new DiscordApi.Client({
|
|||
]
|
||||
});
|
||||
|
||||
function getConfig() {
|
||||
let fileConfig: IConfig | undefined = undefined;
|
||||
try {
|
||||
fs.statSync("./config.ts");
|
||||
const program = Typescript.createProgram(
|
||||
["./config.ts"],
|
||||
{outDir: "./dist"}
|
||||
);
|
||||
console.log(program.emit(program.getSourceFile("./config.ts")));
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-member-access
|
||||
fileConfig = require("./config").default as IConfig;
|
||||
} catch (e) {
|
||||
//FIXME: make errors more descriptive to the enduser
|
||||
console.log(e);
|
||||
}
|
||||
return fileConfig !== undefined ? newConfig(fileConfig) : newConfig();
|
||||
}
|
||||
|
||||
export const config: IConfigRequired = getConfig();
|
||||
|
||||
export const openai = new OpenAIApi(new OpenAIApiConfiguration({
|
||||
apiKey: config.tokens.OpenAI
|
||||
}));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue