[READ-ONLY] Mirror of https://github.com/flo-bit/shapecraft.
flo-bit.dev/shapecraft/
1.1 kB
46 lines
1// config.server.ts
2import { existsSync, readFileSync } from "node:fs";
3import { resolve as r } from "node:path";
4import type { Config } from "./config.type";
5
6const defaultConfig: Config = {
7 SITE: undefined,
8 BASE: "",
9 SITE_NAME: "",
10 SITE_DESCRIPTION: "",
11 SITE_FAVICON: "",
12 SHOW_THEME_TOGGLE: true,
13 SEARCH_ENABLED: false,
14 BASE_COLOR: "zinc",
15 ACCENT_COLOR: "emerald",
16
17 FACEBOOK_URL: "",
18 TWITTER_URL: "",
19 GITHUB_URL: "",
20 LINKEDIN_URL: "",
21 YOUTUBE_URL: "",
22 BLUESKY_URL: "",
23 DISCORD_URL: "",
24 EMAIL: "",
25
26 EXCLUDE_README: false,
27 REPLACE_README_WITH_TITLE: "",
28};
29
30export function loadConfig(): Config {
31 try {
32 const configPath = r("../tdocs.config.json");
33 if (existsSync(configPath)) {
34 return JSON.parse(readFileSync(configPath, "utf-8")) as Config;
35 }
36 } catch (e) {
37 console.warn(
38 "⚠️ No tdocs.config.json found or invalid JSON — using defaults.",
39 );
40 }
41 return defaultConfig;
42}
43
44export const config = loadConfig();
45export const accentColor = (config.ACCENT_COLOR ?? "emerald").toLowerCase();
46export const baseColor = (config.BASE_COLOR ?? "zinc").toLowerCase();