123456789101112131415161718192021222324252627282930313233343536373839404142 |
- const fs = require('fs');
- const path = require('path');
- const flatted = require('flatted');
- function tryParse(filePath, defaultValue) {
- let result;
- try {
- result = readJSON(filePath);
- } catch (ex) {
- result = defaultValue;
- }
- return result;
- }
- /**
- * Read json file synchronously using flatted
- *
- * @param {String} filePath Json filepath
- * @returns {*} parse result
- */
- function readJSON(filePath) {
- return flatted.parse(
- fs.readFileSync(filePath, {
- encoding: 'utf8',
- })
- );
- }
- /**
- * Write json file synchronously using circular-json
- *
- * @param {String} filePath Json filepath
- * @param {*} data Object to serialize
- */
- function writeJSON(filePath, data) {
- fs.mkdirSync(path.dirname(filePath), {
- recursive: true,
- });
- fs.writeFileSync(filePath, flatted.stringify(data));
- }
- module.exports = { tryParse, readJSON, writeJSON };
|