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 / main.js
Size: Mime:
"use strict";

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

Object.defineProperty(exports, "__esModule", {
  value: true
});
Object.defineProperty(exports, "readJsonFile", {
  enumerable: true,
  get: function get() {
    return _utils.readJsonFile;
  }
});
Object.defineProperty(exports, "writeJsonFile", {
  enumerable: true,
  get: function get() {
    return _utils.writeJsonFile;
  }
});
Object.defineProperty(exports, "flatten", {
  enumerable: true,
  get: function get() {
    return _transform.flatten;
  }
});
Object.defineProperty(exports, "unflatten", {
  enumerable: true,
  get: function get() {
    return _transform.unflatten;
  }
});
exports.getConfig = exports.downloadMessages = exports.downloadAllTranslations = exports.uploadMessages = exports.uploadBaseMessagesFromSource = exports.uploadAllTranslations = exports.updateTranslations = void 0;

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

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

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

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

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

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

var _utils = require("./utils");

var _transform = require("./transform");

var _extract = require("./extract");

var _api = require("./api");

var _translations = require("./translations");

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }

/**
 * Main module for managing translations
 *
 * @module @doodle/i18n/disty/onesky
 */

/**
 * Helper that filters out falsy fields of an object
 *
 * @param {object} obj
 * @returns {object}
 * @private
 */
var filterFalsyFields = function filterFalsyFields(obj) {
  return Object.entries(obj).filter(function (_ref) {
    var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
        _ = _ref2[0],
        value = _ref2[1];

    return value;
  }).reduce(function (result, _ref3) {
    var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
        key = _ref4[0],
        value = _ref4[1];

    return Object.assign(result, (0, _defineProperty2.default)({}, key, value));
  }, {});
};
/**
 * Legacy credentials object interface
 * @typedef {object} Credentials
 * @property {string} key
 * @property {string} secret
 */

/**
 * Get combined configuration from parameters, .oneskyrc and environment variables
 *
 * @param {object} options
 * @param {Credentials} options.credentials
 * @param {string} options.projectId
 * @param {string[]} options.dependentProjectIds
 * @returns {Promise<object>}
 * @async
 */


var getConfig = /*#__PURE__*/function () {
  var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
    var _ref5,
        projectId,
        dependentProjectIds,
        _ref5$credentials,
        credentials,
        options,
        resourceConfiguration,
        projectConfig,
        _args = arguments;

    return _regenerator.default.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            _ref5 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
            projectId = _args.length > 1 ? _args[1] : undefined;
            dependentProjectIds = _args.length > 2 ? _args[2] : undefined;
            _ref5$credentials = _ref5.credentials, credentials = _ref5$credentials === void 0 ? {} : _ref5$credentials, options = (0, _objectWithoutProperties2.default)(_ref5, ["credentials"]);
            _context.next = 6;
            return (0, _utils.getResourceConfiguration)();

          case 6:
            resourceConfiguration = _context.sent;
            projectConfig = filterFalsyFields({
              projectId: projectId,
              dependentProjectIds: dependentProjectIds
            });
            return _context.abrupt("return", _objectSpread(_objectSpread(_objectSpread(_objectSpread({
              i18nPath: './i18n',
              srcPath: './src'
            }, resourceConfiguration), options), projectConfig), {}, {
              credentials: {
                secret: process.env.ONESKY_SECRET_KEY || credentials.secret,
                apiKey: process.env.ONESKY_PUBLIC_KEY || credentials.key
              }
            }));

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

  return function getConfig() {
    return _ref6.apply(this, arguments);
  };
}();
/**
 * Download all translation files for all defined languages of multiple OneSky projects
 *
 * @param {object} options
 * @param {Credentials} options.credentials
 * @param {string} options.projectId
 * @param {string[]} options.dependentProjectIds
 * @returns {Promise}
 * @async
 */


exports.getConfig = getConfig;

