utils cleanup, initial static generation

This commit is contained in:
Ben Phelps 2022-09-26 12:04:37 +03:00
parent ec8700f3e9
commit e1a3a82f75
86 changed files with 279 additions and 261 deletions

View file

@ -1,25 +1,5 @@
import { promises as fs } from "fs";
import path from "path";
import yaml from "js-yaml";
import checkAndCopyConfig from "utils/config";
import { bookmarksResponse } from "utils/config/api-response";
export default async function handler(req, res) {
checkAndCopyConfig("bookmarks.yaml");
const bookmarksYaml = path.join(process.cwd(), "config", "bookmarks.yaml");
const fileContents = await fs.readFile(bookmarksYaml, "utf8");
const bookmarks = yaml.load(fileContents);
// map easy to write YAML objects into easy to consume JS arrays
const bookmarksArray = bookmarks.map((group) => ({
name: Object.keys(group)[0],
bookmarks: group[Object.keys(group)[0]].map((entries) => ({
name: Object.keys(entries)[0],
...entries[Object.keys(entries)[0]][0],
})),
}));
res.send(bookmarksArray);
res.send(await bookmarksResponse());
}

View file

@ -2,7 +2,7 @@ import https from "https";
import getRawBody from "raw-body";
import { httpRequest, httpsRequest } from "utils/http";
import { httpRequest, httpsRequest } from "utils/proxy/http";
export const config = {
api: {

View file

@ -1,43 +1,5 @@
/* eslint-disable no-console */
import { servicesFromConfig, servicesFromDocker, cleanServiceGroups } from "utils/service-helpers";
import { servicesResponse } from "utils/config/api-response";
export default async function handler(req, res) {
let discoveredServices;
let configuredServices;
try {
discoveredServices = cleanServiceGroups(await servicesFromDocker());
} catch (e) {
console.error("Failed to discover services, please check docker.yaml for errors or remove example entries.");
console.error(e);
discoveredServices = [];
}
try {
configuredServices = cleanServiceGroups(await servicesFromConfig());
} catch (e) {
console.error("Failed to load services.yaml, please check for errors");
console.error(e);
configuredServices = [];
}
const mergedGroupsNames = [
...new Set([discoveredServices.map((group) => group.name), configuredServices.map((group) => group.name)].flat()),
];
const mergedGroups = [];
mergedGroupsNames.forEach((groupName) => {
const discoveredGroup = discoveredServices.find((group) => group.name === groupName) || { services: [] };
const configuredGroup = configuredServices.find((group) => group.name === groupName) || { services: [] };
const mergedGroup = {
name: groupName,
services: [...discoveredGroup.services, ...configuredGroup.services].filter((service) => service),
};
mergedGroups.push(mergedGroup);
});
res.send(mergedGroups);
res.send(await servicesResponse());
}

View file

@ -1,6 +1,6 @@
import { formatApiCall } from "utils/api-helpers";
import { formatApiCall } from "utils/proxy/api-helpers";
import createLogger from "utils/logger";
import genericProxyHandler from "utils/proxies/generic";
import genericProxyHandler from "utils/proxy/handlers/generic";
import widgets from "widgets/widgets";
const logger = createLogger("servicesProxy");

View file

@ -1,22 +1,5 @@
import { promises as fs } from "fs";
import path from "path";
import yaml from "js-yaml";
import checkAndCopyConfig from "utils/config";
import { widgetsResponse } from "utils/config/api-response";
export default async function handler(req, res) {
checkAndCopyConfig("widgets.yaml");
const widgetsYaml = path.join(process.cwd(), "config", "widgets.yaml");
const fileContents = await fs.readFile(widgetsYaml, "utf8");
const widgets = yaml.load(fileContents);
// map easy to write YAML objects into easy to consume JS arrays
const widgetsArray = widgets.map((group) => ({
type: Object.keys(group)[0],
options: { ...group[Object.keys(group)[0]] },
}));
res.send(widgetsArray);
res.send(await widgetsResponse());
}

View file

@ -1,4 +1,4 @@
import cachedFetch from "utils/cached-fetch";
import cachedFetch from "utils/proxy/cached-fetch";
import { getSettings } from "utils/config";
export default async function handler(req, res) {

View file

@ -1,4 +1,4 @@
import cachedFetch from "utils/cached-fetch";
import cachedFetch from "utils/proxy/cached-fetch";
import { getSettings } from "utils/config";
export default async function handler(req, res) {