You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					36 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					36 lines
				
				1.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.__esModule = true;
							 | 
						||
| 
								 | 
							
								exports.default = void 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Converts destructured parameters with default values to non-shorthand syntax.
							 | 
						||
| 
								 | 
							
								 * This fixes the only arguments-related bug in ES Modules-supporting browsers (Edge 16 & 17).
							 | 
						||
| 
								 | 
							
								 * Use this plugin instead of @babel/plugin-transform-parameters when targeting ES Modules.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								var _default = ({
							 | 
						||
| 
								 | 
							
								  types: t
							 | 
						||
| 
								 | 
							
								}) => {
							 | 
						||
| 
								 | 
							
								  const isArrowParent = p => p.parentKey === "params" && p.parentPath && t.isArrowFunctionExpression(p.parentPath);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    name: "transform-edge-default-parameters",
							 | 
						||
| 
								 | 
							
								    visitor: {
							 | 
						||
| 
								 | 
							
								      AssignmentPattern(path) {
							 | 
						||
| 
								 | 
							
								        const arrowArgParent = path.find(isArrowParent);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (arrowArgParent && path.parent.shorthand) {
							 | 
						||
| 
								 | 
							
								          // In Babel 7+, there is no way to force non-shorthand properties.
							 | 
						||
| 
								 | 
							
								          path.parent.shorthand = false;
							 | 
						||
| 
								 | 
							
								          (path.parent.extra || {}).shorthand = false; // So, to ensure non-shorthand, rename the local identifier so it no longer matches:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          path.scope.rename(path.parent.key.name);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.default = _default;
							 | 
						||
| 
								 | 
							
								module.exports = exports.default;
							 |