diff options
Diffstat (limited to 'src/lib/config')
| -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 +} |
