1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*istanbul ignore next*/"use strict";
- exports.__esModule = true;
- var _getIterator2 = require("babel-runtime/core-js/get-iterator");
- var _getIterator3 = _interopRequireDefault(_getIterator2);
- exports.default = function ( /*istanbul ignore next*/_ref) {
- /*istanbul ignore next*/var t = _ref.types;
- function hasSpread(node) {
- for ( /*istanbul ignore next*/var _iterator = node.properties, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
- /*istanbul ignore next*/
- var _ref2;
- if (_isArray) {
- if (_i >= _iterator.length) break;
- _ref2 = _iterator[_i++];
- } else {
- _i = _iterator.next();
- if (_i.done) break;
- _ref2 = _i.value;
- }
- var prop = _ref2;
- if (t.isSpreadProperty(prop)) {
- return true;
- }
- }
- return false;
- }
- return {
- inherits: require("babel-plugin-syntax-object-rest-spread"),
- visitor: { /*istanbul ignore next*/
- ObjectExpression: function ObjectExpression(path, file) {
- if (!hasSpread(path.node)) return;
- var args = [];
- var props = [];
- function push() {
- if (!props.length) return;
- args.push(t.objectExpression(props));
- props = [];
- }
- for ( /*istanbul ignore next*/var _iterator2 = path.node.properties, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) {
- /*istanbul ignore next*/
- var _ref3;
- if (_isArray2) {
- if (_i2 >= _iterator2.length) break;
- _ref3 = _iterator2[_i2++];
- } else {
- _i2 = _iterator2.next();
- if (_i2.done) break;
- _ref3 = _i2.value;
- }
- var prop = _ref3;
- if (t.isSpreadProperty(prop)) {
- push();
- args.push(prop.argument);
- } else {
- props.push(prop);
- }
- }
- push();
- if (!t.isObjectExpression(args[0])) {
- args.unshift(t.objectExpression([]));
- }
- path.replaceWith(t.callExpression(file.addHelper("extends"), args));
- }
- }
- };
- };
- /*istanbul ignore next*/
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- module.exports = exports["default"];
|