import type { Plugin } from '@modern-js/runtime'; import hoistNonReactStatics from 'hoist-non-react-statics'; import { SSRLiveReload } from './SSRLiveReload'; export const mfSSRPlugin = (): Plugin => ({ name: '@module-federation/modern-js', setup: () => { return { async init({ context }, next) { if (typeof window !== 'undefined') { return next({ context }); } globalThis.shouldUpdate = false; const nodeUtils = await import('@module-federation/node/utils'); const shouldUpdate = await nodeUtils.revalidate(); if (shouldUpdate) { console.log('should RELOAD', shouldUpdate); await nodeUtils.flushChunks(); globalThis.shouldUpdate = true; } return next({ context }); }, wrapRoot(App) { const AppWrapper = (props: any) => ( <> ); return hoistNonReactStatics(AppWrapper, App); }, }; }, });