UNPKG

next

Version:

The React Framework

97 lines (96 loc) 4.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "RspackFlightClientEntryPlugin", { enumerable: true, get: function() { return RspackFlightClientEntryPlugin; } }); const _ondemandentryhandler = require("../../../server/dev/on-demand-entry-handler"); const _constants = require("../../../shared/lib/constants"); const _buildcontext = require("../../build-context"); const _pagetypes = require("../../../lib/page-types"); const _getrspack = require("../../../shared/lib/get-rspack"); const pluginState = (0, _buildcontext.getProxiedPluginState)({ // A map to track "action" -> "list of bundles". serverActions: {}, edgeServerActions: {}, serverActionModules: {}, edgeServerActionModules: {}, ssrModules: {}, edgeSsrModules: {}, rscModules: {}, edgeRscModules: {}, injectedClientEntries: {} }); class RspackFlightClientEntryPlugin { constructor(options){ const { FlightClientEntryPlugin } = (0, _getrspack.getRspackCore)(); this.plugin = new FlightClientEntryPlugin({ ...options, builtinAppLoader: !!process.env.BUILTIN_SWC_LOADER, shouldInvalidateCb: ({ bundlePath, entryName, absolutePagePath, clientBrowserLoader })=>{ let shouldInvalidate = false; const compiler = this.compiler; const entries = (0, _ondemandentryhandler.getEntries)(compiler.outputPath); const pageKey = (0, _ondemandentryhandler.getEntryKey)(_constants.COMPILER_NAMES.client, _pagetypes.PAGE_TYPES.APP, bundlePath); if (!entries[pageKey]) { entries[pageKey] = { type: _ondemandentryhandler.EntryTypes.CHILD_ENTRY, parentEntries: new Set([ entryName ]), absoluteEntryFilePath: absolutePagePath, bundlePath, request: clientBrowserLoader, dispose: false, lastActiveTime: Date.now() }; shouldInvalidate = true; } else { const entryData = entries[pageKey]; // New version of the client loader if (entryData.request !== clientBrowserLoader) { entryData.request = clientBrowserLoader; shouldInvalidate = true; } if (entryData.type === _ondemandentryhandler.EntryTypes.CHILD_ENTRY) { entryData.parentEntries.add(entryName); } entryData.dispose = false; entryData.lastActiveTime = Date.now(); } return shouldInvalidate; }, invalidateCb: ()=>{ const compiler = this.compiler; // Invalidate in development to trigger recompilation const invalidator = (0, _ondemandentryhandler.getInvalidator)(compiler.outputPath); // Check if any of the entry injections need an invalidation if (invalidator) { invalidator.invalidate([ _constants.COMPILER_NAMES.client ]); } }, stateCb: (state)=>{ Object.assign(pluginState.serverActions, state.serverActions); Object.assign(pluginState.edgeServerActions, state.edgeServerActions); Object.assign(pluginState.serverActionModules, state.serverActionModules); Object.assign(pluginState.edgeServerActionModules, state.edgeServerActionModules); Object.assign(pluginState.ssrModules, state.ssrModules); Object.assign(pluginState.edgeSsrModules, state.edgeSsrModules); Object.assign(pluginState.rscModules, state.rscModules); Object.assign(pluginState.edgeRscModules, state.edgeRscModules); Object.assign(pluginState.injectedClientEntries, state.injectedClientEntries); } }); } apply(compiler) { this.compiler = compiler; this.plugin.apply(compiler); } } //# sourceMappingURL=rspack-flight-client-entry-plugin.js.map