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

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

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.getProjectMessagesByLanguage = exports.uploadProjectTranslation = exports.getProjectLanguages = void 0;

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

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

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

var _oneskyUtils = _interopRequireDefault(require("@brainly/onesky-utils"));

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; }

/**
 * Interact with the OneSky API
 *
 * @module @doodle/i18n/disty/onesky/api
 */

/**
 * OneSky credentials
 *
 * @typedef {object} OneSkyCredentials
 * @property {string} secret
 * @property {string} apiKey
 */

/**
 * OneSky Translation
 * @typedef {object} OneSkyTranslationOptions
 * @property {string} projectId
 * @property {string} language
 * @property {string} fileName
 */

/**
 * OneSky translation upload options
 *
 * @typedef {object} OneSkySyncOptions
 * @property {string} format
 * @property {string} keepStrings
 */

/**
 * OneSky Language object
 *
 * @typedef {object} OneSkyLanguage
 * @property {string} code language code, i.e. en-US or de
 * @property {string} english_name i.e. English (United States)
 * @property {string} local_name i.e. English (United States)
 * @property {string} locale i.e. en
 * @property {string} region i.e. US
 * @property {bool} is_base_language
 * @property {bool} is_ready_to_publish
 * @property {string} translation_progress i.e. 100%
 * @property {string} uploaded_at i.e. 2013-10-07T15:27:10+0000
 * @property {number} uploaded_at_timestamp i.e. 1381159630
 */

/**
 * Retrieve the defined languages in the OneSky project
 *
 * @param {string} projectId
 * @param {OneSkyCredentials} credentials
 * @returns {Promise<OneSkyLanguage>}
 * @async
 */
var getProjectLanguages = /*#__PURE__*/function () {
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(projectId, credentials) {
    var result, _JSON$parse, data;

    return _regenerator.default.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            _context.next = 2;
            return _oneskyUtils.default.getLanguages(_objectSpread({
              projectId: projectId
            }, credentials));

          case 2:
            result = _context.sent;

            if (!result) {
              _context.next = 6;
              break;
            }

            _JSON$parse = JSON.parse(result), data = _JSON$parse.data;
            return _context.abrupt("return", data);

          case 6:
            return _context.abrupt("return", []);

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

  return function getProjectLanguages(_x, _x2) {
    return _ref.apply(this, arguments);
  };
}();
/**
 * Upload messages to a OneSky project for one language
 *
 * @param {OneSkyTranslationOptions} projectTranslation
 * @param {object} messages
 * @param {OneSkyCredentials} credentials
 * @param {OneSkySyncOptions} syncOptions
 * @returns {Promise}
 * @async
 */


exports.getProjectLanguages = getProjectLanguages;

var uploadProjectTranslation = /*#__PURE__*/function () {
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(projectTranslation, messages, credentials, syncOptions) {
    return _regenerator.default.wrap(function _callee2$(_context2) {
      while (1) {
        switch (_context2.prev = _context2.next) {
          case 0:
            return _context2.abrupt("return", _oneskyUtils.default.postFile(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
              language: 'en',
              fileName: 'translations.json'
            }, projectTranslation), {}, {
              format: 'HIERARCHICAL_JSON',
              keepStrings: true
            }, syncOptions), credentials), {}, {
              content: JSON.stringify(messages)
            })));

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

  return function uploadProjectTranslation(_x3, _x4, _x5, _x6) {
    return _ref2.apply(this, arguments);
  };
}();
/**
 * Download messages from a OneSky project by one language
 *
 * @param {OneSkyTranslationOptions} projectTranslationOptions
 * @param {OneSkyCredentials} credentials
 * @returns {Promise<object>}
 * @async
 */


exports.uploadProjectTranslation = uploadProjectTranslation;

var getProjectMessagesByLanguage = /*#__PURE__*/function () {
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(projectTranslationOptions, credentials) {
    var content;
    return _regenerator.default.wrap(function _callee3$(_context3) {
      while (1) {
        switch (_context3.prev = _context3.next) {
          case 0:
            _context3.next = 2;
            return _oneskyUtils.default.getFile(_objectSpread(_objectSpread({
              language: 'en',
              fileName: 'translations.json'
            }, projectTranslationOptions), credentials));

          case 2:
            content = _context3.sent;

            if (!content) {
              _context3.next = 5;
              break;
            }

            return _context3.abrupt("return", JSON.parse(content));

          case 5:
            return _context3.abrupt("return", {});

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

  return function getProjectMessagesByLanguage(_x7, _x8) {
    return _ref3.apply(this, arguments);
  };
}();

exports.getProjectMessagesByLanguage = getProjectMessagesByLanguage;
//# sourceMappingURL=api.js.map