attranslate
Version:
Semi-automated Text Translator for Websites and Apps
38 lines (37 loc) • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.readRawJson = exports.readManagedJson = exports.writeRawJson = exports.writeManagedJson = void 0;
const util_1 = require("../../util/util");
const managed_utf8_1 = require("./managed-utf8");
function stringifyJson(obj) {
return JSON.stringify(obj, null, 2);
}
function writeManagedJson(args) {
const jsonString = stringifyJson(args.object);
return (0, managed_utf8_1.writeManagedUtf8)({
path: args.path,
utf8: jsonString,
});
}
exports.writeManagedJson = writeManagedJson;
function writeRawJson(args) {
(0, util_1.writeUtf8File)(args.path, stringifyJson(args.object) + "\n");
}
exports.writeRawJson = writeRawJson;
function readManagedJson(path) {
const { object, jsonString } = readRawJson(path);
(0, managed_utf8_1.insertUtf8Cache)({ path, utf8: jsonString });
return object;
}
exports.readManagedJson = readManagedJson;
function readRawJson(path) {
try {
const jsonString = (0, util_1.readUtf8File)(path);
return { object: JSON.parse(jsonString), jsonString };
}
catch (e) {
console.error(e);
(0, util_1.logFatal)(`Failed to parse ${(0, util_1.getDebugPath)(path)}.`);
}
}
exports.readRawJson = readRawJson;