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.
		
		
		
		
		
			
		
			
				
					57 lines
				
				1.7 KiB
			
		
		
			
		
	
	
					57 lines
				
				1.7 KiB
			| 
											3 years ago
										 | "use strict"; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, "__esModule", { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports.default = void 0; | ||
|  | 
 | ||
|  | var _helperPluginUtils = require("@babel/helper-plugin-utils"); | ||
|  | 
 | ||
|  | var _pluginSyntaxExportNamespaceFrom = require("@babel/plugin-syntax-export-namespace-from"); | ||
|  | 
 | ||
|  | var _core = require("@babel/core"); | ||
|  | 
 | ||
|  | var _default = (0, _helperPluginUtils.declare)(api => { | ||
|  |   api.assertVersion(7); | ||
|  |   return { | ||
|  |     name: "proposal-export-namespace-from", | ||
|  |     inherits: _pluginSyntaxExportNamespaceFrom.default, | ||
|  |     visitor: { | ||
|  |       ExportNamedDeclaration(path) { | ||
|  |         var _exported$name; | ||
|  | 
 | ||
|  |         const { | ||
|  |           node, | ||
|  |           scope | ||
|  |         } = path; | ||
|  |         const { | ||
|  |           specifiers | ||
|  |         } = node; | ||
|  |         const index = _core.types.isExportDefaultSpecifier(specifiers[0]) ? 1 : 0; | ||
|  |         if (!_core.types.isExportNamespaceSpecifier(specifiers[index])) return; | ||
|  |         const nodes = []; | ||
|  | 
 | ||
|  |         if (index === 1) { | ||
|  |           nodes.push(_core.types.exportNamedDeclaration(null, [specifiers.shift()], node.source)); | ||
|  |         } | ||
|  | 
 | ||
|  |         const specifier = specifiers.shift(); | ||
|  |         const { | ||
|  |           exported | ||
|  |         } = specifier; | ||
|  |         const uid = scope.generateUidIdentifier((_exported$name = exported.name) != null ? _exported$name : exported.value); | ||
|  |         nodes.push(_core.types.importDeclaration([_core.types.importNamespaceSpecifier(uid)], _core.types.cloneNode(node.source)), _core.types.exportNamedDeclaration(null, [_core.types.exportSpecifier(_core.types.cloneNode(uid), exported)])); | ||
|  | 
 | ||
|  |         if (node.specifiers.length >= 1) { | ||
|  |           nodes.push(node); | ||
|  |         } | ||
|  | 
 | ||
|  |         const [importDeclaration] = path.replaceWithMultiple(nodes); | ||
|  |         path.scope.registerDeclaration(importDeclaration); | ||
|  |       } | ||
|  | 
 | ||
|  |     } | ||
|  |   }; | ||
|  | }); | ||
|  | 
 | ||
|  | exports.default = _default; |