Files
is-a-dev/utils/get-domain.js
T
2024-07-29 08:34:45 +08:00

28 lines
718 B
JavaScript

const fs = require("fs");
const path = require("path");
const R = require("ramda");
const { DOMAINS_PATH } = require("./constants");
const toDomain = (str) => path.join(DOMAINS_PATH, str);
const parseDomain = (name) => (str) => {
try {
return JSON.parse(str);
} catch (e) {
throw new Error(`Error: Could not parse ${name} => ${str}`);
}
};
const toDomainData = (name) =>
R.compose(parseDomain(name), R.toString, fs.readFileSync, toDomain)(name);
const getDomains = () =>
fs.promises.readdir(DOMAINS_PATH, {}).then(
R.map((name) => ({
...toDomainData(name),
name: name.replace(/\.json$/, ""),
})),
);
module.exports = { getDomains };