UNPKG

orionsoft-react-scripts

Version:

Orionsoft Configuration and scripts for Create React App.

93 lines (70 loc) 2.54 kB
"use strict"; exports.__esModule = true; var _getIterator2 = require("babel-runtime/core-js/get-iterator"); var _getIterator3 = _interopRequireDefault(_getIterator2); exports.default = function (_ref) { var t = _ref.types; function hasSpread(node) { for (var _iterator = node.properties, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) { 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: { ObjectExpression: function ObjectExpression(path, file) { if (!hasSpread(path.node)) return; var useBuiltIns = file.opts.useBuiltIns || false; if (typeof useBuiltIns !== "boolean") { throw new Error("transform-object-rest-spread currently only accepts a boolean option for useBuiltIns (defaults to false)"); } var args = []; var props = []; function push() { if (!props.length) return; args.push(t.objectExpression(props)); props = []; } for (var _iterator2 = path.node.properties, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : (0, _getIterator3.default)(_iterator2);;) { 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([])); } var helper = useBuiltIns ? t.memberExpression(t.identifier("Object"), t.identifier("assign")) : file.addHelper("extends"); path.replaceWith(t.callExpression(helper, args)); } } }; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = exports["default"];