diff options
| author | Autumn <git@autumnfo.rest> | 2026-05-11 17:59:12 +0100 |
|---|---|---|
| committer | Autumn <git@autumnfo.rest> | 2026-05-11 17:59:12 +0100 |
| commit | 91dec87c2f0bc218160915e43ca27ce49105939d (patch) | |
| tree | f5ba0bed770168614c37d437f6dd47b1cd59cd95 /src/lib | |
| parent | 951844836fca55b5321999a4d4637d1b56fdb448 (diff) | |
[config] added basic device config loader
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config/devices.ts | 32 | ||||
| -rw-r--r-- | src/lib/config/devices.types.ts | 14 |
2 files changed, 46 insertions, 0 deletions
diff --git a/src/lib/config/devices.ts b/src/lib/config/devices.ts new file mode 100644 index 0000000..f6cc39b --- /dev/null +++ b/src/lib/config/devices.ts @@ -0,0 +1,32 @@ +// +// ~~~ device configs +// + +// imports +import { readFileSync } from "node:fs" + +import type DevicesConfig from "@lib/config/devices.types.ts" + +// load config +const configFile = "data/devices.json" +let devicesConfig: DevicesConfig = {} + +try { + devicesConfig = JSON.parse(readFileSync(configFile, "utf8")) +} catch(e) { + console.error("!> cannot read devices config") +} + +// get all devices +const allDevices = Object.keys(devicesConfig).map((device) => { + + const deviceInfo = devicesConfig[device] + + return { + ...deviceInfo, + id: device + } + +}) + +export default allDevices diff --git a/src/lib/config/devices.types.ts b/src/lib/config/devices.types.ts new file mode 100644 index 0000000..d960f7e --- /dev/null +++ b/src/lib/config/devices.types.ts @@ -0,0 +1,14 @@ +// +// ~~~ device config types +// + +// individual device configs +export interface DeviceConfig { + name: string, + mqtt: string +} + +// global device config +export default interface DevicesConfig { + [ index: string ]: DeviceConfig +} |
