Repository URL to install this package:
|
Version:
5.0.0-rc.11 ▾
|
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
var umd = require('../../node_modules/deepmerge/dist/umd.js');
var util = require('util');
var util__default = _interopDefault(util);
var index = require('../../node_modules/globby/index.js');
var index$1 = require('../../node_modules/@babel/core/lib/index.js');
var transformFile = util.promisify(index$1.default.transformFile);
/**
* Extract translations from source code
*
* @module @doodle/i18n/disty/onesky/extract
*/
/**
* Extract react-intl's `defineMessages` message definition from Javascript file by parsing the AST
*
* @param {String} file
* @returns {Promise<object>}
* @async
*/
var extractDefaultMessagesFromFile = /*#__PURE__*/function () {
var _ref = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(file) {
var _yield$transformFile, _yield$transformFile$, metadata, _metadata$reactIntl$, messages;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return transformFile(file, {
plugins: ['react-intl']
});
case 2:
_yield$transformFile = _context.sent;
_yield$transformFile$ = _yield$transformFile.metadata;
metadata = _yield$transformFile$ === void 0 ? {} : _yield$transformFile$;
_metadata$reactIntl$ = metadata['react-intl'].messages, messages = _metadata$reactIntl$ === void 0 ? [] : _metadata$reactIntl$;
return _context.abrupt("return", messages.reduce(function (extracted, message) {
extracted[message.id] = message.defaultMessage;
return extracted;
}, {}));
case 7:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function extractDefaultMessagesFromFile(_x) {
return _ref.apply(this, arguments);
};
}();
/**
* Extract react-intl's `defineMessages` message definitions from source files
*
* @param {string} sourcePattern
* @returns {Promise<object>}
* @async
*/
var extractDefaultMessages = /*#__PURE__*/function () {
var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(sourcePattern) {
var files, messagesArray;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return index.default("".concat(sourcePattern));
case 2:
files = _context2.sent;
_context2.next = 5;
return Promise.all(files.map(extractDefaultMessagesFromFile));
case 5:
messagesArray = _context2.sent;
return _context2.abrupt("return", umd.default.all(messagesArray));
case 7:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function extractDefaultMessages(_x2) {
return _ref2.apply(this, arguments);
};
}();
exports.extractDefaultMessages = extractDefaultMessages;
exports.extractDefaultMessagesFromFile = extractDefaultMessagesFromFile;
//# sourceMappingURL=extract.js.map