diff options
Diffstat (limited to 'node_modules/@babel/plugin-proposal-object-rest-spread')
3 files changed, 0 insertions, 531 deletions
diff --git a/node_modules/@babel/plugin-proposal-object-rest-spread/README.md b/node_modules/@babel/plugin-proposal-object-rest-spread/README.md deleted file mode 100644 index 9c1b785b..00000000 --- a/node_modules/@babel/plugin-proposal-object-rest-spread/README.md +++ /dev/null @@ -1,105 +0,0 @@ -# @babel/plugin-proposal-object-rest-spread - -> This plugin allows Babel to transform rest properties for object destructuring assignment and spread properties for object literals. - -## Example - -### Rest Properties - -```js -let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 }; -console.log(x); // 1 -console.log(y); // 2 -console.log(z); // { a: 3, b: 4 } -``` - -### Spread Properties - -```js -let n = { x, y, ...z }; -console.log(n); // { x: 1, y: 2, a: 3, b: 4 } -``` - -## Installation - -```sh -npm install --save-dev @babel/plugin-proposal-object-rest-spread -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["@babel/plugin-proposal-object-rest-spread"] -} -``` - -### Via CLI - -```sh -babel --plugins @babel/plugin-proposal-object-rest-spread script.js -``` - -### Via Node API - -```javascript -require("@babel/core").transform("code", { - plugins: ["@babel/plugin-proposal-object-rest-spread"] -}); -``` - -## Options - -By default, this plugin will produce spec compliant code by using Babel's `objectSpread` helper. - -### `loose` - -`boolean`, defaults to `false`. - -Enabling this option will use Babel's `extends` helper, which is basically the same as `Object.assign` (see `useBuiltIns` below to use it directly). - -:warning: Please keep in mind that even if they're almost equivalent, there's an important difference between spread and `Object.assign`: **spread _defines_ new properties, while `Object.assign()` _sets_ them**, so using this mode might produce unexpected results in some cases. - -For detailed information please check out [Spread VS. Object.assign](http://2ality.com/2016/10/rest-spread-properties.html#spreading-objects-versus-objectassign) and [Assigning VS. defining properties](http://exploringjs.com/es6/ch_oop-besides-classes.html#sec_assigning-vs-defining-properties). - - -### `useBuiltIns` - -`boolean`, defaults to `false`. - -Enabling this option will use `Object.assign` directly instead of the Babel's `extends` helper. - -##### Example - -**.babelrc** - -```json -{ - "plugins": [ - ["@babel/plugin-proposal-object-rest-spread", { "loose": true, "useBuiltIns": true }] - ] -} -``` - -**In** - -```js -z = { x, ...y }; -``` - -**Out** - -```js -z = Object.assign({ x }, y); -``` - -## References - -* [Proposal: Object Rest/Spread Properties for ECMAScript](https://github.com/sebmarkbage/ecmascript-rest-spread) -* [Spec](http://sebmarkbage.github.io/ecmascript-rest-spread) -* [Spread VS. Object.assign](http://2ality.com/2016/10/rest-spread-properties.html#spreading-objects-versus-objectassign) -* [Assigning VS. defining properties](http://exploringjs.com/es6/ch_oop-besides-classes.html#sec_assigning-vs-defining-properties) diff --git a/node_modules/@babel/plugin-proposal-object-rest-spread/lib/index.js b/node_modules/@babel/plugin-proposal-object-rest-spread/lib/index.js deleted file mode 100644 index 4dcc6dc9..00000000 --- a/node_modules/@babel/plugin-proposal-object-rest-spread/lib/index.js +++ /dev/null @@ -1,404 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -function _helperPluginUtils() { - const data = require("@babel/helper-plugin-utils"); - - _helperPluginUtils = function _helperPluginUtils() { - return data; - }; - - return data; -} - -function _pluginSyntaxObjectRestSpread() { - const data = _interopRequireDefault(require("@babel/plugin-syntax-object-rest-spread")); - - _pluginSyntaxObjectRestSpread = function _pluginSyntaxObjectRestSpread() { - return data; - }; - - return data; -} - -function _core() { - const data = require("@babel/core"); - - _core = function _core() { - return data; - }; - - return data; -} - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var _default = (0, _helperPluginUtils().declare)((api, opts) => { - api.assertVersion(7); - const _opts$useBuiltIns = opts.useBuiltIns, - useBuiltIns = _opts$useBuiltIns === void 0 ? false : _opts$useBuiltIns, - _opts$loose = opts.loose, - loose = _opts$loose === void 0 ? false : _opts$loose; - - if (typeof loose !== "boolean") { - throw new Error(".loose must be a boolean, or undefined"); - } - - function getExtendsHelper(file) { - return useBuiltIns ? _core().types.memberExpression(_core().types.identifier("Object"), _core().types.identifier("assign")) : file.addHelper("extends"); - } - - function hasRestElement(path) { - let foundRestElement = false; - visitRestElements(path, () => { - foundRestElement = true; - path.stop(); - }); - return foundRestElement; - } - - function visitRestElements(path, visitor) { - path.traverse({ - Expression(path) { - const parentType = path.parent.type; - - if (parentType == "AssignmentPattern" && path.key === "right" || parentType == "ObjectProperty" && path.parent.computed && path.key === "key") { - path.skip(); - } - }, - - RestElement: visitor - }); - } - - function hasSpread(node) { - for (var _iterator = node.properties, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - const prop = _ref; - - if (_core().types.isSpreadElement(prop)) { - return true; - } - } - - return false; - } - - function extractNormalizedKeys(path) { - const props = path.node.properties; - const keys = []; - let allLiteral = true; - - for (var _iterator2 = props, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { - var _ref2; - - if (_isArray2) { - if (_i2 >= _iterator2.length) break; - _ref2 = _iterator2[_i2++]; - } else { - _i2 = _iterator2.next(); - if (_i2.done) break; - _ref2 = _i2.value; - } - - const prop = _ref2; - - if (_core().types.isIdentifier(prop.key) && !prop.computed) { - keys.push(_core().types.stringLiteral(prop.key.name)); - } else if (_core().types.isLiteral(prop.key)) { - keys.push(_core().types.stringLiteral(String(prop.key.value))); - } else { - keys.push(_core().types.cloneNode(prop.key)); - allLiteral = false; - } - } - - return { - keys, - allLiteral - }; - } - - function replaceImpureComputedKeys(path) { - const impureComputedPropertyDeclarators = []; - - for (var _iterator3 = path.get("properties"), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { - var _ref3; - - if (_isArray3) { - if (_i3 >= _iterator3.length) break; - _ref3 = _iterator3[_i3++]; - } else { - _i3 = _iterator3.next(); - if (_i3.done) break; - _ref3 = _i3.value; - } - - const propPath = _ref3; - const key = propPath.get("key"); - - if (propPath.node.computed && !key.isPure()) { - const name = path.scope.generateUidBasedOnNode(key.node); - - const declarator = _core().types.variableDeclarator(_core().types.identifier(name), key.node); - - impureComputedPropertyDeclarators.push(declarator); - key.replaceWith(_core().types.identifier(name)); - } - } - - return impureComputedPropertyDeclarators; - } - - function createObjectSpread(path, file, objRef) { - const props = path.get("properties"); - const last = props[props.length - 1]; - - _core().types.assertRestElement(last.node); - - const restElement = _core().types.cloneNode(last.node); - - last.remove(); - const impureComputedPropertyDeclarators = replaceImpureComputedKeys(path); - - const _extractNormalizedKey = extractNormalizedKeys(path), - keys = _extractNormalizedKey.keys, - allLiteral = _extractNormalizedKey.allLiteral; - - if (keys.length === 0) { - return [impureComputedPropertyDeclarators, restElement.argument, _core().types.callExpression(getExtendsHelper(file), [_core().types.objectExpression([]), _core().types.cloneNode(objRef)])]; - } - - let keyExpression; - - if (!allLiteral) { - keyExpression = _core().types.callExpression(_core().types.memberExpression(_core().types.arrayExpression(keys), _core().types.identifier("map")), [file.addHelper("toPropertyKey")]); - } else { - keyExpression = _core().types.arrayExpression(keys); - } - - return [impureComputedPropertyDeclarators, restElement.argument, _core().types.callExpression(file.addHelper("objectWithoutProperties"), [_core().types.cloneNode(objRef), keyExpression])]; - } - - function replaceRestElement(parentPath, paramPath, i, numParams) { - if (paramPath.isAssignmentPattern()) { - replaceRestElement(parentPath, paramPath.get("left"), i, numParams); - return; - } - - if (paramPath.isArrayPattern() && hasRestElement(paramPath)) { - const elements = paramPath.get("elements"); - - for (let i = 0; i < elements.length; i++) { - replaceRestElement(parentPath, elements[i], i, elements.length); - } - } - - if (paramPath.isObjectPattern() && hasRestElement(paramPath)) { - const uid = parentPath.scope.generateUidIdentifier("ref"); - - const declar = _core().types.variableDeclaration("let", [_core().types.variableDeclarator(paramPath.node, uid)]); - - parentPath.ensureBlock(); - parentPath.get("body").unshiftContainer("body", declar); - paramPath.replaceWith(_core().types.cloneNode(uid)); - } - } - - return { - inherits: _pluginSyntaxObjectRestSpread().default, - visitor: { - Function(path) { - const params = path.get("params"); - - for (let i = params.length - 1; i >= 0; i--) { - replaceRestElement(params[i].parentPath, params[i], i, params.length); - } - }, - - VariableDeclarator(path, file) { - if (!path.get("id").isObjectPattern()) { - return; - } - - let insertionPath = path; - const originalPath = path; - visitRestElements(path.get("id"), path => { - if (!path.parentPath.isObjectPattern()) { - return; - } - - if (originalPath.node.id.properties.length > 1 && !_core().types.isIdentifier(originalPath.node.init)) { - const initRef = path.scope.generateUidIdentifierBasedOnNode(originalPath.node.init, "ref"); - originalPath.insertBefore(_core().types.variableDeclarator(initRef, originalPath.node.init)); - originalPath.replaceWith(_core().types.variableDeclarator(originalPath.node.id, _core().types.cloneNode(initRef))); - return; - } - - let ref = originalPath.node.init; - const refPropertyPath = []; - let kind; - path.findParent(path => { - if (path.isObjectProperty()) { - refPropertyPath.unshift(path.node.key.name); - } else if (path.isVariableDeclarator()) { - kind = path.parentPath.node.kind; - return true; - } - }); - - if (refPropertyPath.length) { - refPropertyPath.forEach(prop => { - ref = _core().types.memberExpression(ref, _core().types.identifier(prop)); - }); - } - - const objectPatternPath = path.findParent(path => path.isObjectPattern()); - - const _createObjectSpread = createObjectSpread(objectPatternPath, file, ref), - impureComputedPropertyDeclarators = _createObjectSpread[0], - argument = _createObjectSpread[1], - callExpression = _createObjectSpread[2]; - - _core().types.assertIdentifier(argument); - - insertionPath.insertBefore(impureComputedPropertyDeclarators); - insertionPath.insertAfter(_core().types.variableDeclarator(argument, callExpression)); - insertionPath = insertionPath.getSibling(insertionPath.key + 1); - path.scope.registerBinding(kind, insertionPath); - - if (objectPatternPath.node.properties.length === 0) { - objectPatternPath.findParent(path => path.isObjectProperty() || path.isVariableDeclarator()).remove(); - } - }); - }, - - ExportNamedDeclaration(path) { - const declaration = path.get("declaration"); - if (!declaration.isVariableDeclaration()) return; - const hasRest = declaration.get("declarations").some(path => hasRestElement(path.get("id"))); - if (!hasRest) return; - const specifiers = []; - - for (const name in path.getOuterBindingIdentifiers(path)) { - specifiers.push(_core().types.exportSpecifier(_core().types.identifier(name), _core().types.identifier(name))); - } - - path.replaceWith(declaration.node); - path.insertAfter(_core().types.exportNamedDeclaration(null, specifiers)); - }, - - CatchClause(path) { - const paramPath = path.get("param"); - replaceRestElement(paramPath.parentPath, paramPath); - }, - - AssignmentExpression(path, file) { - const leftPath = path.get("left"); - - if (leftPath.isObjectPattern() && hasRestElement(leftPath)) { - const nodes = []; - const refName = path.scope.generateUidBasedOnNode(path.node.right, "ref"); - nodes.push(_core().types.variableDeclaration("var", [_core().types.variableDeclarator(_core().types.identifier(refName), path.node.right)])); - - const _createObjectSpread2 = createObjectSpread(leftPath, file, _core().types.identifier(refName)), - impureComputedPropertyDeclarators = _createObjectSpread2[0], - argument = _createObjectSpread2[1], - callExpression = _createObjectSpread2[2]; - - if (impureComputedPropertyDeclarators.length > 0) { - nodes.push(_core().types.variableDeclaration("var", impureComputedPropertyDeclarators)); - } - - const nodeWithoutSpread = _core().types.cloneNode(path.node); - - nodeWithoutSpread.right = _core().types.identifier(refName); - nodes.push(_core().types.expressionStatement(nodeWithoutSpread)); - nodes.push(_core().types.toStatement(_core().types.assignmentExpression("=", argument, callExpression))); - nodes.push(_core().types.expressionStatement(_core().types.identifier(refName))); - path.replaceWithMultiple(nodes); - } - }, - - ForXStatement(path) { - const node = path.node, - scope = path.scope; - const leftPath = path.get("left"); - const left = node.left; - - if (_core().types.isObjectPattern(left) && hasRestElement(leftPath)) { - const temp = scope.generateUidIdentifier("ref"); - node.left = _core().types.variableDeclaration("var", [_core().types.variableDeclarator(temp)]); - path.ensureBlock(); - node.body.body.unshift(_core().types.variableDeclaration("var", [_core().types.variableDeclarator(left, _core().types.cloneNode(temp))])); - return; - } - - if (!_core().types.isVariableDeclaration(left)) return; - const pattern = left.declarations[0].id; - if (!_core().types.isObjectPattern(pattern)) return; - const key = scope.generateUidIdentifier("ref"); - node.left = _core().types.variableDeclaration(left.kind, [_core().types.variableDeclarator(key, null)]); - path.ensureBlock(); - node.body.body.unshift(_core().types.variableDeclaration(node.left.kind, [_core().types.variableDeclarator(pattern, _core().types.cloneNode(key))])); - }, - - ObjectExpression(path, file) { - if (!hasSpread(path.node)) return; - const args = []; - let props = []; - - function push() { - if (!props.length) return; - args.push(_core().types.objectExpression(props)); - props = []; - } - - if (_core().types.isSpreadElement(path.node.properties[0])) { - args.push(_core().types.objectExpression([])); - } - - var _arr = path.node.properties; - - for (var _i4 = 0; _i4 < _arr.length; _i4++) { - const prop = _arr[_i4]; - - if (_core().types.isSpreadElement(prop)) { - push(); - args.push(prop.argument); - } else { - props.push(prop); - } - } - - push(); - let helper; - - if (loose) { - helper = getExtendsHelper(file); - } else { - helper = file.addHelper("objectSpread"); - } - - path.replaceWith(_core().types.callExpression(helper, args)); - } - - } - }; -}); - -exports.default = _default;
\ No newline at end of file diff --git a/node_modules/@babel/plugin-proposal-object-rest-spread/package.json b/node_modules/@babel/plugin-proposal-object-rest-spread/package.json deleted file mode 100644 index a9cf27e4..00000000 --- a/node_modules/@babel/plugin-proposal-object-rest-spread/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "@babel/plugin-proposal-object-rest-spread", - "version": "7.0.0-beta.47", - "description": "Compile object rest and spread to ES5", - "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-proposal-object-rest-spread", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" - ], - "dependencies": { - "@babel/helper-plugin-utils": "7.0.0-beta.47", - "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.47" - }, - "peerDependencies": { - "@babel/core": "7.0.0-beta.47" - }, - "devDependencies": { - "@babel/core": "7.0.0-beta.47", - "@babel/helper-plugin-test-runner": "7.0.0-beta.47" - } -} |
