UNPKG

intradoc

Version:

In-place document content replacer CLI utility.

76 lines (72 loc) 1.98 kB
'use strict'; var node_path = require('node:path'); var json5 = require('json5'); var yaml = require('yaml'); var index = require('../utils/index.js'); const loadData = async (options) => { const cwd = options.cwd; let loadedData = {}; let numDataSources = 0; for await (const data of options.data) { const path = node_path.join(cwd, data); if (!await index.fileExists(path)) { const error = new Error(`File "${path}" doesn't exist.`); error.$metadata = { cwd, path }; throw error; } const { extension, content } = await index.loadFile(path); const $metadata = { cwd, path, extension, content }; let parsedObject = {}; let error = false; switch (extension) { case 'json': case 'json5': try { parsedObject = json5.parse(content); } catch (e) { error = e; } break; case 'yml': case 'yaml': try { parsedObject = yaml.parse(content, { logLevel: 'error' }); } catch (e) { error = e; } break; } if (error !== false) { const err = new Error(`File "${path}" error.`); err.$metadata = { ...$metadata, error }; throw err; } loadedData = { ...loadedData, ...parsedObject }; numDataSources++; } return { data: loadedData, numKeys: Object.keys(loadedData).length, numDataSources }; }; exports.loadData = loadData; //# sourceMappingURL=loadData.js.map