Spaces:
Paused
Paused
| 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 }; | |