2026.4.0-alpha.0
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import z from "zod";
|
||||
import { readFileSync } from "node:fs";
|
||||
import { parse as yamlParse } from "yaml";
|
||||
import { EOL } from "node:os";
|
||||
|
||||
const schema = z.object({
|
||||
command: z.object({
|
||||
interval: z.number().int().positive(),
|
||||
}),
|
||||
weather: z.object({
|
||||
splits: z.number().int().positive(),
|
||||
}),
|
||||
uwuzu: z.object({
|
||||
token: z.string().length(64),
|
||||
origin: z.string().refine(data => {
|
||||
try {
|
||||
return new URL(data).origin === data;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}),
|
||||
}),
|
||||
debug: z.boolean().optional(),
|
||||
});
|
||||
|
||||
const configFile = readFileSync(`${import.meta.dirname}/../../config/config.yaml`, "utf-8");
|
||||
const configObj = yamlParse(configFile);
|
||||
const result = schema.safeParse(configObj);
|
||||
|
||||
if (!result.success) {
|
||||
console.error("Config: configが無効です。");
|
||||
console.error(` ${result.error.issues.map(issue => issue.message).join(EOL).replaceAll(EOL, `${EOL} `)}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const config = result.data;
|
||||
export default config;
|
||||
Reference in New Issue
Block a user