first commit
This commit is contained in:
58
node_modules/@vitejs/plugin-react/dist/refreshUtils.js
generated
vendored
Normal file
58
node_modules/@vitejs/plugin-react/dist/refreshUtils.js
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
function debounce(fn, delay) {
|
||||
let handle
|
||||
return () => {
|
||||
clearTimeout(handle)
|
||||
handle = setTimeout(fn, delay)
|
||||
}
|
||||
}
|
||||
|
||||
/* eslint-disable no-undef */
|
||||
const enqueueUpdate = debounce(exports.performReactRefresh, 16)
|
||||
|
||||
// Taken from https://github.com/pmmmwh/react-refresh-webpack-plugin/blob/main/lib/runtime/RefreshUtils.js#L141
|
||||
// This allows to resister components not detected by SWC like styled component
|
||||
function registerExportsForReactRefresh(filename, moduleExports) {
|
||||
for (const key in moduleExports) {
|
||||
if (key === '__esModule') continue
|
||||
const exportValue = moduleExports[key]
|
||||
if (exports.isLikelyComponentType(exportValue)) {
|
||||
exports.register(exportValue, filename + ' ' + key)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function validateRefreshBoundaryAndEnqueueUpdate(prevExports, nextExports) {
|
||||
if (!predicateOnExport(prevExports, (key) => !!nextExports[key])) {
|
||||
return 'Could not Fast Refresh (export removed)'
|
||||
}
|
||||
|
||||
let hasExports = false
|
||||
const allExportsAreComponentsOrUnchanged = predicateOnExport(
|
||||
nextExports,
|
||||
(key, value) => {
|
||||
hasExports = true
|
||||
if (exports.isLikelyComponentType(value)) return true
|
||||
if (!prevExports[key]) return false
|
||||
return prevExports[key] === nextExports[key]
|
||||
},
|
||||
)
|
||||
if (hasExports && allExportsAreComponentsOrUnchanged) {
|
||||
enqueueUpdate()
|
||||
} else {
|
||||
return 'Could not Fast Refresh. Learn more at https://github.com/vitejs/vite-plugin-react/tree/main/packages/plugin-react#consistent-components-exports'
|
||||
}
|
||||
}
|
||||
|
||||
function predicateOnExport(moduleExports, predicate) {
|
||||
for (const key in moduleExports) {
|
||||
if (key === '__esModule') continue
|
||||
const desc = Object.getOwnPropertyDescriptor(moduleExports, key)
|
||||
if (desc && desc.get) return false
|
||||
if (!predicate(key, moduleExports[key])) return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
exports.registerExportsForReactRefresh = registerExportsForReactRefresh
|
||||
exports.validateRefreshBoundaryAndEnqueueUpdate =
|
||||
validateRefreshBoundaryAndEnqueueUpdate
|
||||
Reference in New Issue
Block a user