minecraft-utils-shared
Version:
Shared utils for Minecraft Bedrock / Forge development related utilities.
69 lines (65 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _chalk = _interopRequireDefault(require("chalk"));
var _fs = _interopRequireDefault(require("fs"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @file Minecraft Utils Shared - JSON file
* @license Apache-2.0
* @author Markus@Bordihn.de (Markus Bordihn)
*/
/**
* @param {string} file
* @returns
*/
const read = file => {
if (!_fs.default.existsSync(file)) {
console.error(_chalk.default.red('Unable to find JSON file', file));
return;
}
const fileContent = _fs.default.readFileSync(file);
try {
return JSON.parse(fileContent);
} catch (error) {
console.error(_chalk.default.red('Unable to parse JSON file', file, ':', error));
}
};
/**
* @param {string} file
* @param {Object} content
* @param {Object} options
*/
const write = (file, content = {}, options = {}) => {
if (_fs.default.existsSync(file)) {
if (!options.overwrite) {
console.error(_chalk.default.red('JSON file already exists under', file));
return;
} else {
console.warn(_chalk.default.orange('Overwriting existing json file', file));
}
}
_fs.default.writeFileSync(file, JSON.stringify(content, null, 2));
};
/**
* @param {string} file
* @param {Object} new_content
*/
const add = (file, new_content) => {
const existingContent = read(file);
const newContent = {
...existingContent,
...new_content
};
write(file, newContent, {
overwrite: true
});
};
var _default = {
add,
read,
write
};
exports.default = _default;