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 / cjs / src / onesky / extract.js
Size: Mime:
'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