UNPKG

climate-plots-config

Version:
73 lines (64 loc) 2.43 kB
const fs = require('fs'); const merge = require('merge'); const normPath = require('path').join(__dirname, 'charts'); const { JSDOM } = require('jsdom'); const { window } = new JSDOM(''); const $ = require('jquery')(window); const language = { sv: require('../lang/sv/menu.json'), en: require('../lang/en/menu.json'), }; const par = require('./parse.config.json'); exports.preset = new Promise((resolve, reject) => { const struct = {}; fs.readdir(normPath, (err, FILES) => { Promise.all(FILES.filter((name) => name.includes('.json') && !name.includes('[BETA]')) .map((file) => { try { var f = {}; const full = require(`./charts/${file}`); const def = full.config.meta; Object.keys(def).forEach((station) => { const temp = {}; $.extend(true, temp, full); temp.type = temp.type.replace('[stationType]', station); if (!f[station]) f[station] = {}; const define = temp.config.meta[station]; const files = {}; files.ref = temp; struct[define.config] = require(`../${define.config}.json`); files.config = {}; $.extend(true, files.config, struct[define.config]); files.config.parse = {}; $.extend(true, files.config.parse, par[temp.type]); if (define.subset) { files.subset = require(`../${define.subset}.json`).subset; } files.set = require(`../${define.set}.json`); ['en', 'sv'].forEach((lang) => { files[lang] = require(`../lang/${lang}/${define.lang}.json`); const dref = files.ref.config.meta[station].data; files[lang].dataSource = { meta: require(`../lang/${lang}/dataSource.json`)[dref], }; files[lang].units = require(`../lang/${lang}/units`); files[lang].time = require(`../lang/${lang}/time.json`); files[lang].menu = language[lang]; }); f[station][file.replace('.json', '')] = files; }); return f; } catch (ERROR) { console.log(ERROR); console.log(file); // throw ERROR return f; } })).then((res) => { // resolve(res.reduce((x,y) => { // return merge(x,y); // })) resolve(res); }); }); });