@stryke/fs
Version:
A package containing various file system utilities that expand the functionality of NodeJs's built-in `fs` module.
41 lines (40 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.readJsonFile = readJsonFile;
exports.readJsonFileSync = readJsonFileSync;
exports.writeJsonFile = writeJsonFile;
exports.writeJsonFileSync = writeJsonFileSync;
var _stormJson = require("@stryke/json/storm-json");
var _isError = require("@stryke/type-checks/is-error");
var _readFile = require("./read-file.cjs");
var _writeFile = require("./write-file.cjs");
function readJsonFileSync(r, t) {
const n = (0, _readFile.readFileSync)(r);
t && (t.endsWithNewline = n.codePointAt(n.length - 1) === 10);
try {
return _stormJson.StormJSON.parseJson(n, t);
} catch (e) {
throw (0, _isError.isError)(e) ? (e.message = e.message.replace("JSON", r), e) : new Error(`Failed to parse JSON: ${r}`);
}
}
async function readJsonFile(r, t) {
const n = await (0, _readFile.readFile)(r);
t && (t.endsWithNewline = n.codePointAt(n.length - 1) === 10);
try {
return _stormJson.StormJSON.parseJson(n, t);
} catch (e) {
throw (0, _isError.isError)(e) ? (e.message = e.message.replace("JSON", r), e) : new Error(`Failed to parse JSON: ${r}`);
}
}
function writeJsonFileSync(r, t, n) {
const e = _stormJson.StormJSON.stringify(t, n);
return (0, _writeFile.writeFileSync)(r, n?.appendNewLine ? `${e}
` : e);
}
async function writeJsonFile(r, t, n) {
const e = _stormJson.StormJSON.stringify(t);
return (0, _writeFile.writeFile)(r, n?.appendNewLine ? `${e}
` : e);
}