.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / flat-cache / src / utils.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/flat-cache/src/utils.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/flat-cache/src/utils.js
new file mode 100644 (file)
index 0000000..05f5ac3
--- /dev/null
@@ -0,0 +1,44 @@
+var fs = require('fs');
+var path = require('path');
+var flatted = require('flatted');
+
+module.exports = {
+  tryParse: function (filePath, defaultValue) {
+    var result;
+    try {
+      result = this.readJSON(filePath);
+    } catch (ex) {
+      result = defaultValue;
+    }
+    return result;
+  },
+
+  /**
+   * Read json file synchronously using flatted
+   *
+   * @method readJSON
+   * @param  {String} filePath Json filepath
+   * @returns {*} parse result
+   */
+  readJSON: function (filePath) {
+    return flatted.parse(
+      fs.readFileSync(filePath, {
+        encoding: 'utf8',
+      })
+    );
+  },
+
+  /**
+   * Write json file synchronously using circular-json
+   *
+   * @method writeJSON
+   * @param  {String} filePath Json filepath
+   * @param  {*} data Object to serialize
+   */
+  writeJSON: function (filePath, data) {
+    fs.mkdirSync(path.dirname(filePath), {
+      recursive: true,
+    });
+    fs.writeFileSync(filePath, flatted.stringify(data));
+  },
+};