Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/i18n / dist / onesky / utils.js
Size: Mime:
"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getResourceConfiguration = exports.readJsonFile = exports.writeJsonFile = void 0;

var _fs = _interopRequireDefault(require("fs"));

var _path = _interopRequireDefault(require("path"));

var _util = require("util");

const writeFileAsync = (0, _util.promisify)(_fs.default.writeFile);
const readFileAsync = (0, _util.promisify)(_fs.default.readFile);
/**
 * File utilities
 *
 * @module @doodle/i18n/onesky/dist/utils
 */

/**
 * Write a JSON object to a file
 *
 * @param {String} file
 * @param {object} messages
 * @returns {Promise}
 * @async
 */

const writeJsonFile = async (file, messages) => {
  const content = JSON.stringify(messages);

  try {
    _path.default.dirname(file).split('/').reduce((currentPath, directory) => {
      if (!_fs.default.existsSync(currentPath)) {
        _fs.default.mkdirSync(currentPath);
      }

      return `${currentPath}/${directory}`;
    });
  } catch (e) {// ignore
  }

  return writeFileAsync(file, content);
};
/**
 * Read a JSON file and parse the contents
 *
 * @param {string} file
 * @returns {Promise<object>}
 * @async
 */


exports.writeJsonFile = writeJsonFile;

const readJsonFile = async file => {
  const content = await readFileAsync(file);
  return JSON.parse(content);
};
/**
 * Read OneSky resource configuration file, `.oneskyrc`
 *
 * @param {string} file
 * @returns {Promise<object>}
 * @async
 */


exports.readJsonFile = readJsonFile;

const getResourceConfiguration = async (file = `${process.cwd()}/.oneskyrc`) => readJsonFile(file);

exports.getResourceConfiguration = getResourceConfiguration;
//# sourceMappingURL=utils.js.map