Files
is-a-dev/utils/get-domain.js
T
2022-01-18 23:02:40 +05:30

23 lines
639 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: Cant 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};