70 lines
1.4 KiB
TypeScript
70 lines
1.4 KiB
TypeScript
import { parse } from "@hibas123/config";
|
|
import { Logging } from "@hibas123/nodelogging";
|
|
import * as dotenv from "dotenv";
|
|
import { readFileSync } from "fs";
|
|
import * as ini from "ini";
|
|
|
|
dotenv.config();
|
|
|
|
export interface DatabaseConfig {
|
|
host: string
|
|
database: string
|
|
}
|
|
|
|
export interface WebConfig {
|
|
port: string
|
|
secure: "true" | "false" | undefined
|
|
}
|
|
|
|
export interface CoreConfig {
|
|
name: string
|
|
url: string
|
|
dev: boolean
|
|
}
|
|
|
|
export interface Config {
|
|
core: CoreConfig
|
|
database: DatabaseConfig
|
|
web: WebConfig
|
|
}
|
|
|
|
const config = parse({
|
|
core: {
|
|
dev: {
|
|
default: false,
|
|
type: Boolean
|
|
},
|
|
name: {
|
|
type: String,
|
|
default: "Open Auth"
|
|
},
|
|
url: String
|
|
},
|
|
database: {
|
|
database: {
|
|
type: String,
|
|
default: "openauth"
|
|
},
|
|
host: {
|
|
type: String,
|
|
default: "localhost"
|
|
}
|
|
},
|
|
web: {
|
|
port: {
|
|
type: Number,
|
|
default: 3004
|
|
},
|
|
secure: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
}
|
|
}, "config.ini") as any as Config;
|
|
|
|
if (process.env.DEV === "true")
|
|
config.core.dev = true;
|
|
if (config.core.dev)
|
|
Logging.warning("DEV mode active. This can cause major performance issues, data loss and vulnerabilities! ")
|
|
|
|
export default config; |