Spaces:
Sleeping
Sleeping
rag-context-optimizer / frontend /node_modules /next /dist /shared /lib /lazy-dynamic /preload-chunks.js
| 'use client'; | |
| ; | |
| Object.defineProperty(exports, "__esModule", { | |
| value: true | |
| }); | |
| Object.defineProperty(exports, "PreloadChunks", { | |
| enumerable: true, | |
| get: function() { | |
| return PreloadChunks; | |
| } | |
| }); | |
| const _jsxruntime = require("react/jsx-runtime"); | |
| const _reactdom = require("react-dom"); | |
| const _workasyncstorageexternal = require("../../../server/app-render/work-async-storage.external"); | |
| const _encodeuripath = require("../encode-uri-path"); | |
| function PreloadChunks(param) { | |
| let { moduleIds } = param; | |
| // Early return in client compilation and only load requestStore on server side | |
| if (typeof window !== 'undefined') { | |
| return null; | |
| } | |
| const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); | |
| if (workStore === undefined) { | |
| return null; | |
| } | |
| const allFiles = []; | |
| // Search the current dynamic call unique key id in react loadable manifest, | |
| // and find the corresponding CSS files to preload | |
| if (workStore.reactLoadableManifest && moduleIds) { | |
| const manifest = workStore.reactLoadableManifest; | |
| for (const key of moduleIds){ | |
| if (!manifest[key]) continue; | |
| const chunks = manifest[key].files; | |
| allFiles.push(...chunks); | |
| } | |
| } | |
| if (allFiles.length === 0) { | |
| return null; | |
| } | |
| const dplId = process.env.NEXT_DEPLOYMENT_ID ? "?dpl=" + process.env.NEXT_DEPLOYMENT_ID : ''; | |
| return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, { | |
| children: allFiles.map((chunk)=>{ | |
| const href = workStore.assetPrefix + "/_next/" + (0, _encodeuripath.encodeURIPath)(chunk) + dplId; | |
| const isCss = chunk.endsWith('.css'); | |
| // If it's stylesheet we use `precedence` o help hoist with React Float. | |
| // For stylesheets we actually need to render the CSS because nothing else is going to do it so it needs to be part of the component tree. | |
| // The `preload` for stylesheet is not optional. | |
| if (isCss) { | |
| return /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { | |
| // @ts-ignore | |
| precedence: "dynamic", | |
| href: href, | |
| rel: "stylesheet", | |
| as: "style" | |
| }, chunk); | |
| } else { | |
| // If it's script we use ReactDOM.preload to preload the resources | |
| (0, _reactdom.preload)(href, { | |
| as: 'script', | |
| fetchPriority: 'low' | |
| }); | |
| return null; | |
| } | |
| }) | |
| }); | |
| } | |
| //# sourceMappingURL=preload-chunks.js.map |