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 / 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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

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
 */
const getProjectLanguages = async (projectId, credentials) => {
  const result = await _oneskyUtils.default.getLanguages(_objectSpread({
    projectId
  }, credentials));

  if (result) {
    const {
      data
    } = JSON.parse(result);
    return data;
  }

  return [];
};
/**
 * 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;

const uploadProjectTranslation = async (projectTranslation, messages, credentials, syncOptions) => _oneskyUtils.default.postFile(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
  language: 'en',
  fileName: 'translations.json'
}, projectTranslation), {}, {
  format: 'HIERARCHICAL_JSON',
  keepStrings: true
}, syncOptions), credentials), {}, {
  content: JSON.stringify(messages)
}));
/**
 * Download messages from a OneSky project by one language
 *
 * @param {OneSkyTranslationOptions} projectTranslationOptions
 * @param {OneSkyCredentials} credentials
 * @returns {Promise<object>}
 * @async
 */


exports.uploadProjectTranslation = uploadProjectTranslation;

const getProjectMessagesByLanguage = async (projectTranslationOptions, credentials) => {
  const content = await _oneskyUtils.default.getFile(_objectSpread(_objectSpread({
    language: 'en',
    fileName: 'translations.json'
  }, projectTranslationOptions), credentials));

  if (content) {
    return JSON.parse(content);
  }

  return {};
};

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