Spaces:
Sleeping
Sleeping
pythonic-rag-FastAPIReact
/
frontend
/node_modules
/@pmmmwh
/react-refresh-webpack-plugin
/lib
/utils
/makeRefreshRuntimeModule.js
| /** | |
| * Makes a runtime module to intercept module execution for React Refresh. | |
| * This module creates an isolated __webpak_require__ function for each module | |
| * and injects a $Refresh$ object into it for use by react-refresh. | |
| * @param {import('webpack')} webpack The Webpack exports. | |
| * @returns {ReactRefreshRuntimeModule} The runtime module class. | |
| */ | |
| function makeRefreshRuntimeModule(webpack) { | |
| return class ReactRefreshRuntimeModule extends webpack.RuntimeModule { | |
| constructor() { | |
| // Second argument is the `stage` for this runtime module - | |
| // we'll use the same stage as Webpack's HMR runtime module for safety. | |
| super('react refresh', webpack.RuntimeModule.STAGE_BASIC); | |
| } | |
| /** | |
| * @returns {string} runtime code | |
| */ | |
| generate() { | |
| const { runtimeTemplate } = this.compilation; | |
| const declareVar = runtimeTemplate.supportsConst() ? 'const' : 'var'; | |
| return webpack.Template.asString([ | |
| `${declareVar} setup = ${runtimeTemplate.basicFunction('moduleId', [ | |
| `${declareVar} refresh = {`, | |
| webpack.Template.indent([ | |
| `moduleId: moduleId,`, | |
| `register: ${runtimeTemplate.basicFunction('type, id', [ | |
| `${declareVar} typeId = moduleId + " " + id;`, | |
| `refresh.runtime.register(type, typeId);`, | |
| ])},`, | |
| `signature: ${runtimeTemplate.returningFunction( | |
| 'refresh.runtime.createSignatureFunctionForTransform()' | |
| )},`, | |
| `runtime: {`, | |
| webpack.Template.indent([ | |
| `createSignatureFunctionForTransform: ${runtimeTemplate.returningFunction( | |
| runtimeTemplate.returningFunction('type', 'type') | |
| )},`, | |
| `register: ${runtimeTemplate.emptyFunction()}`, | |
| ]), | |
| `},`, | |
| ]), | |
| `};`, | |
| `return refresh;`, | |
| ])}`, | |
| '', | |
| `${webpack.RuntimeGlobals.interceptModuleExecution}.push(${runtimeTemplate.basicFunction( | |
| 'options', | |
| [ | |
| `${declareVar} originalFactory = options.factory;`, | |
| `options.factory = ${runtimeTemplate.basicFunction( | |
| ['moduleObject', 'moduleExports', 'webpackRequire'], | |
| [ | |
| // Our require function delegates to the original require function | |
| `${declareVar} hotRequire = ${runtimeTemplate.returningFunction( | |
| 'webpackRequire(request)', | |
| 'request' | |
| )};`, | |
| // The propery descriptor factory below ensures that all properties but $Refresh$ are proxied through to the original require function | |
| `${declareVar} createPropertyDescriptor = ${runtimeTemplate.basicFunction('name', [ | |
| `return {`, | |
| webpack.Template.indent([ | |
| `configurable: true,`, | |
| `enumerable: true,`, | |
| `get: ${runtimeTemplate.returningFunction('webpackRequire[name]')},`, | |
| `set: ${runtimeTemplate.basicFunction('value', [ | |
| 'webpackRequire[name] = value;', | |
| ])},`, | |
| ]), | |
| `};`, | |
| ])};`, | |
| `for (${declareVar} name in webpackRequire) {`, | |
| webpack.Template.indent([ | |
| `if (Object.prototype.hasOwnProperty.call(webpackRequire, name) && name !== "$Refresh$") {`, | |
| webpack.Template.indent([ | |
| `Object.defineProperty(hotRequire, name, createPropertyDescriptor(name));`, | |
| ]), | |
| `}`, | |
| ]), | |
| `}`, | |
| `hotRequire.$Refresh$ = setup(options.id);`, | |
| `originalFactory.call(this, moduleObject, moduleExports, hotRequire);`, | |
| ] | |
| )};`, | |
| ] | |
| )});`, | |
| ]); | |
| } | |
| }; | |
| } | |
| module.exports = makeRefreshRuntimeModule; | |