From 91dec87c2f0bc218160915e43ca27ce49105939d Mon Sep 17 00:00:00 2001 From: Autumn Date: Mon, 11 May 2026 17:59:12 +0100 Subject: [config] added basic device config loader --- src/lib/config/devices.ts | 32 ++++++++++++++++++++++++++++++++ src/lib/config/devices.types.ts | 14 ++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 src/lib/config/devices.ts create mode 100644 src/lib/config/devices.types.ts (limited to 'src') 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 +} -- cgit v1.3