b744dcd61d344e09ce22c3421b5249a92cad7ba1f5f6ff07894252e8db6645d7dcc23ec4af4ffec486f128f8409da3a0a9191fef8e332c7e19278acc80e349 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. exports.__esModule = true;
  3. var _getIterator2 = require("babel-runtime/core-js/get-iterator");
  4. var _getIterator3 = _interopRequireDefault(_getIterator2);
  5. exports.default = function (decorators, scope) {
  6. for (var _iterator = decorators, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
  7. var _ref;
  8. if (_isArray) {
  9. if (_i >= _iterator.length) break;
  10. _ref = _iterator[_i++];
  11. } else {
  12. _i = _iterator.next();
  13. if (_i.done) break;
  14. _ref = _i.value;
  15. }
  16. var decorator = _ref;
  17. var expression = decorator.expression;
  18. if (!t.isMemberExpression(expression)) continue;
  19. var temp = scope.maybeGenerateMemoised(expression.object);
  20. var ref = void 0;
  21. var nodes = [];
  22. if (temp) {
  23. ref = temp;
  24. nodes.push(t.assignmentExpression("=", temp, expression.object));
  25. } else {
  26. ref = expression.object;
  27. }
  28. nodes.push(t.callExpression(t.memberExpression(t.memberExpression(ref, expression.property, expression.computed), t.identifier("bind")), [ref]));
  29. if (nodes.length === 1) {
  30. decorator.expression = nodes[0];
  31. } else {
  32. decorator.expression = t.sequenceExpression(nodes);
  33. }
  34. }
  35. return decorators;
  36. };
  37. var _babelTypes = require("babel-types");
  38. var t = _interopRequireWildcard(_babelTypes);
  39. function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
  40. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  41. module.exports = exports["default"];