Repository URL to install this package:
|
Version:
5.0.0-rc.15 ▾
|
"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