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 / 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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

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

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

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

var _util = require("util");

var writeFileAsync = (0, _util.promisify)(_fs.default.writeFile);
var 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
 */

var writeJsonFile = /*#__PURE__*/function () {
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(file, messages) {
    var content;
    return _regenerator.default.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            content = JSON.stringify(messages);

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

                return "".concat(currentPath, "/").concat(directory);
              });
            } catch (e) {// ignore
            }

            return _context.abrupt("return", writeFileAsync(file, content));

          case 3:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));

  return function writeJsonFile(_x, _x2) {
    return _ref.apply(this, arguments);
  };
}();
/**
 * Read a JSON file and parse the contents
 *
 * @param {string} file
 * @returns {Promise<object>}
 * @async
 */


exports.writeJsonFile = writeJsonFile;

var readJsonFile = /*#__PURE__*/function () {
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(file) {
    var content;
    return _regenerator.default.wrap(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            _context2.next = 2;
            return readFileAsync(file);

          case 2:
            content = _context2.sent;
            return _context2.abrupt("return", JSON.parse(content));

          case 4:
          case "end":
            return _context2.stop();
        }
      }
    }, _callee2);
  }));

  return function readJsonFile(_x3) {
    return _ref2.apply(this, arguments);
  };
}();
/**
 * Read OneSky resource configuration file, `.oneskyrc`
 *
 * @param {string} file
 * @returns {Promise<object>}
 * @async
 */


exports.readJsonFile = readJsonFile;

var getResourceConfiguration = /*#__PURE__*/function () {
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
    var file,
        _args3 = arguments;
    return _regenerator.default.wrap(function _callee3$(_context3) {
      while (1) {
        switch (_context3.prev = _context3.next) {
          case 0:
            file = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : "".concat(process.cwd(), "/.oneskyrc");
            return _context3.abrupt("return", readJsonFile(file));

          case 2:
          case "end":
            return _context3.stop();
        }
      }
    }, _callee3);
  }));

  return function getResourceConfiguration() {
    return _ref3.apply(this, arguments);
  };
}();

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