@@ -62,14 +62,34 @@ function isReactRefreshBoundary(moduleExports) {
62
62
return hasExports && areAllExportsComponents;
63
63
};
64
64
65
+ var registerExportsForReactRefresh = (moduleExports, moduleID) => {
66
+ Refresh.register(moduleExports, moduleID + ' %exports%');
67
+ if (moduleExports == null || typeof moduleExports !== 'object') {
68
+ // Exit if we can't iterate over exports.
69
+ // (This is important for legacy environments.)
70
+ return;
71
+ }
72
+ for (const key in moduleExports) {
73
+ const desc = Object.getOwnPropertyDescriptor(moduleExports, key);
74
+ if (desc && desc.get) {
75
+ // Don't invoke getters as they may have side effects.
76
+ continue;
77
+ }
78
+ const exportValue = moduleExports[key];
79
+ const typeID = moduleID + ' %exports% ' + key;
80
+ Refresh.register(exportValue, typeID);
81
+ }
82
+ };
83
+
65
84
module.exports = {
66
85
enqueueUpdate: debounce(enqueueUpdate, 30),
67
- isReactRefreshBoundary
86
+ isReactRefreshBoundary,
87
+ registerExportsForReactRefresh
68
88
};
69
89
` . trim ( ) ;
70
90
71
91
/**
72
- * ` var prevRefreshReg = window.$RefreshReg$;
92
+ var prevRefreshReg = window.$RefreshReg$;
73
93
var prevRefreshSig = window.$RefreshSig$;
74
94
var RefreshRuntime = require('react-refresh/runtime');
75
95
90
110
const _csbRefreshUtils = require('${HELPER_PATH}');
91
111
92
112
if (_csbRefreshUtils.isReactRefreshBoundary && _csbRefreshUtils.isReactRefreshBoundary(module.exports)) {
113
+ _csbRefreshUtils.registerExportsForReactRefresh(module.exports, module.id)
93
114
module.hot.accept();
94
115
_csbRefreshUtils.enqueueUpdate();
95
116
}
@@ -101,9 +122,8 @@ if (_csbRefreshUtils.isReactRefreshBoundary && _csbRefreshUtils.isReactRefreshBo
101
122
* to a single line so we don't mess with the source mapping when showing errors.
102
123
*/
103
124
const getWrapperCode = ( sourceCode : string ) =>
104
- `var prevRefreshReg=window.$RefreshReg$,prevRefreshSig=window.$RefreshSig$,RefreshRuntime=require("react-refresh/runtime");window.$RefreshReg$=(a,b)=>{const c=module.id+" "+b;RefreshRuntime.register(a,c)},window.$RefreshSig$=RefreshRuntime.createSignatureFunctionForTransform;try{${ sourceCode }
105
- }finally{window.$RefreshReg$=prevRefreshReg,window.$RefreshSig$=prevRefreshSig}const _csbRefreshUtils=require("${ HELPER_PATH } ");_csbRefreshUtils.isReactRefreshBoundary&&_csbRefreshUtils.isReactRefreshBoundary(module.exports)&&(module.hot.accept(),_csbRefreshUtils.enqueueUpdate());
106
- ` . trim ( ) ;
125
+ `var prevRefreshReg=window.$RefreshReg$,prevRefreshSig=window.$RefreshSig$,RefreshRuntime=require("react-refresh/runtime");window.$RefreshReg$=((e,r)=>{const s=module.id+" "+r;RefreshRuntime.register(e,s)}),window.$RefreshSig$=RefreshRuntime.createSignatureFunctionForTransform;try{${ sourceCode }
126
+ }finally{window.$RefreshReg$=prevRefreshReg,window.$RefreshSig$=prevRefreshSig}const _csbRefreshUtils=require("${ HELPER_PATH } ");_csbRefreshUtils.isReactRefreshBoundary&&_csbRefreshUtils.isReactRefreshBoundary(module.exports)&&(_csbRefreshUtils.registerExportsForReactRefresh(module.exports,module.id),module.hot.accept(),_csbRefreshUtils.enqueueUpdate());` . trim ( ) ;
107
127
108
128
class RefreshTranspiler extends Transpiler {
109
129
constructor ( ) {
0 commit comments