@bleedingdev/modern-js-runtime 3.9.0-ultramodern.2 → 3.9.0-ultramodern.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli/code.js +3 -1
- package/dist/cjs/cli/ssr/index.js +2 -74
- package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +2 -0
- package/dist/cjs/cli/template.server.js +1 -2
- package/dist/cjs/core/browser/hydrate.js +9 -10
- package/dist/cjs/core/browser/index.js +4 -5
- package/dist/cjs/core/context/index.js +12 -45
- package/dist/cjs/core/context/public.js +4 -7
- package/dist/cjs/core/context/runtime.js +10 -4
- package/dist/cjs/core/index.js +3 -3
- package/dist/cjs/core/plugin/index.js +2 -2
- package/dist/cjs/core/react/index.js +3 -3
- package/dist/cjs/core/react/wrapper.js +23 -67
- package/dist/cjs/core/server/helmet.js +5 -4
- package/dist/cjs/core/server/requestHandler.js +6 -7
- package/dist/cjs/core/server/requestResponse.js +4 -4
- package/dist/cjs/core/server/routerCleanup.js +2 -2
- package/dist/cjs/core/server/shared.js +171 -4
- package/dist/cjs/core/server/stream/afterTemplate.js +21 -16
- package/dist/cjs/core/server/stream/beforeTemplate.js +37 -28
- package/dist/cjs/core/server/stream/beforeTemplate.worker.js +30 -23
- package/dist/cjs/core/server/stream/createReadableStream.js +222 -125
- package/dist/cjs/core/server/stream/createReadableStream.worker.js +171 -90
- package/dist/cjs/core/server/stream/deferredScript.js +3 -3
- package/dist/cjs/core/server/stream/shared.js +6 -2
- package/dist/cjs/core/server/string/index.js +104 -66
- package/dist/cjs/core/server/string/loadable.js +38 -23
- package/dist/cjs/core/server/string/ssrData.js +5 -12
- package/dist/cjs/core/server/utils.js +1 -2
- package/dist/cjs/exports/head.js +7 -14
- package/dist/cjs/internal.js +2 -2
- package/dist/cjs/router/cli/code/nestedRoutes.js +1 -2
- package/dist/cjs/router/cli/code/templates.js +1 -1
- package/dist/cjs/router/cli/code/utils.js +2 -2
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +10 -9
- package/dist/cjs/router/runtime/PrefetchLink.js +69 -125
- package/dist/cjs/router/runtime/hooks.js +13 -2
- package/dist/cjs/router/runtime/internal.js +7 -45
- package/dist/cjs/router/runtime/plugin.js +19 -34
- package/dist/cjs/router/runtime/plugin.node.js +9 -37
- package/dist/cjs/router/runtime/redirect.js +1 -1
- package/dist/esm/cli/code.mjs +3 -1
- package/dist/esm/cli/ssr/index.mjs +3 -72
- package/dist/esm/cli/ssr/loadable-bundler-plugin.mjs +2 -0
- package/dist/esm/cli/template.server.mjs +1 -2
- package/dist/esm/core/browser/hydrate.mjs +10 -11
- package/dist/esm/core/browser/index.mjs +1 -2
- package/dist/esm/core/context/index.mjs +2 -5
- package/dist/esm/core/context/public.mjs +1 -5
- package/dist/esm/core/context/runtime.mjs +6 -3
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/core/plugin/index.mjs +1 -1
- package/dist/esm/core/react/index.mjs +1 -1
- package/dist/esm/core/react/wrapper.mjs +20 -67
- package/dist/esm/core/server/helmet.mjs +5 -4
- package/dist/esm/core/server/requestHandler.mjs +1 -2
- package/dist/esm/core/server/requestResponse.mjs +3 -3
- package/dist/esm/core/server/routerCleanup.mjs +1 -1
- package/dist/esm/core/server/shared.mjs +153 -1
- package/dist/esm/core/server/stream/afterTemplate.mjs +23 -18
- package/dist/esm/core/server/stream/beforeTemplate.mjs +40 -31
- package/dist/esm/core/server/stream/beforeTemplate.worker.mjs +33 -26
- package/dist/esm/core/server/stream/createReadableStream.mjs +220 -123
- package/dist/esm/core/server/stream/createReadableStream.worker.mjs +161 -90
- package/dist/esm/core/server/stream/deferredScript.mjs +3 -3
- package/dist/esm/core/server/stream/shared.mjs +4 -3
- package/dist/esm/core/server/string/index.mjs +106 -68
- package/dist/esm/core/server/string/loadable.mjs +38 -23
- package/dist/esm/core/server/string/ssrData.mjs +5 -12
- package/dist/esm/core/server/utils.mjs +1 -2
- package/dist/esm/exports/head.mjs +7 -14
- package/dist/esm/internal.mjs +1 -1
- package/dist/esm/router/cli/code/nestedRoutes.mjs +1 -2
- package/dist/esm/router/cli/code/templates.mjs +1 -1
- package/dist/esm/router/cli/code/utils.mjs +2 -2
- package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +10 -9
- package/dist/esm/router/runtime/PrefetchLink.mjs +68 -124
- package/dist/esm/router/runtime/hooks.mjs +9 -1
- package/dist/esm/router/runtime/internal.mjs +2 -33
- package/dist/esm/router/runtime/plugin.mjs +10 -25
- package/dist/esm/router/runtime/plugin.node.mjs +3 -31
- package/dist/esm/router/runtime/redirect.mjs +1 -1
- package/dist/esm-node/cli/code.mjs +3 -1
- package/dist/esm-node/cli/ssr/index.mjs +3 -72
- package/dist/esm-node/cli/ssr/loadable-bundler-plugin.mjs +2 -0
- package/dist/esm-node/cli/template.server.mjs +1 -2
- package/dist/esm-node/core/browser/hydrate.mjs +10 -11
- package/dist/esm-node/core/browser/index.mjs +1 -2
- package/dist/esm-node/core/context/index.mjs +2 -5
- package/dist/esm-node/core/context/public.mjs +1 -5
- package/dist/esm-node/core/context/runtime.mjs +6 -3
- package/dist/esm-node/core/index.mjs +1 -1
- package/dist/esm-node/core/plugin/index.mjs +1 -1
- package/dist/esm-node/core/react/index.mjs +1 -1
- package/dist/esm-node/core/react/wrapper.mjs +20 -67
- package/dist/esm-node/core/server/helmet.mjs +5 -4
- package/dist/esm-node/core/server/requestHandler.mjs +1 -2
- package/dist/esm-node/core/server/requestResponse.mjs +3 -3
- package/dist/esm-node/core/server/routerCleanup.mjs +1 -1
- package/dist/esm-node/core/server/shared.mjs +153 -1
- package/dist/esm-node/core/server/stream/afterTemplate.mjs +23 -18
- package/dist/esm-node/core/server/stream/beforeTemplate.mjs +40 -31
- package/dist/esm-node/core/server/stream/beforeTemplate.worker.mjs +33 -26
- package/dist/esm-node/core/server/stream/createReadableStream.mjs +220 -123
- package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +161 -90
- package/dist/esm-node/core/server/stream/deferredScript.mjs +3 -3
- package/dist/esm-node/core/server/stream/shared.mjs +4 -3
- package/dist/esm-node/core/server/string/index.mjs +106 -68
- package/dist/esm-node/core/server/string/loadable.mjs +38 -23
- package/dist/esm-node/core/server/string/ssrData.mjs +5 -12
- package/dist/esm-node/core/server/utils.mjs +1 -2
- package/dist/esm-node/exports/head.mjs +7 -14
- package/dist/esm-node/internal.mjs +1 -1
- package/dist/esm-node/router/cli/code/nestedRoutes.mjs +1 -2
- package/dist/esm-node/router/cli/code/templates.mjs +1 -1
- package/dist/esm-node/router/cli/code/utils.mjs +2 -2
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +10 -9
- package/dist/esm-node/router/runtime/PrefetchLink.mjs +68 -124
- package/dist/esm-node/router/runtime/hooks.mjs +9 -1
- package/dist/esm-node/router/runtime/internal.mjs +2 -33
- package/dist/esm-node/router/runtime/plugin.mjs +10 -25
- package/dist/esm-node/router/runtime/plugin.node.mjs +3 -31
- package/dist/esm-node/router/runtime/redirect.mjs +1 -1
- package/dist/types/cli/ssr/index.d.ts +0 -3
- package/dist/types/core/context/index.d.ts +4 -6
- package/dist/types/core/context/public.d.ts +1 -23
- package/dist/types/core/context/runtime.d.ts +26 -2
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/react/wrapper.d.ts +7 -1
- package/dist/types/core/server/helmet.d.ts +4 -5
- package/dist/types/core/server/requestHandler.d.ts +3 -3
- package/dist/types/core/server/requestResponse.d.ts +1 -1
- package/dist/types/core/server/routerCleanup.d.ts +1 -1
- package/dist/types/core/server/shared.d.ts +24 -1
- package/dist/types/core/server/stream/afterTemplate.d.ts +2 -1
- package/dist/types/core/server/stream/beforeTemplate.d.ts +4 -1
- package/dist/types/core/server/stream/beforeTemplate.worker.d.ts +4 -1
- package/dist/types/core/server/stream/shared.d.ts +16 -2
- package/dist/types/core/server/string/loadable.d.ts +6 -3
- package/dist/types/core/server/string/ssrData.d.ts +2 -1
- package/dist/types/core/server/string/types.d.ts +1 -5
- package/dist/types/core/server/tracer.d.ts +1 -1
- package/dist/types/core/server/utils.d.ts +1 -1
- package/dist/types/core/types.d.ts +1 -2
- package/dist/types/exports/head.d.ts +2 -2
- package/dist/types/internal.d.ts +1 -1
- package/dist/types/router/runtime/PrefetchLink.d.ts +27 -2
- package/dist/types/router/runtime/hooks.d.ts +19 -2
- package/dist/types/router/runtime/internal.d.ts +4 -21
- package/dist/types/router/runtime/types.d.ts +2 -43
- package/package.json +18 -46
- package/rslib.config.mts +3 -0
- package/rstest.config.mts +28 -2
- package/dist/cjs/boundary-debugger/index.js +0 -317
- package/dist/cjs/core/context/extensions.js +0 -74
- package/dist/cjs/core/context/helmetContext.js +0 -54
- package/dist/cjs/core/server/federatedCss.js +0 -58
- package/dist/cjs/core/server/scriptOrder.js +0 -140
- package/dist/cjs/module-federation/consume-surface.js +0 -199
- package/dist/cjs/module-federation/distributed-ssr.js +0 -135
- package/dist/cjs/module-federation/index.js +0 -316
- package/dist/cjs/module-federation/last-known-good.js +0 -157
- package/dist/cjs/module-federation/manifest-recovery-runtime-plugin.js +0 -129
- package/dist/cjs/module-federation/surface-resolution-types.js +0 -61
- package/dist/cjs/router/runtime/lifecycle.js +0 -167
- package/dist/cjs/router/runtime/provider.js +0 -153
- package/dist/cjs/rsc/server.worker.js +0 -62
- package/dist/esm/boundary-debugger/index.mjs +0 -277
- package/dist/esm/core/context/extensions.mjs +0 -33
- package/dist/esm/core/context/helmetContext.mjs +0 -13
- package/dist/esm/core/server/federatedCss.mjs +0 -20
- package/dist/esm/core/server/scriptOrder.mjs +0 -90
- package/dist/esm/module-federation/consume-surface.mjs +0 -158
- package/dist/esm/module-federation/distributed-ssr.mjs +0 -82
- package/dist/esm/module-federation/index.mjs +0 -115
- package/dist/esm/module-federation/last-known-good.mjs +0 -113
- package/dist/esm/module-federation/manifest-recovery-runtime-plugin.mjs +0 -89
- package/dist/esm/module-federation/surface-resolution-types.mjs +0 -8
- package/dist/esm/router/runtime/lifecycle.mjs +0 -105
- package/dist/esm/router/runtime/provider.mjs +0 -100
- package/dist/esm/rsc/server.worker.mjs +0 -1
- package/dist/esm-node/boundary-debugger/index.mjs +0 -278
- package/dist/esm-node/core/context/extensions.mjs +0 -34
- package/dist/esm-node/core/context/helmetContext.mjs +0 -14
- package/dist/esm-node/core/server/federatedCss.mjs +0 -21
- package/dist/esm-node/core/server/scriptOrder.mjs +0 -91
- package/dist/esm-node/module-federation/consume-surface.mjs +0 -159
- package/dist/esm-node/module-federation/distributed-ssr.mjs +0 -83
- package/dist/esm-node/module-federation/index.mjs +0 -116
- package/dist/esm-node/module-federation/last-known-good.mjs +0 -114
- package/dist/esm-node/module-federation/manifest-recovery-runtime-plugin.mjs +0 -90
- package/dist/esm-node/module-federation/surface-resolution-types.mjs +0 -9
- package/dist/esm-node/router/runtime/lifecycle.mjs +0 -106
- package/dist/esm-node/router/runtime/provider.mjs +0 -101
- package/dist/esm-node/rsc/server.worker.mjs +0 -2
- package/dist/types/boundary-debugger/index.d.ts +0 -28
- package/dist/types/core/context/extensions.d.ts +0 -35
- package/dist/types/core/context/helmetContext.d.ts +0 -10
- package/dist/types/core/server/federatedCss.d.ts +0 -5
- package/dist/types/core/server/scriptOrder.d.ts +0 -25
- package/dist/types/module-federation/consume-surface.d.ts +0 -104
- package/dist/types/module-federation/distributed-ssr.d.ts +0 -61
- package/dist/types/module-federation/index.d.ts +0 -71
- package/dist/types/module-federation/last-known-good.d.ts +0 -52
- package/dist/types/module-federation/manifest-recovery-runtime-plugin.d.ts +0 -25
- package/dist/types/module-federation/surface-resolution-types.d.ts +0 -23
- package/dist/types/router/runtime/lifecycle.d.ts +0 -27
- package/dist/types/router/runtime/provider.d.ts +0 -78
- package/dist/types/rsc/server.worker.d.ts +0 -1
|
@@ -31,15 +31,13 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
31
31
|
LoadableCollector: ()=>LoadableCollector
|
|
32
32
|
});
|
|
33
33
|
const server_namespaceObject = require("@loadable/server");
|
|
34
|
-
const external_federatedCss_js_namespaceObject = require("../federatedCss.js");
|
|
35
|
-
const external_scriptOrder_js_namespaceObject = require("../scriptOrder.js");
|
|
36
34
|
const external_utils_js_namespaceObject = require("../utils.js");
|
|
37
35
|
const extname = (uri)=>{
|
|
38
36
|
if ('string' != typeof uri || !uri.includes('.')) return '';
|
|
39
37
|
return `.${uri?.split('.').pop()}` || '';
|
|
40
38
|
};
|
|
41
39
|
const generateChunks = (chunks, ext)=>chunks.filter((chunk)=>Boolean(chunk.url)).filter((chunk)=>extname(chunk.url).slice(1) === ext);
|
|
42
|
-
const
|
|
40
|
+
const assetToChunk = (asset)=>({
|
|
43
41
|
chunk: asset,
|
|
44
42
|
filename: asset.replace(/^\//, ''),
|
|
45
43
|
linkType: 'preload',
|
|
@@ -50,8 +48,8 @@ const routeAssetToChunk = (asset)=>({
|
|
|
50
48
|
});
|
|
51
49
|
const checkIsInline = (chunk, enableInline)=>{
|
|
52
50
|
if ('production' !== process.env.NODE_ENV) return false;
|
|
53
|
-
if (enableInline instanceof RegExp) return enableInline.test(chunk.url);
|
|
54
|
-
return Boolean(enableInline);
|
|
51
|
+
else if (enableInline instanceof RegExp) return enableInline.test(chunk.url);
|
|
52
|
+
else return Boolean(enableInline);
|
|
55
53
|
};
|
|
56
54
|
const readAsset = async (chunk)=>{
|
|
57
55
|
const fs = await import("fs/promises");
|
|
@@ -85,16 +83,32 @@ class LoadableCollector {
|
|
|
85
83
|
]));
|
|
86
84
|
} catch (e) {}
|
|
87
85
|
const collectedChunks = extractor ? extractor.getChunkAssets(extractor.chunks) : [];
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
86
|
+
const groups = [
|
|
87
|
+
{
|
|
88
|
+
name: 'async-entry',
|
|
89
|
+
assets: asyncChunks
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
name: 'loadable',
|
|
93
|
+
assets: collectedChunks
|
|
94
|
+
}
|
|
95
|
+
];
|
|
96
|
+
const nativeChunks = [
|
|
97
|
+
...asyncChunks,
|
|
98
|
+
...collectedChunks
|
|
99
|
+
];
|
|
100
|
+
const prepare = (kind)=>options.lifecycle?.transformAssets(groups, {
|
|
101
|
+
kind,
|
|
102
|
+
source: 'loadable',
|
|
103
|
+
template: options.template,
|
|
104
|
+
createAsset: assetToChunk
|
|
105
|
+
}) ?? nativeChunks;
|
|
106
|
+
const scriptChunks = generateChunks([
|
|
107
|
+
...prepare("script")
|
|
108
|
+
], 'js');
|
|
109
|
+
const styleChunks = generateChunks([
|
|
110
|
+
...prepare('style')
|
|
111
|
+
], 'css');
|
|
98
112
|
if (extractor) {
|
|
99
113
|
this.emitLoadableScripts(extractor);
|
|
100
114
|
await this.emitScriptAssets(scriptChunks);
|
|
@@ -128,12 +142,12 @@ class LoadableCollector {
|
|
|
128
142
|
const scripts = await Promise.all(chunks.filter((chunk)=>!existedScript.includes(chunk.url) && !this.existsAssets?.includes(chunk.path)).map(async (chunk)=>{
|
|
129
143
|
const script = `<script${attributes} src="${chunk.url}"></script>`;
|
|
130
144
|
if ((0, external_utils_js_namespaceObject.checkIsNode)() && checkIsInline(chunk, inlineStyles)) return readAsset(chunk).then((content)=>`<script>${content}</script>`).catch((_)=>script);
|
|
131
|
-
return script;
|
|
145
|
+
else return script;
|
|
132
146
|
}));
|
|
133
147
|
chunkSet.jsChunk += scripts.filter((script)=>Boolean(script)).join('');
|
|
134
148
|
}
|
|
135
149
|
async emitStyleAssets(chunks) {
|
|
136
|
-
const { template, chunkSet, config
|
|
150
|
+
const { template, chunkSet, config } = this.options;
|
|
137
151
|
const { inlineStyles } = config;
|
|
138
152
|
const atrributes = (0, external_utils_js_namespaceObject.attributesToString)(this.generateAttributes());
|
|
139
153
|
const emittedAssetUrls = new Set();
|
|
@@ -145,14 +159,11 @@ class LoadableCollector {
|
|
|
145
159
|
const css = await Promise.all(emittedChunks.map(async (chunk)=>{
|
|
146
160
|
const link = `<link${atrributes} href="${chunk.url}" rel="stylesheet" />`;
|
|
147
161
|
if ((0, external_utils_js_namespaceObject.checkIsNode)() && checkIsInline(chunk, inlineStyles)) return readAsset(chunk).then((content)=>`<style>${content}</style>`).catch((_)=>link);
|
|
148
|
-
return link;
|
|
162
|
+
else return link;
|
|
149
163
|
}));
|
|
150
164
|
chunkSet.cssChunk += css.filter((css)=>Boolean(css)).join('');
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
attributes: this.generateAttributes(),
|
|
154
|
-
existingAssets: emittedChunks.map((chunk)=>chunk.url)
|
|
155
|
-
});
|
|
165
|
+
this.stylesheetInfo.emittedAssets = emittedChunks.map((chunk)=>chunk.url);
|
|
166
|
+
this.stylesheetInfo.attributes = this.generateAttributes();
|
|
156
167
|
}
|
|
157
168
|
generateAttributes(extraAtr = {}) {
|
|
158
169
|
const { config } = this.options;
|
|
@@ -165,6 +176,10 @@ class LoadableCollector {
|
|
|
165
176
|
};
|
|
166
177
|
}
|
|
167
178
|
constructor(options){
|
|
179
|
+
this.stylesheetInfo = {
|
|
180
|
+
emittedAssets: [],
|
|
181
|
+
attributes: {}
|
|
182
|
+
};
|
|
168
183
|
this.options = options;
|
|
169
184
|
}
|
|
170
185
|
}
|
|
@@ -31,7 +31,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
31
31
|
SSRDataCollector: ()=>SSRDataCollector
|
|
32
32
|
});
|
|
33
33
|
const node_namespaceObject = require("@modern-js/runtime-utils/node");
|
|
34
|
-
const lifecycle_js_namespaceObject = require("../../../router/runtime/lifecycle.js");
|
|
35
34
|
const external_constants_js_namespaceObject = require("../../constants.js");
|
|
36
35
|
const external_utils_js_namespaceObject = require("../utils.js");
|
|
37
36
|
function _check_private_redeclaration(obj, privateCollection) {
|
|
@@ -120,20 +119,15 @@ function getSSRData() {
|
|
|
120
119
|
};
|
|
121
120
|
}
|
|
122
121
|
function getRouterData() {
|
|
123
|
-
const { routerContext,
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
loaderData:
|
|
127
|
-
errors: (0, external_utils_js_namespaceObject.serializeErrors)(
|
|
128
|
-
};
|
|
129
|
-
return routerContext ? {
|
|
130
|
-
loaderData: routerContext.loaderData,
|
|
131
|
-
errors: (0, external_utils_js_namespaceObject.serializeErrors)(routerContext.errors)
|
|
122
|
+
const { routerContext, lifecycle } = _class_private_field_get(this, _options);
|
|
123
|
+
const data = lifecycle?.getRouterData() ?? routerContext;
|
|
124
|
+
return data ? {
|
|
125
|
+
loaderData: data.loaderData,
|
|
126
|
+
errors: (0, external_utils_js_namespaceObject.serializeErrors)(data.errors || null)
|
|
132
127
|
} : void 0;
|
|
133
128
|
}
|
|
134
129
|
function getSSRDataScripts(ssrData, routerData) {
|
|
135
130
|
const { nonce, useJsonScript = false } = _class_private_field_get(this, _options);
|
|
136
|
-
const hydrationScripts = (0, lifecycle_js_namespaceObject.getRouterHydrationScripts)(_class_private_field_get(this, _options).runtimeContext);
|
|
137
131
|
const serializeSSRData = (0, node_namespaceObject.serializeJson)(ssrData);
|
|
138
132
|
const attrsStr = (0, external_utils_js_namespaceObject.attributesToString)({
|
|
139
133
|
nonce
|
|
@@ -143,7 +137,6 @@ function getSSRDataScripts(ssrData, routerData) {
|
|
|
143
137
|
const serializedRouterData = (0, node_namespaceObject.serializeJson)(routerData);
|
|
144
138
|
ssrDataScripts += useJsonScript ? `\n<script type="application/json" id="${external_constants_js_namespaceObject.ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>` : `\n<script${attrsStr}>window._ROUTER_DATA = ${serializedRouterData}</script>`;
|
|
145
139
|
}
|
|
146
|
-
if (hydrationScripts.length) ssrDataScripts += `\n${hydrationScripts.join('\n')}`;
|
|
147
140
|
return ssrDataScripts;
|
|
148
141
|
}
|
|
149
142
|
exports.SSRDataCollector = __webpack_exports__.SSRDataCollector;
|
|
@@ -37,10 +37,9 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
37
37
|
serializeErrors: ()=>serializeErrors,
|
|
38
38
|
shouldRedactServerError: ()=>shouldRedactServerError
|
|
39
39
|
});
|
|
40
|
-
const runtime_extensions_namespaceObject = require("@modern-js/runtime-extensions");
|
|
41
40
|
const routerHelper_js_namespaceObject = require("../../router/runtime/routerHelper.js");
|
|
42
41
|
function attributesToString(attributes) {
|
|
43
|
-
return Object.entries(attributes).reduce((str, [key, value])=>void 0 !== value &&
|
|
42
|
+
return Object.entries(attributes).reduce((str, [key, value])=>void 0 !== value && /^[^\u0000-\u0020"'<>/=]+$/u.test(key) ? `${str} ${key}="${String(value).replaceAll('&', '&').replaceAll('"', '"').replaceAll('<', '<').replaceAll('>', '>')}"` : str, '');
|
|
44
43
|
}
|
|
45
44
|
function safeReplace(source, searchValue, replaceValue) {
|
|
46
45
|
return source.replace(searchValue, ()=>replaceValue);
|
package/dist/cjs/exports/head.js
CHANGED
|
@@ -41,24 +41,17 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
41
41
|
Helmet: ()=>Helmet,
|
|
42
42
|
default: ()=>exports_head
|
|
43
43
|
});
|
|
44
|
-
const
|
|
44
|
+
const context_namespaceObject = require("@modern-js/runtime/context");
|
|
45
45
|
const external_react_namespaceObject = require("react");
|
|
46
46
|
var external_react_default = /*#__PURE__*/ __webpack_require__.n(external_react_namespaceObject);
|
|
47
47
|
const external_react_helmet_async_namespaceObject = require("react-helmet-async");
|
|
48
|
-
const index_js_namespaceObject = require("../core/context/index.js");
|
|
49
|
-
const helmetContext_js_namespaceObject = require("../core/context/helmetContext.js");
|
|
50
|
-
const collectServerHelmet = (runtimeContext, props)=>{
|
|
51
|
-
const helmetContext = (0, helmetContext_js_namespaceObject.ensureHelmetContext)(runtimeContext);
|
|
52
|
-
const createRecord = ()=>runtime_extensions_namespaceObject.createHelmetRecord(external_react_default(), props);
|
|
53
|
-
const deriveState = (records)=>runtime_extensions_namespaceObject.deriveHelmetServerState(external_react_default(), records);
|
|
54
|
-
const marker = runtime_extensions_namespaceObject.collectHeadState(runtimeContext, createRecord, deriveState, helmetContext);
|
|
55
|
-
if (void 0 !== marker) return marker;
|
|
56
|
-
helmetContext.helmet = runtime_extensions_namespaceObject.collectImmediateHelmetState(external_react_default(), helmetContext, createRecord());
|
|
57
|
-
};
|
|
58
48
|
const Helmet = (props)=>{
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
49
|
+
const resolveComponent = external_react_default().useContext(context_namespaceObject.RuntimeComponentResolverContext);
|
|
50
|
+
const Component = resolveComponent?.(external_react_helmet_async_namespaceObject.Helmet, {
|
|
51
|
+
name: 'head.Helmet'
|
|
52
|
+
}) ?? external_react_helmet_async_namespaceObject.Helmet;
|
|
53
|
+
if (Component === Helmet) throw new Error('A component resolver cannot resolve head.Helmet to itself.');
|
|
54
|
+
return external_react_default().createElement(Component, props);
|
|
62
55
|
};
|
|
63
56
|
const head = {
|
|
64
57
|
Helmet,
|
package/dist/cjs/internal.js
CHANGED
|
@@ -28,9 +28,9 @@ var __webpack_require__ = {};
|
|
|
28
28
|
var __webpack_exports__ = {};
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
-
InternalRuntimeContext: ()=>
|
|
31
|
+
InternalRuntimeContext: ()=>context_namespaceObject.InternalRuntimeContext
|
|
32
32
|
});
|
|
33
|
-
const
|
|
33
|
+
const context_namespaceObject = require("@modern-js/runtime/context");
|
|
34
34
|
exports.InternalRuntimeContext = __webpack_exports__.InternalRuntimeContext;
|
|
35
35
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
36
36
|
"InternalRuntimeContext"
|
|
@@ -76,8 +76,7 @@ const optimizeRoute = (routeTree)=>{
|
|
|
76
76
|
children: optimizedChildren
|
|
77
77
|
}
|
|
78
78
|
];
|
|
79
|
-
}
|
|
80
|
-
{
|
|
79
|
+
} else {
|
|
81
80
|
const newRoutes = children.map((child)=>{
|
|
82
81
|
const routePath = routeTree.path ? `${routeTree.path}${child.path ? `/${child.path}` : ''}` : child.path || '';
|
|
83
82
|
const newRoute = {
|
|
@@ -61,7 +61,7 @@ const walkDirectory = (dir)=>external_fs_default().readdirSync(dir).reduce((prev
|
|
|
61
61
|
...previous,
|
|
62
62
|
...walkDirectory(filePath)
|
|
63
63
|
];
|
|
64
|
-
return [
|
|
64
|
+
else return [
|
|
65
65
|
...previous,
|
|
66
66
|
filePath
|
|
67
67
|
];
|
|
@@ -78,7 +78,7 @@ const isPageComponentFile = (filePath)=>{
|
|
|
78
78
|
};
|
|
79
79
|
const replaceWithAlias = (base, filePath, alias)=>{
|
|
80
80
|
if (filePath.includes(base)) return (0, utils_namespaceObject.normalizeToPosixPath)(external_path_default().join(alias, external_path_default().relative(base, filePath)));
|
|
81
|
-
return filePath;
|
|
81
|
+
else return filePath;
|
|
82
82
|
};
|
|
83
83
|
const parseModule = async ({ source, filename })=>{
|
|
84
84
|
let content = source;
|
|
@@ -83,7 +83,7 @@ const DeferredDataScripts = (props)=>{
|
|
|
83
83
|
(0, node_namespaceObject.serializeJson)(key)
|
|
84
84
|
]
|
|
85
85
|
};
|
|
86
|
-
{
|
|
86
|
+
else {
|
|
87
87
|
const trackedPromise = deferredData.data[key];
|
|
88
88
|
if (void 0 !== trackedPromise._error) {
|
|
89
89
|
const error = toDeferredErrorInfo(trackedPromise._error);
|
|
@@ -95,15 +95,16 @@ const DeferredDataScripts = (props)=>{
|
|
|
95
95
|
(0, node_namespaceObject.serializeJson)(error)
|
|
96
96
|
]
|
|
97
97
|
};
|
|
98
|
+
} else {
|
|
99
|
+
if (void 0 === trackedPromise._data) throw new Error(`The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise`);
|
|
100
|
+
return {
|
|
101
|
+
key,
|
|
102
|
+
routerDataFnName: 'p',
|
|
103
|
+
routerDataFnArgs: [
|
|
104
|
+
(0, node_namespaceObject.serializeJson)(trackedPromise._data)
|
|
105
|
+
]
|
|
106
|
+
};
|
|
98
107
|
}
|
|
99
|
-
if (void 0 === trackedPromise._data) throw new Error(`The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise`);
|
|
100
|
-
return {
|
|
101
|
-
key,
|
|
102
|
-
routerDataFnName: 'p',
|
|
103
|
-
routerDataFnArgs: [
|
|
104
|
-
(0, node_namespaceObject.serializeJson)(trackedPromise._data)
|
|
105
|
-
]
|
|
106
|
-
};
|
|
107
108
|
}
|
|
108
109
|
});
|
|
109
110
|
return {
|
|
@@ -70,11 +70,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
70
70
|
NavLink: ()=>NavLink
|
|
71
71
|
});
|
|
72
72
|
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
73
|
-
const
|
|
73
|
+
const context_namespaceObject = require("@modern-js/runtime/context");
|
|
74
74
|
const router_namespaceObject = require("@modern-js/runtime-utils/router");
|
|
75
75
|
const external_react_namespaceObject = require("react");
|
|
76
76
|
var external_react_default = /*#__PURE__*/ __webpack_require__.n(external_react_namespaceObject);
|
|
77
|
-
const index_js_namespaceObject = require("../../core/context/index.js");
|
|
78
77
|
const getWebpackChunkLoader = ()=>__webpack_chunk_load__;
|
|
79
78
|
const getWebpackPublicPath = ()=>{
|
|
80
79
|
try {
|
|
@@ -90,62 +89,6 @@ function composeEventHandlers(theirHandler, ourHandler) {
|
|
|
90
89
|
};
|
|
91
90
|
}
|
|
92
91
|
const ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;
|
|
93
|
-
const DEFAULT_PREFETCH_BEHAVIOR = 'render';
|
|
94
|
-
const INTENT_DELAY = 100;
|
|
95
|
-
const VIEWPORT_ROOT_MARGIN = '200px';
|
|
96
|
-
const MAX_CONCURRENT_WARMUPS = 4;
|
|
97
|
-
const WARMUP_TTL = 30000;
|
|
98
|
-
const SLOW_EFFECTIVE_TYPES = new Set([
|
|
99
|
-
'slow-2g',
|
|
100
|
-
'2g'
|
|
101
|
-
]);
|
|
102
|
-
const warmupCache = new Map();
|
|
103
|
-
const warmupQueue = [];
|
|
104
|
-
let activeWarmups = 0;
|
|
105
|
-
const getWarmupTimestamp = ()=>performance.now();
|
|
106
|
-
const getConnection = ()=>{
|
|
107
|
-
const nav = globalThis.navigator;
|
|
108
|
-
return nav?.connection || nav?.mozConnection || nav?.webkitConnection;
|
|
109
|
-
};
|
|
110
|
-
const shouldWarmupOnCurrentNetwork = ()=>{
|
|
111
|
-
const connection = getConnection();
|
|
112
|
-
if (connection?.saveData) return false;
|
|
113
|
-
if ('string' == typeof connection?.effectiveType && SLOW_EFFECTIVE_TYPES.has(connection.effectiveType)) return false;
|
|
114
|
-
return true;
|
|
115
|
-
};
|
|
116
|
-
const pruneWarmupCache = (now = getWarmupTimestamp())=>{
|
|
117
|
-
for (const [key, timestamp] of warmupCache)if (now - timestamp > WARMUP_TTL) warmupCache.delete(key);
|
|
118
|
-
};
|
|
119
|
-
const runNextWarmup = ()=>{
|
|
120
|
-
while(activeWarmups < MAX_CONCURRENT_WARMUPS && warmupQueue.length > 0){
|
|
121
|
-
const task = warmupQueue.shift();
|
|
122
|
-
if (task.cancelled) continue;
|
|
123
|
-
activeWarmups += 1;
|
|
124
|
-
task.run().catch(()=>{
|
|
125
|
-
warmupCache.delete(task.key);
|
|
126
|
-
}).finally(()=>{
|
|
127
|
-
activeWarmups -= 1;
|
|
128
|
-
runNextWarmup();
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
const scheduleWarmup = (key, run)=>{
|
|
133
|
-
if (!shouldWarmupOnCurrentNetwork()) return ()=>{};
|
|
134
|
-
pruneWarmupCache();
|
|
135
|
-
if (warmupCache.has(key)) return ()=>{};
|
|
136
|
-
warmupCache.set(key, getWarmupTimestamp());
|
|
137
|
-
const task = {
|
|
138
|
-
key,
|
|
139
|
-
run,
|
|
140
|
-
cancelled: false
|
|
141
|
-
};
|
|
142
|
-
warmupQueue.push(task);
|
|
143
|
-
runNextWarmup();
|
|
144
|
-
return ()=>{
|
|
145
|
-
task.cancelled = true;
|
|
146
|
-
if (warmupQueue.includes(task)) warmupCache.delete(task.key);
|
|
147
|
-
};
|
|
148
|
-
};
|
|
149
92
|
const setRef = (ref, value)=>{
|
|
150
93
|
if (!ref) return;
|
|
151
94
|
if ('function' == typeof ref) return void ref(value);
|
|
@@ -153,70 +96,65 @@ const setRef = (ref, value)=>{
|
|
|
153
96
|
ref.current = value;
|
|
154
97
|
} catch {}
|
|
155
98
|
};
|
|
156
|
-
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const [
|
|
163
|
-
const
|
|
164
|
-
const [viewportElement, setViewportElement] = external_react_default().useState(null);
|
|
99
|
+
function usePrefetchBehavior(prefetch, preload, theirElementProps, policy) {
|
|
100
|
+
const [maybePrefetch, setMaybePrefetch] = external_react_default().useState(false);
|
|
101
|
+
const [state, setState] = external_react_default().useState({
|
|
102
|
+
code: false,
|
|
103
|
+
data: false
|
|
104
|
+
});
|
|
105
|
+
const [element, setElement] = external_react_default().useState(null);
|
|
106
|
+
const observerRef = external_react_default().useRef(void 0);
|
|
165
107
|
const { onFocus, onBlur, onMouseEnter, onMouseLeave, onTouchStart } = theirElementProps;
|
|
166
108
|
external_react_default().useEffect(()=>{
|
|
167
|
-
if (
|
|
168
|
-
|
|
109
|
+
if (!policy) return void setState({
|
|
110
|
+
code: 'render' === prefetch,
|
|
111
|
+
data: 'render' === prefetch
|
|
112
|
+
});
|
|
113
|
+
const observer = policy.observe({
|
|
114
|
+
element,
|
|
115
|
+
prefetch,
|
|
116
|
+
preload,
|
|
117
|
+
notify: (next)=>setState((previous)=>previous.code === next.code && previous.data === next.data ? previous : next)
|
|
118
|
+
});
|
|
119
|
+
observerRef.current = observer;
|
|
120
|
+
return ()=>{
|
|
121
|
+
observerRef.current = void 0;
|
|
122
|
+
observer.dispose();
|
|
123
|
+
};
|
|
169
124
|
}, [
|
|
125
|
+
policy,
|
|
170
126
|
prefetch,
|
|
171
|
-
preload
|
|
127
|
+
preload,
|
|
128
|
+
element
|
|
129
|
+
]);
|
|
130
|
+
external_react_default().useEffect(()=>{
|
|
131
|
+
if (policy || !maybePrefetch) return;
|
|
132
|
+
const timer = setTimeout(()=>setState({
|
|
133
|
+
code: true,
|
|
134
|
+
data: true
|
|
135
|
+
}), 100);
|
|
136
|
+
return ()=>clearTimeout(timer);
|
|
137
|
+
}, [
|
|
138
|
+
policy,
|
|
139
|
+
maybePrefetch
|
|
172
140
|
]);
|
|
173
141
|
const setIntent = ()=>{
|
|
174
|
-
if (
|
|
142
|
+
if (policy) observerRef.current?.onIntent();
|
|
143
|
+
else if ('intent' === prefetch) setMaybePrefetch(true);
|
|
175
144
|
};
|
|
176
145
|
const cancelIntent = ()=>{
|
|
177
|
-
if (
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
146
|
+
if (policy) observerRef.current?.onCancel();
|
|
147
|
+
else if ('intent' === prefetch) {
|
|
148
|
+
setMaybePrefetch(false);
|
|
149
|
+
setState({
|
|
150
|
+
code: false,
|
|
151
|
+
data: false
|
|
152
|
+
});
|
|
181
153
|
}
|
|
182
154
|
};
|
|
183
|
-
external_react_default().useEffect(()=>{
|
|
184
|
-
if (maybeWarmup) {
|
|
185
|
-
const id = setTimeout(()=>{
|
|
186
|
-
if ('intent' === prefetch) setShouldPrefetch(true);
|
|
187
|
-
if ('intent' === preload) setShouldPreload(true);
|
|
188
|
-
}, INTENT_DELAY);
|
|
189
|
-
return ()=>{
|
|
190
|
-
clearTimeout(id);
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
}, [
|
|
194
|
-
maybeWarmup,
|
|
195
|
-
prefetch,
|
|
196
|
-
preload
|
|
197
|
-
]);
|
|
198
|
-
external_react_default().useEffect(()=>{
|
|
199
|
-
if (!viewportElement || 'viewport' !== prefetch && 'viewport' !== preload || "u" < typeof IntersectionObserver) return;
|
|
200
|
-
const observer = new IntersectionObserver((entries)=>{
|
|
201
|
-
if (!entries.some((entry)=>entry.isIntersecting)) return;
|
|
202
|
-
if ('viewport' === prefetch) setShouldPrefetch(true);
|
|
203
|
-
if ('viewport' === preload) setShouldPreload(true);
|
|
204
|
-
observer.disconnect();
|
|
205
|
-
}, {
|
|
206
|
-
rootMargin: VIEWPORT_ROOT_MARGIN
|
|
207
|
-
});
|
|
208
|
-
observer.observe(viewportElement);
|
|
209
|
-
return ()=>{
|
|
210
|
-
observer.disconnect();
|
|
211
|
-
};
|
|
212
|
-
}, [
|
|
213
|
-
prefetch,
|
|
214
|
-
preload,
|
|
215
|
-
viewportElement
|
|
216
|
-
]);
|
|
217
155
|
return [
|
|
218
|
-
|
|
219
|
-
|
|
156
|
+
state.data,
|
|
157
|
+
state.code,
|
|
220
158
|
{
|
|
221
159
|
onFocus: composeEventHandlers(onFocus, setIntent),
|
|
222
160
|
onBlur: composeEventHandlers(onBlur, cancelIntent),
|
|
@@ -224,7 +162,7 @@ function usePrefetchBehavior(prefetch, preload, theirElementProps) {
|
|
|
224
162
|
onMouseLeave: composeEventHandlers(onMouseLeave, cancelIntent),
|
|
225
163
|
onTouchStart: composeEventHandlers(onTouchStart, setIntent)
|
|
226
164
|
},
|
|
227
|
-
|
|
165
|
+
setElement
|
|
228
166
|
];
|
|
229
167
|
}
|
|
230
168
|
async function loadRouteModule(route, routeAssets, chunkLoader) {
|
|
@@ -262,10 +200,11 @@ const getDataHref = (route, pathname, basename)=>{
|
|
|
262
200
|
};
|
|
263
201
|
const PrefetchPageLinks = ({ path, includeData })=>{
|
|
264
202
|
const { pathname } = path;
|
|
265
|
-
const context = (0, external_react_namespaceObject.useContext)(
|
|
203
|
+
const context = (0, external_react_namespaceObject.useContext)(context_namespaceObject.InternalRuntimeContext);
|
|
266
204
|
const { routeManifest, routes } = context;
|
|
267
205
|
const { routeAssets } = routeManifest || {};
|
|
268
|
-
const
|
|
206
|
+
const policy = context.linkPrefetchPolicy;
|
|
207
|
+
const allowNetworkWarmup = policy?.canWarmup() ?? true;
|
|
269
208
|
const matches = (0, external_react_namespaceObject.useMemo)(()=>Array.isArray(routes) ? (0, router_namespaceObject.matchRoutes)(routes, pathname) : [], [
|
|
270
209
|
pathname,
|
|
271
210
|
routes
|
|
@@ -285,7 +224,16 @@ const PrefetchPageLinks = ({ path, includeData })=>{
|
|
|
285
224
|
const routeAsset = routeId ? routeAssets[routeId] : void 0;
|
|
286
225
|
const chunkIds = routeAsset?.chunkIds;
|
|
287
226
|
if (!routeId || !Array.isArray(chunkIds) || 0 === chunkIds.length) return ()=>{};
|
|
288
|
-
|
|
227
|
+
const run = ()=>loadRouteModule(match.route, routeAssets, chunkLoader);
|
|
228
|
+
if (policy) return policy.schedule({
|
|
229
|
+
runtimeContext: context,
|
|
230
|
+
chunkLoader,
|
|
231
|
+
publicPath: getWebpackPublicPath(),
|
|
232
|
+
key: `route-module:${routeId}:${chunkIds.join(',')}`,
|
|
233
|
+
run
|
|
234
|
+
});
|
|
235
|
+
run().catch(()=>{});
|
|
236
|
+
return ()=>{};
|
|
289
237
|
});
|
|
290
238
|
return ()=>{
|
|
291
239
|
cancellations.forEach((cancel)=>cancel());
|
|
@@ -294,6 +242,7 @@ const PrefetchPageLinks = ({ path, includeData })=>{
|
|
|
294
242
|
allowNetworkWarmup,
|
|
295
243
|
chunkLoader,
|
|
296
244
|
context,
|
|
245
|
+
policy,
|
|
297
246
|
routeAssetGeneration
|
|
298
247
|
]);
|
|
299
248
|
if (!allowNetworkWarmup || !includeData || !window._SSR_DATA) return null;
|
|
@@ -305,10 +254,11 @@ const PrefetchPageLinks = ({ path, includeData })=>{
|
|
|
305
254
|
};
|
|
306
255
|
const PrefetchDataLinks = ({ matches, path, routeManifest })=>{
|
|
307
256
|
const { pathname, search, hash } = path;
|
|
257
|
+
const policy = (0, external_react_namespaceObject.useContext)(context_namespaceObject.InternalRuntimeContext).linkPrefetchPolicy;
|
|
308
258
|
const currentMatches = (0, router_namespaceObject.useMatches)();
|
|
309
259
|
const basename = (0, router_namespaceObject.useHref)('/');
|
|
310
260
|
const dataHrefs = (0, external_react_namespaceObject.useMemo)(()=>matches?.filter((match, index)=>{
|
|
311
|
-
if (
|
|
261
|
+
if (policy?.allowData(match.route) === false || !match.route.loader || 'function' != typeof match.route.loader || 0 === match.route.loader.length) return false;
|
|
312
262
|
if (match.route.shouldRevalidate) {
|
|
313
263
|
const currentUrl = new URL(location.pathname + location.search + location.hash, window.origin);
|
|
314
264
|
const nextUrl = new URL(pathname + search + hash, window.origin);
|
|
@@ -335,16 +285,10 @@ const PrefetchDataLinks = ({ matches, path, routeManifest })=>{
|
|
|
335
285
|
children: dataHrefs
|
|
336
286
|
});
|
|
337
287
|
};
|
|
338
|
-
const
|
|
339
|
-
if (false === preload || 'none' === preload) return 'none';
|
|
340
|
-
if (void 0 !== preload) return preload;
|
|
341
|
-
if ('none' === prefetch) return 'none';
|
|
342
|
-
return prefetch;
|
|
343
|
-
};
|
|
344
|
-
const createPrefetchLink = (Link)=>/*#__PURE__*/ (external_react_default()).forwardRef(({ to, prefetch = DEFAULT_PREFETCH_BEHAVIOR, preload, ...props }, forwardedRef)=>{
|
|
288
|
+
const createPrefetchLink = (Link)=>/*#__PURE__*/ (external_react_default()).forwardRef(({ to, prefetch, preload, ...props }, forwardedRef)=>{
|
|
345
289
|
const isAbsolute = 'string' == typeof to && ABSOLUTE_URL_REGEX.test(to);
|
|
346
|
-
const
|
|
347
|
-
const [shouldPrefetch, shouldPreload, prefetchHandlers, setViewportElement] = usePrefetchBehavior(prefetch,
|
|
290
|
+
const policy = (0, external_react_namespaceObject.useContext)(context_namespaceObject.InternalRuntimeContext).linkPrefetchPolicy;
|
|
291
|
+
const [shouldPrefetch, shouldPreload, prefetchHandlers, setViewportElement] = usePrefetchBehavior(prefetch, preload, props, policy);
|
|
348
292
|
const setAnchorRef = external_react_default().useCallback((element)=>{
|
|
349
293
|
setViewportElement(element);
|
|
350
294
|
setRef(forwardedRef, element);
|
|
@@ -33,7 +33,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
33
33
|
onAfterHydrateRouter: ()=>onAfterHydrateRouter,
|
|
34
34
|
onBeforeCreateRouter: ()=>onBeforeCreateRouter,
|
|
35
35
|
onBeforeCreateRoutes: ()=>onBeforeCreateRoutes,
|
|
36
|
-
onBeforeHydrateRouter: ()=>onBeforeHydrateRouter
|
|
36
|
+
onBeforeHydrateRouter: ()=>onBeforeHydrateRouter,
|
|
37
|
+
routerProviderRegistryHooks: ()=>routerProviderRegistryHooks
|
|
37
38
|
});
|
|
38
39
|
const plugin_namespaceObject = require("@modern-js/plugin");
|
|
39
40
|
const createRouterSyncHook = ()=>(0, plugin_namespaceObject.createSyncHook)();
|
|
@@ -43,19 +44,29 @@ const onBeforeCreateRouter = createRouterSyncHook();
|
|
|
43
44
|
const onAfterCreateRouter = createRouterSyncHook();
|
|
44
45
|
const onBeforeHydrateRouter = createRouterSyncHook();
|
|
45
46
|
const onAfterHydrateRouter = createRouterSyncHook();
|
|
47
|
+
const routerProviderRegistryHooks = {
|
|
48
|
+
modifyRoutes,
|
|
49
|
+
onBeforeCreateRoutes,
|
|
50
|
+
onBeforeCreateRouter,
|
|
51
|
+
onAfterCreateRouter,
|
|
52
|
+
onBeforeHydrateRouter,
|
|
53
|
+
onAfterHydrateRouter
|
|
54
|
+
};
|
|
46
55
|
exports.modifyRoutes = __webpack_exports__.modifyRoutes;
|
|
47
56
|
exports.onAfterCreateRouter = __webpack_exports__.onAfterCreateRouter;
|
|
48
57
|
exports.onAfterHydrateRouter = __webpack_exports__.onAfterHydrateRouter;
|
|
49
58
|
exports.onBeforeCreateRouter = __webpack_exports__.onBeforeCreateRouter;
|
|
50
59
|
exports.onBeforeCreateRoutes = __webpack_exports__.onBeforeCreateRoutes;
|
|
51
60
|
exports.onBeforeHydrateRouter = __webpack_exports__.onBeforeHydrateRouter;
|
|
61
|
+
exports.routerProviderRegistryHooks = __webpack_exports__.routerProviderRegistryHooks;
|
|
52
62
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
53
63
|
"modifyRoutes",
|
|
54
64
|
"onAfterCreateRouter",
|
|
55
65
|
"onAfterHydrateRouter",
|
|
56
66
|
"onBeforeCreateRouter",
|
|
57
67
|
"onBeforeCreateRoutes",
|
|
58
|
-
"onBeforeHydrateRouter"
|
|
68
|
+
"onBeforeHydrateRouter",
|
|
69
|
+
"routerProviderRegistryHooks"
|
|
59
70
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
60
71
|
Object.defineProperty(exports, '__esModule', {
|
|
61
72
|
value: true
|