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.
		
		
		
		
		
			
		
			
				
					59 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					59 lines
				
				1.1 KiB
			| 
											3 years ago
										 | "use strict"; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, "__esModule", { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports.default = void 0; | ||
|  | exports.requeueComputedKeyAndDecorators = requeueComputedKeyAndDecorators; | ||
|  | exports.skipAllButComputedKey = skipAllButComputedKey; | ||
|  | 
 | ||
|  | function skipAllButComputedKey(path) { | ||
|  |   path.skip(); | ||
|  | 
 | ||
|  |   if (path.node.computed) { | ||
|  |     path.context.maybeQueue(path.get("key")); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | function requeueComputedKeyAndDecorators(path) { | ||
|  |   const { | ||
|  |     context, | ||
|  |     node | ||
|  |   } = path; | ||
|  | 
 | ||
|  |   if (node.computed) { | ||
|  |     context.maybeQueue(path.get("key")); | ||
|  |   } | ||
|  | 
 | ||
|  |   if (node.decorators) { | ||
|  |     for (const decorator of path.get("decorators")) { | ||
|  |       context.maybeQueue(decorator); | ||
|  |     } | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | const visitor = { | ||
|  |   FunctionParent(path) { | ||
|  |     if (path.isArrowFunctionExpression()) { | ||
|  |       return; | ||
|  |     } else { | ||
|  |       path.skip(); | ||
|  | 
 | ||
|  |       if (path.isMethod()) { | ||
|  |         requeueComputedKeyAndDecorators(path); | ||
|  |       } | ||
|  |     } | ||
|  |   }, | ||
|  | 
 | ||
|  |   Property(path) { | ||
|  |     if (path.isObjectProperty()) { | ||
|  |       return; | ||
|  |     } | ||
|  | 
 | ||
|  |     path.skip(); | ||
|  |     requeueComputedKeyAndDecorators(path); | ||
|  |   } | ||
|  | 
 | ||
|  | }; | ||
|  | var _default = visitor; | ||
|  | exports.default = _default; |