homepage/src/utils/service-helpers.js

31 lines
968 B
JavaScript
Raw Normal View History

import { promises as fs } from "fs";
import path from "path";
2022-09-07 16:53:24 +03:00
import yaml from "js-yaml";
2022-09-07 16:53:24 +03:00
export default async function getServiceWidget(group, service) {
const servicesYaml = path.join(process.cwd(), "config", "services.yaml");
const fileContents = await fs.readFile(servicesYaml, "utf8");
const services = yaml.load(fileContents);
// map easy to write YAML objects into easy to consume JS arrays
2022-09-07 16:53:24 +03:00
const servicesArray = services.map((servicesGroup) => ({
name: Object.keys(servicesGroup)[0],
services: servicesGroup[Object.keys(servicesGroup)[0]].map((entries) => ({
name: Object.keys(entries)[0],
...entries[Object.keys(entries)[0]],
})),
}));
const serviceGroup = servicesArray.find((g) => g.name === group);
if (serviceGroup) {
const serviceEntry = serviceGroup.services.find((s) => s.name === service);
if (serviceEntry) {
const { widget } = serviceEntry;
return widget;
}
}
return false;
}