var downloadAllTranslations = /*#__PURE__*/function () {
  var _ref7 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
    var config;
    return _regenerator.default.wrap(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            _context2.next = 2;
            return getConfig(options);

          case 2:
            config = _context2.sent;
            _context2.next = 5;
            return (0, _translations.downloadMergedTranslationFiles)([config.projectId].concat((0, _toConsumableArray2.default)(config.dependentProjectIds)), config.i18nPath, config.credentials);

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

  return function downloadAllTranslations(_x) {
    return _ref7.apply(this, arguments);
  };
}();
/**
 * Upload directly the translation from the default messages defined in the source code
 *
 * @param {object} options
 * @param {Credentials} options.credentials
 * @param {string} options.projectId
 * @param {string[]} options.dependentProjectIds
 * @returns {Promise}
 * @async
 */


exports.downloadMessages = exports.downloadAllTranslations = downloadAllTranslations;

var uploadBaseMessagesFromSource = /*#__PURE__*/function () {
  var _ref8 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(options) {
    var config, srcPath, projectId, credentials, i18nPath, fileName, keepStrings, format, translationOptions, syncOptions, sourceMessages;
    return _regenerator.default.wrap(function _callee3$(_context3) {
      while (1) {
        switch (_context3.prev = _context3.next) {
          case 0:
            _context3.next = 2;
            return getConfig(options);

          case 2:
            config = _context3.sent;
            srcPath = config.srcPath, projectId = config.projectId, credentials = config.credentials, i18nPath = config.i18nPath, fileName = config.fileName, keepStrings = config.keepStrings, format = config.format;
            translationOptions = filterFalsyFields({
              language: 'en',
              projectId: projectId,
              fileName: fileName
            });
            syncOptions = filterFalsyFields({
              keepStrings: keepStrings,
              format: format
            });
            _context3.next = 8;
            return (0, _extract.extractDefaultMessages)("".concat(srcPath, "/**/+(messages|*.messages).js"));

          case 8:
            sourceMessages = _context3.sent;
            _context3.next = 11;
            return (0, _api.uploadProjectTranslation)(translationOptions, sourceMessages, credentials, syncOptions);

          case 11:
            _context3.next = 13;
            return (0, _utils.writeJsonFile)("".concat(i18nPath, "/onesky/").concat(projectId, "/en.json"), sourceMessages);

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

  return function uploadBaseMessagesFromSource(_x2) {
    return _ref8.apply(this, arguments);
  };
}();
/**
 * Update translations files
 *
 * @param {object} options
 * @param {Credentials} options.credentials
 * @param {string} options.projectId
 * @param {string} options.srcPath
 * @param {string} options.i18nPath
 * @returns {Promise}
 * @async
 */


exports.uploadMessages = exports.uploadBaseMessagesFromSource = uploadBaseMessagesFromSource;

var updateTranslations = /*#__PURE__*/function () {
  var _ref9 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(options) {
    var config;
    return _regenerator.default.wrap(function _callee4$(_context4) {
      while (1) {
        switch (_context4.prev = _context4.next) {
          case 0:
            _context4.next = 2;
            return getConfig(options);

          case 2:
            config = _context4.sent;
            _context4.next = 5;
            return (0, _translations.updateTranslationFiles)(config.projectId, config.credentials, "".concat(config.srcPath, "/**/messages.js"), config.i18nPath, config.includeValues);

          case 5:
          case "end":
            return _context4.stop();
        }
      }
    }, _callee4);
  }));

  return function updateTranslations(_x3) {
    return _ref9.apply(this, arguments);
  };
}();
/**
 * Upload all translations files
 *
 * @param {object} options
 * @param {Credentials} options.credentials
 * @param {string} options.projectId
 * @param {string} options.srcPath
 * @param {string} options.i18nPath
 * @returns {Promise}
 * @async
 */


exports.updateTranslations = updateTranslations;

var uploadAllTranslations = /*#__PURE__*/function () {
  var _ref10 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(options) {
    var _yield$getConfig, i18nPath, projectId, fileName, credentials, keepStrings, format;

    return _regenerator.default.wrap(function _callee5$(_context5) {
      while (1) {
        switch (_context5.prev = _context5.next) {
          case 0:
            _context5.next = 2;
            return getConfig(options);

          case 2:
            _yield$getConfig = _context5.sent;
            i18nPath = _yield$getConfig.i18nPath;
            projectId = _yield$getConfig.projectId;
            fileName = _yield$getConfig.fileName;
            credentials = _yield$getConfig.credentials;
            keepStrings = _yield$getConfig.keepStrings;
            format = _yield$getConfig.format;
            _context5.next = 11;
            return (0, _translations.uploadTranslationFiles)(i18nPath, filterFalsyFields({
              projectId: projectId,
              fileName: fileName
            }), credentials, filterFalsyFields({
              keepStrings: keepStrings,
              format: format
            }));

          case 11:
          case "end":
            return _context5.stop();
        }
      }
    }, _callee5);
  }));

  return function uploadAllTranslations(_x4) {
    return _ref10.apply(this, arguments);
  };
}();

exports.uploadAllTranslations = uploadAllTranslations;
//# sourceMappingURL=main.js.map