add hw2
This commit is contained in:
		
							
								
								
									
										69
									
								
								node_modules/sucrase/dist/esm/transformers/ReactHotLoaderTransformer.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								node_modules/sucrase/dist/esm/transformers/ReactHotLoaderTransformer.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| import {IdentifierRole, isTopLevelDeclaration} from "../parser/tokenizer"; | ||||
|  | ||||
| import Transformer from "./Transformer"; | ||||
|  | ||||
| export default class ReactHotLoaderTransformer extends Transformer { | ||||
|    __init() {this.extractedDefaultExportName = null} | ||||
|  | ||||
|   constructor( tokens,  filePath) { | ||||
|     super();this.tokens = tokens;this.filePath = filePath;ReactHotLoaderTransformer.prototype.__init.call(this);; | ||||
|   } | ||||
|  | ||||
|   setExtractedDefaultExportName(extractedDefaultExportName) { | ||||
|     this.extractedDefaultExportName = extractedDefaultExportName; | ||||
|   } | ||||
|  | ||||
|   getPrefixCode() { | ||||
|     return ` | ||||
|       (function () { | ||||
|         var enterModule = require('react-hot-loader').enterModule; | ||||
|         enterModule && enterModule(module); | ||||
|       })();` | ||||
|       .replace(/\s+/g, " ") | ||||
|       .trim(); | ||||
|   } | ||||
|  | ||||
|   getSuffixCode() { | ||||
|     const topLevelNames = new Set(); | ||||
|     for (const token of this.tokens.tokens) { | ||||
|       if ( | ||||
|         !token.isType && | ||||
|         isTopLevelDeclaration(token) && | ||||
|         token.identifierRole !== IdentifierRole.ImportDeclaration | ||||
|       ) { | ||||
|         topLevelNames.add(this.tokens.identifierNameForToken(token)); | ||||
|       } | ||||
|     } | ||||
|     const namesToRegister = Array.from(topLevelNames).map((name) => ({ | ||||
|       variableName: name, | ||||
|       uniqueLocalName: name, | ||||
|     })); | ||||
|     if (this.extractedDefaultExportName) { | ||||
|       namesToRegister.push({ | ||||
|         variableName: this.extractedDefaultExportName, | ||||
|         uniqueLocalName: "default", | ||||
|       }); | ||||
|     } | ||||
|     return ` | ||||
| ;(function () { | ||||
|   var reactHotLoader = require('react-hot-loader').default; | ||||
|   var leaveModule = require('react-hot-loader').leaveModule; | ||||
|   if (!reactHotLoader) { | ||||
|     return; | ||||
|   } | ||||
| ${namesToRegister | ||||
|   .map( | ||||
|     ({variableName, uniqueLocalName}) => | ||||
|       `  reactHotLoader.register(${variableName}, "${uniqueLocalName}", ${JSON.stringify( | ||||
|         this.filePath || "", | ||||
|       )});`, | ||||
|   ) | ||||
|   .join("\n")} | ||||
|   leaveModule(module); | ||||
| })();`; | ||||
|   } | ||||
|  | ||||
|   process() { | ||||
|     return false; | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 nik
					nik