"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _tokenizer = require('../parser/tokenizer'); var _Transformer = require('./Transformer'); var _Transformer2 = _interopRequireDefault(_Transformer); class ReactHotLoaderTransformer extends _Transformer2.default { __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 && _tokenizer.isTopLevelDeclaration.call(void 0, token) && token.identifierRole !== _tokenizer.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; } } exports.default = ReactHotLoaderTransformer;