wangzhibo
2026-05-09 53418655c061ac26f66058253f39200aced1ab1d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import fs from "node:fs";
import path from "node:path";
import type {
  AppConfig,
  DataSrcConfig,
  LdapConfig,
  PagesConfig,
  SystemScenariosConfig,
  SqlServerConfig,
  UserScenariosConfig,
} from "./types.js";
 
const CONFIG_DIR = process.env.BOARD_CONFIG_DIR
  ? path.resolve(process.env.BOARD_CONFIG_DIR)
  : path.join(process.cwd(), "config");
 
function readJson<T>(file: string): T {
  const full = path.join(CONFIG_DIR, file);
  const raw = fs.readFileSync(full, "utf8");
  return JSON.parse(raw) as T;
}
 
export function loadAppConfig(): AppConfig {
  return readJson<AppConfig>("app.config.json");
}
 
export function loadLdapConfig(): LdapConfig {
  return readJson<LdapConfig>("ldap.config.json");
}
 
export function loadPagesConfig(): PagesConfig {
  return readJson<PagesConfig>("pages.config.json");
}
 
export function loadSystemScenariosConfig(): SystemScenariosConfig {
  return readJson<SystemScenariosConfig>("scenarios.system.json");
}
 
export function loadUserScenariosConfig(): UserScenariosConfig {
  return readJson<UserScenariosConfig>("scenarios.users.json");
}
 
export function writeUserScenariosConfig(data: UserScenariosConfig): void {
  const full = path.join(CONFIG_DIR, "scenarios.users.json");
  const text = JSON.stringify(data, null, 2) + "\n";
  fs.writeFileSync(full, text, "utf8");
}
 
export function loadSqlServerConfig(): SqlServerConfig {
  return readJson<SqlServerConfig>("sqlserver.config.json");
}
 
export function loadDataSrcConfig(): DataSrcConfig {
  return readJson<DataSrcConfig>("datasrc.json");
}
 
export function getConfigDir(): string {
  return CONFIG_DIR;
}