Repository URL to install this package:
|
Version:
6.1.0 ▾
|
"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