astro 0.22.12 → 0.22.13
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/core/build/page-data.js +4 -4
- package/dist/core/build/static-build.js +29 -6
- package/dist/core/ssr/index.js +19 -21
- package/dist/core/ssr/route-cache.js +44 -0
- package/dist/types/@types/astro.d.ts +7 -3
- package/dist/types/core/ssr/index.d.ts +2 -1
- package/dist/types/core/ssr/route-cache.d.ts +8 -0
- package/package.json +1 -1
|
@@ -3,8 +3,8 @@ import * as colors from "kleur/colors";
|
|
|
3
3
|
import { debug } from "../logger.js";
|
|
4
4
|
import { preload as ssrPreload } from "../ssr/index.js";
|
|
5
5
|
import { validateGetStaticPathsModule, validateGetStaticPathsResult } from "../ssr/routing.js";
|
|
6
|
-
import { generatePaginateFunction } from "../ssr/paginate.js";
|
|
7
6
|
import { generateRssFunction } from "../ssr/rss.js";
|
|
7
|
+
import { assignStaticPaths } from "../ssr/route-cache.js";
|
|
8
8
|
async function collectPagesData(opts) {
|
|
9
9
|
const { astroConfig, logging, manifest, origin, routeCache, viteServer } = opts;
|
|
10
10
|
const assets = {};
|
|
@@ -78,8 +78,8 @@ async function getStaticPathsForRoute(opts, route) {
|
|
|
78
78
|
const mod = await viteServer.ssrLoadModule(fileURLToPath(filePath));
|
|
79
79
|
validateGetStaticPathsModule(mod);
|
|
80
80
|
const rss = generateRssFunction(astroConfig.buildOptions.site, route);
|
|
81
|
-
|
|
82
|
-
routeCache[route.component]
|
|
81
|
+
await assignStaticPaths(routeCache, route, mod, rss.generator);
|
|
82
|
+
const staticPaths = routeCache[route.component];
|
|
83
83
|
validateGetStaticPathsResult(staticPaths, logging);
|
|
84
84
|
return {
|
|
85
85
|
paths: staticPaths.map((staticPath) => staticPath.params && route.generate(staticPath.params)).filter(Boolean),
|
|
@@ -89,4 +89,4 @@ async function getStaticPathsForRoute(opts, route) {
|
|
|
89
89
|
export {
|
|
90
90
|
collectPagesData
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvYnVpbGQvcGFnZS1kYXRhLnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFpQkEsZ0NBQXVDLE1BQWdFO0FBQ3RHLFFBQU0sRUFBRSxhQUFhLFNBQVMsVUFBVSxRQUFRLFlBQVksZUFBZTtBQUUzRSxRQUFNLFNBQWlDO0FBQ3ZDLFFBQU0sV0FBeUI7QUFNL0IsUUFBTSxRQUFRLElBQ2IsU0FBUyxPQUFPLElBQUksT0FBTyxVQUFVO0FBeEN2QztBQTBDRyxRQUFJLE1BQU0sVUFBVTtBQUNuQixlQUFTLE1BQU0sYUFBYTtBQUFBLFFBQzNCO0FBQUEsUUFDQSxPQUFPLENBQUMsTUFBTTtBQUFBLFFBQ2QsU0FBUyxNQUFNLFdBQVc7QUFBQSxVQUN6QjtBQUFBLFVBQ0EsVUFBVSxJQUFJLElBQUksS0FBSyxNQUFNLGFBQWEsWUFBWTtBQUFBLFVBQ3REO0FBQUEsVUFDQSxNQUFNO0FBQUEsVUFDTjtBQUFBLFVBQ0EsVUFBVSxNQUFNO0FBQUEsVUFDaEI7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFdBRUMsS0FBSyxDQUFDLFdBQVc7QUFDakIsZ0JBQU0sT0FBTyxHQUFHLE1BQU0sV0FBVyxRQUFRLFFBQVE7QUFDakQsZ0JBQU0sU0FBUyxTQUFTLHNCQUFPLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBUyxNQUFNLG9CQUFlLE9BQU8sT0FBTztBQUNwRyxpQkFBTztBQUFBLFdBRVAsTUFBTSxDQUFDLFFBQVE7QUFDZixnQkFBTSxTQUFTLFNBQVMsc0JBQU8sT0FBTyxLQUFLLE9BQU8sSUFBSSxjQUFTLE1BQU07QUFDckUsZ0JBQU07QUFBQTtBQUFBO0FBR1Q7QUFBQTtBQUdELFVBQU0sU0FBUyxNQUFNLHVCQUF1QixNQUFNLE9BQ2hELEtBQUssQ0FBQyxXQUFXO0FBQ2pCLFlBQU0sUUFBUSxPQUFPLE1BQU0sV0FBVyxJQUFJLFNBQVM7QUFDbkQsWUFBTSxTQUFTLFNBQVMsc0JBQU8sT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFTLE1BQU0sb0JBQWUsT0FBTyxRQUFRLElBQUksT0FBTyxNQUFNLFVBQVU7QUFDaEksYUFBTztBQUFBLE9BRVAsTUFBTSxDQUFDLFFBQVE7QUFDZixZQUFNLFNBQVMsU0FBUyxzQkFBTyxPQUFPLEtBQUssT0FBTyxJQUFJLGNBQVMsTUFBTTtBQUNyRSxZQUFNO0FBQUE7QUFFUixRQUFJLGFBQU8sUUFBUCxtQkFBWSxLQUFLO0FBQ3BCLFlBQU0sVUFBVSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksUUFBUSxRQUFRLE9BQU8sWUFBWTtBQUMxRSxVQUFJLE9BQU8sY0FBYyxXQUFXO0FBQ25DLGNBQU0sSUFBSSxNQUFNLDZCQUE2QixPQUFPLElBQUk7QUFBQSxtRUFBeUYsTUFBTTtBQUFBO0FBRXhKLGFBQU8sY0FBYyxZQUFZLE9BQU8sSUFBSTtBQUFBO0FBRTdDLGFBQVMsTUFBTSxhQUFhO0FBQUEsTUFDM0I7QUFBQSxNQUNBLE9BQU8sT0FBTztBQUFBLE1BQ2QsU0FBUyxNQUFNLFdBQVc7QUFBQSxRQUN6QjtBQUFBLFFBQ0EsVUFBVSxJQUFJLElBQUksS0FBSyxNQUFNLGFBQWEsWUFBWTtBQUFBLFFBQ3REO0FBQUEsUUFDQSxNQUFNO0FBQUEsUUFDTjtBQUFBLFFBQ0EsVUFBVSxPQUFPLE1BQU07QUFBQSxRQUN2QjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUE7QUFBQTtBQUFBO0FBTUosU0FBTyxFQUFFLFFBQVE7QUFBQTtBQUdsQixzQ0FBc0MsTUFBK0IsT0FBaUU7QUFDckksUUFBTSxFQUFFLGFBQWEsU0FBUyxZQUFZLGVBQWU7QUFDekQsTUFBSSxDQUFDO0FBQVksVUFBTSxJQUFJLE1BQU07QUFDakMsUUFBTSxXQUFXLElBQUksSUFBSSxLQUFLLE1BQU0sYUFBYSxZQUFZO0FBQzdELFFBQU0sTUFBTyxNQUFNLFdBQVcsY0FBYyxjQUFjO0FBQzFELCtCQUE2QjtBQUM3QixRQUFNLE1BQU0sb0JBQW9CLFlBQVksYUFBYSxNQUFNO0FBQy9ELFFBQU0sa0JBQWtCLFlBQVksT0FBTyxLQUFLLElBQUk7QUFDcEQsUUFBTSxjQUFjLFdBQVcsTUFBTTtBQUNyQywrQkFBNkIsYUFBYTtBQUMxQyxTQUFPO0FBQUEsSUFDTixPQUFPLFlBQVksSUFBSSxDQUFDLGVBQWUsV0FBVyxVQUFVLE1BQU0sU0FBUyxXQUFXLFNBQVMsT0FBTztBQUFBLElBQ3RHLEtBQUssSUFBSTtBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -10,6 +10,7 @@ import { getParamsAndProps } from "../ssr/index.js";
|
|
|
10
10
|
import { createResult } from "../ssr/result.js";
|
|
11
11
|
import { renderPage } from "../../runtime/server/index.js";
|
|
12
12
|
import { prepareOutDir } from "./fs.js";
|
|
13
|
+
const MAX_CONCURRENT_RENDERS = 10;
|
|
13
14
|
function addPageName(pathname, opts) {
|
|
14
15
|
const pathrepl = opts.astroConfig.buildOptions.pageUrlFormat === "directory" ? "/index.html" : pathname === "/" ? "index.html" : ".html";
|
|
15
16
|
opts.pageNames.push(pathname.replace(/\/?$/, pathrepl).replace(/^\//, ""));
|
|
@@ -21,6 +22,23 @@ function chunkIsPage(output, internals) {
|
|
|
21
22
|
const chunk = output;
|
|
22
23
|
return chunk.facadeModuleId && (internals.entrySpecifierToBundleMap.has(chunk.facadeModuleId) || internals.entrySpecifierToBundleMap.has("/" + chunk.facadeModuleId));
|
|
23
24
|
}
|
|
25
|
+
function* throttle(max, inPaths) {
|
|
26
|
+
let tmp = [];
|
|
27
|
+
let i = 0;
|
|
28
|
+
for (let path of inPaths) {
|
|
29
|
+
tmp.push(path);
|
|
30
|
+
if (i === max) {
|
|
31
|
+
yield tmp;
|
|
32
|
+
tmp.length = 0;
|
|
33
|
+
i = 0;
|
|
34
|
+
} else {
|
|
35
|
+
i++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (tmp.length) {
|
|
39
|
+
yield tmp;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
24
42
|
async function staticBuild(opts) {
|
|
25
43
|
const { allPages, astroConfig } = opts;
|
|
26
44
|
const pageInput = new Set();
|
|
@@ -166,10 +184,14 @@ async function generatePage(output, opts, internals, facadeIdToPageDataMap, rend
|
|
|
166
184
|
Component,
|
|
167
185
|
renderers
|
|
168
186
|
};
|
|
169
|
-
const renderPromises =
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
187
|
+
const renderPromises = [];
|
|
188
|
+
for (const paths of throttle(MAX_CONCURRENT_RENDERS, pageData.paths)) {
|
|
189
|
+
for (const path of paths) {
|
|
190
|
+
renderPromises.push(generatePath(path, opts, generationOptions));
|
|
191
|
+
}
|
|
192
|
+
await Promise.all(renderPromises);
|
|
193
|
+
renderPromises.length = 0;
|
|
194
|
+
}
|
|
173
195
|
}
|
|
174
196
|
async function generatePath(pathname, opts, gopts) {
|
|
175
197
|
const { astroConfig, logging, origin, pageNames, routeCache } = opts;
|
|
@@ -182,7 +204,8 @@ async function generatePath(pathname, opts, gopts) {
|
|
|
182
204
|
routeCache,
|
|
183
205
|
logging,
|
|
184
206
|
pathname,
|
|
185
|
-
mod
|
|
207
|
+
mod,
|
|
208
|
+
validate: false
|
|
186
209
|
});
|
|
187
210
|
debug(logging, "generate", `Generating: ${pathname}`);
|
|
188
211
|
const result = createResult({ astroConfig, origin, params, pathname, renderers });
|
|
@@ -279,4 +302,4 @@ export {
|
|
|
279
302
|
staticBuild,
|
|
280
303
|
vitePluginNewBuild
|
|
281
304
|
};
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvYnVpbGQvc3RhdGljLWJ1aWxkLnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWUEsTUFBTSx5QkFBeUI7QUFFL0IscUJBQXFCLFVBQWtCLE1BQWdDO0FBQ3RFLFFBQU0sV0FBVyxLQUFLLFlBQVksYUFBYSxrQkFBa0IsY0FBYyxnQkFBZ0IsYUFBYSxNQUFNLGVBQWU7QUFDakksT0FBSyxVQUFVLEtBQUssU0FBUyxRQUFRLFFBQVEsVUFBVSxRQUFRLE9BQU87QUFBQTtBQUl2RSxxQkFBcUIsUUFBbUMsV0FBMkI7QUFDbEYsTUFBSSxPQUFPLFNBQVMsU0FBUztBQUM1QixXQUFPO0FBQUE7QUFFUixRQUFNLFFBQVE7QUFDZCxTQUFPLE1BQU0sa0JBQW1CLFdBQVUsMEJBQTBCLElBQUksTUFBTSxtQkFBbUIsVUFBVSwwQkFBMEIsSUFBSSxNQUFNLE1BQU07QUFBQTtBQUl0SixtQkFBbUIsS0FBYSxTQUFtQjtBQUNsRCxNQUFJLE1BQU07QUFDVixNQUFJLElBQUk7QUFDUixXQUFTLFFBQVEsU0FBUztBQUN6QixRQUFJLEtBQUs7QUFDVCxRQUFJLE1BQU0sS0FBSztBQUNkLFlBQU07QUFFTixVQUFJLFNBQVM7QUFDYixVQUFJO0FBQUEsV0FDRTtBQUNOO0FBQUE7QUFBQTtBQU1GLE1BQUksSUFBSSxRQUFRO0FBQ2YsVUFBTTtBQUFBO0FBQUE7QUFJUiwyQkFBa0MsTUFBMEI7QUFDM0QsUUFBTSxFQUFFLFVBQVUsZ0JBQWdCO0FBR2xDLFFBQU0sWUFBWSxJQUFJO0FBR3RCLFFBQU0sVUFBVSxJQUFJO0FBSXBCLFFBQU0sd0JBQXdCLElBQUk7QUFHbEMsUUFBTSxZQUFZLGFBQWEsTUFBTSxRQUFRLENBQUMsYUFBYTtBQUMxRCxXQUFRLFVBQVMsYUFBYSxJQUFJLE9BQU8sU0FBUyxzQkFBc0I7QUFBQTtBQUV6RSxhQUFX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
|
package/dist/core/ssr/index.js
CHANGED
|
@@ -22,9 +22,9 @@ import { renderPage } from "../../runtime/server/index.js";
|
|
|
22
22
|
import { codeFrame, resolveDependency } from "../util.js";
|
|
23
23
|
import { getStylesForURL } from "./css.js";
|
|
24
24
|
import { injectTags } from "./html.js";
|
|
25
|
-
import { generatePaginateFunction } from "./paginate.js";
|
|
26
25
|
import { getParams, validateGetStaticPathsModule, validateGetStaticPathsResult } from "./routing.js";
|
|
27
26
|
import { createResult } from "./result.js";
|
|
27
|
+
import { assignStaticPaths, ensureRouteCached, findPathItemByKey } from "./route-cache.js";
|
|
28
28
|
const svelteStylesRE = /svelte\?svelte&type=style/;
|
|
29
29
|
const cache = new Map();
|
|
30
30
|
async function resolveRenderer(viteServer, renderer, astroConfig) {
|
|
@@ -95,10 +95,11 @@ async function getParamsAndProps({
|
|
|
95
95
|
routeCache,
|
|
96
96
|
logging,
|
|
97
97
|
pathname,
|
|
98
|
-
mod
|
|
98
|
+
mod,
|
|
99
|
+
validate = true
|
|
99
100
|
}) {
|
|
100
101
|
let params = {};
|
|
101
|
-
let pageProps
|
|
102
|
+
let pageProps;
|
|
102
103
|
if (route && !route.pathname) {
|
|
103
104
|
if (route.params.length) {
|
|
104
105
|
const paramsMatch = route.pattern.exec(pathname);
|
|
@@ -106,21 +107,24 @@ async function getParamsAndProps({
|
|
|
106
107
|
params = getParams(route.params)(paramsMatch);
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
|
-
|
|
110
|
+
if (validate) {
|
|
111
|
+
validateGetStaticPathsModule(mod);
|
|
112
|
+
}
|
|
110
113
|
if (!routeCache[route.component]) {
|
|
111
|
-
|
|
112
|
-
paginate: generatePaginateFunction(route),
|
|
113
|
-
rss: () => {
|
|
114
|
-
}
|
|
115
|
-
})).flat();
|
|
114
|
+
await assignStaticPaths(routeCache, route, mod);
|
|
116
115
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
if (validate) {
|
|
117
|
+
validateGetStaticPathsResult(routeCache[route.component], logging);
|
|
118
|
+
}
|
|
119
|
+
const staticPaths = routeCache[route.component];
|
|
120
|
+
const paramsKey = JSON.stringify(params);
|
|
121
|
+
const matchedStaticPath = findPathItemByKey(staticPaths, paramsKey, logging);
|
|
120
122
|
if (!matchedStaticPath) {
|
|
121
123
|
throw new Error(`[getStaticPaths] route pattern matched, but no matching static path found. (${pathname})`);
|
|
122
124
|
}
|
|
123
|
-
pageProps =
|
|
125
|
+
pageProps = Object.create(matchedStaticPath.props || Object.prototype);
|
|
126
|
+
} else {
|
|
127
|
+
pageProps = {};
|
|
124
128
|
}
|
|
125
129
|
return [params, pageProps];
|
|
126
130
|
}
|
|
@@ -136,13 +140,7 @@ async function render(renderers, mod, ssrOpts) {
|
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
validateGetStaticPathsModule(mod);
|
|
139
|
-
|
|
140
|
-
routeCache[route.component] = await (await mod.getStaticPaths({
|
|
141
|
-
paginate: generatePaginateFunction(route),
|
|
142
|
-
rss: () => {
|
|
143
|
-
}
|
|
144
|
-
})).flat();
|
|
145
|
-
}
|
|
143
|
+
await ensureRouteCached(routeCache, route, mod);
|
|
146
144
|
validateGetStaticPathsResult(routeCache[route.component], logging);
|
|
147
145
|
const routePathParams = routeCache[route.component];
|
|
148
146
|
const matchedStaticPath = routePathParams.find(({ params: _params }) => JSON.stringify(_params) === JSON.stringify(params));
|
|
@@ -228,4 +226,4 @@ export {
|
|
|
228
226
|
render,
|
|
229
227
|
ssr
|
|
230
228
|
};
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvc3NyL2luZGV4LnRzIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUEsTUFBTSxpQkFBaUI7QUF1QnZCLE1BQU0sUUFBUSxJQUFJO0FBR2xCLCtCQUErQixZQUFnQyxVQUFrQixhQUEwQjtBQUMxRyxRQUFNLG1CQUF3QjtBQUk5QixRQUFNO0FBQUEsSUFDTCxTQUFTLEVBQUUsTUFBTSxRQUFRLFdBQVcsb0JBQW9CO0FBQUEsTUFDckQsTUFBTSxPQUFPLGtCQUFrQixVQUFVO0FBRTdDLG1CQUFpQixPQUFPO0FBQ3hCLE1BQUk7QUFBUSxxQkFBaUIsU0FBUyxLQUFLLE1BQU0sS0FBSyxVQUFVO0FBQ2hFLG1CQUFpQixjQUFjLEtBQUssTUFBTSxLQUFLLFVBQVU7QUFDekQsTUFBSSxNQUFNLFFBQVE7QUFBcUIscUJBQWlCLHFCQUFxQixtQkFBbUIsSUFBSSxDQUFDLFFBQWdCLEtBQUssTUFBTSxLQUFLLFVBQVU7QUFDL0ksTUFBSSxNQUFNLFFBQVE7QUFBWSxxQkFBaUIsWUFBWSxVQUFVLElBQUksQ0FBQyxRQUFnQixLQUFLLE1BQU0sS0FBSyxVQUFVO0FBQ3BILFFBQU0sRUFBRSxRQUFRLE1BQU0sV0FBVyxZQUFZLG1CQUFtQixpQkFBaUI7QUFDakYsUUFBTSxFQUFFLFNBQVMsZ0JBQWdCLE1BQU0sV0FBVyxjQUFjO0FBQ2hFLG1CQUFpQixNQUFNO0FBRXZCLFFBQU0sb0JBQThCO0FBQ3BDLFNBQU87QUFBQTtBQUdSLGdDQUFnQyxZQUFnQyxhQUErQztBQUM5RyxRQUFNLE1BQWdCLFlBQVk7QUFDbEMsUUFBTSxZQUFZLE1BQU0sUUFBUSxJQUMvQixJQUFJLElBQUksQ0FBQyxhQUFhO0FBQ3JCLFFBQUksTUFBTSxJQUFJO0FBQVcsYUFBTyxNQUFNLElBQUk7QUFDMUMsUUFBSSxVQUFVLGdCQUFnQixZQUFZLFVBQVU7QUFDcEQsVUFBTSxJQUFJLFVBQVU7QUFDcEIsV0FBTztBQUFBO0FBSVQsU0FBTztBQUFBO0FBUVIsNEJBQTRCLEdBQVksRUFBRSxZQUFZLFlBQWlDO0FBRXRGLE1BQUssRUFBVSxPQUFPO0FBQ3JCLElBQUMsRUFBVSxRQUFRLElBQUksR0FBSSxFQUFVO0FBQUE7QUFJdEMsTUFBSSxhQUFhLE9BQU87QUFDdkIsZUFBVyxpQkFBaUI7QUFBQTtBQUk3QixNQUFJLE1BQU0sUUFBUyxFQUFVLFNBQVM7QUFDckMsVUFBTSxFQUFFLFVBQVUsWUFBWSxTQUFVLEVBQWtCLE9BQU87QUFDakUsVUFBTSxNQUFNO0FBQ1osUUFBSTtBQUFVLFVBQUksTUFBTSxFQUFFLE1BQU0sU0FBUyxNQUFNLE1BQU0sU0FBUyxNQUFNLFFBQVEsU0FBUztBQUNyRixRQUFJLE1BQU0sSUFBSTtBQUNkLFFBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxHQUFHLFdBQVcsSUFBSTtBQUFLLFlBQU0sTUFBTSxHQUFHLFNBQVMsU0FBUyxJQUFJLElBQUk7QUFDdEYsUUFBSSxDQUFDO0FBQUssWUFBTSxNQUFNLEdBQUcsU0FBUyxTQUFTLFVBQVU7QUFDckQsUUFBSSxRQUFRLFVBQVUsS0FBSyxJQUFJO0FBQy9CLFFBQUksS0FBSyxxQ0FBVTtBQUNuQixRQUFJLFVBQVUsR0FBRyxxQ0FBVSxTQUFTO0FBQUEsRUFDcEMsSUFBSTtBQUFBO0FBRUosUUFBSTtBQUFZLFVBQUksU0FBUztBQUM3QixVQUFNO0FBQUE7QUFJUCxRQUFNO0FBQUE7QUFLUCx1QkFBOEIsRUFBRSxhQUFhLFVBQVUsY0FBcUQ7QUFFM0csUUFBTSxZQUFZLE1BQU0saUJBQWlCLFlBQVk7QUFFckQsUUFBTSxNQUFPLE1BQU0sV0FBVyxjQUFjLGNBQWM7QUFFMUQsU0FBTyxDQUFDLFdBQVc7QUFBQTtBQUdwQixpQ0FBd0M7QUFBQSxFQUN2QztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBLFdBQVc7QUFBQSxHQVFpQjtBQUU1QixNQUFJLFNBQWlCO0FBQ3JCLE1BQUk7QUFDSixNQUFJLFNBQVMsQ0FBQyxNQUFNLFVBQVU7QUFDN0IsUUFBSSxNQUFNLE9BQU8sUUFBUTtBQUN4QixZQUFNLGNBQWMsTUFBTSxRQUFRLEtBQUs7QUFDdkMsVUFBSSxhQUFhO0FBQ2hCLGlCQUFTLFVBQVUsTUFBTSxRQUFRO0FBQUE7QUFBQTtBQUduQyxRQUFJLFVBQVU7QUFDYixtQ0FBNkI7QUFBQTtBQUU5QixRQUFJLENBQUMsV0FBVyxNQUFNLFlBQVk7QUFDakMsWUFBTSxrQkFBa0IsWUFBWSxPQUFPO0FBQUE7QUFFNUMsUUFBSSxVQUFVO0FBRWIsbUNBQTZCLFdBQVcsTUFBTSxZQUFZO0FBQUE7QUFFM0QsVUFBTSxjQUF5QyxXQUFXLE1BQU07QUFDaEUsVUFBTSxZQUFZLEtBQUssVUFBVTtBQUNqQyxVQUFNLG9CQUFvQixrQkFBa0IsYUFBYSxXQUFXO0FBQ3BFLFFBQUksQ0FBQyxtQkFBbUI7QUFDdkIsWUFBTSxJQUFJLE1BQU0sK0VBQStFO0FBQUE7QUFJaEcsZ0JBQVksT0FBTyxPQUFPLGtCQUFrQixTQUFTLE9BQU87QUFBQSxTQUN0RDtBQUNOLGdCQUFZO0FBQUE7QUFFYixTQUFPLENBQUMsUUFBUTtBQUFBO0FBSWpCLHNCQUE2QixXQUF1QixLQUF3QixTQUFzQztBQUNqSCxRQUFNLEVBQUUsYUFBYSxVQUFVLFNBQVMsTUFBTSxRQUFRLFVBQVUsT0FBTyxZQUFZLGVBQWU7QUFHbEcsTUFBSSxTQUFpQjtBQUNyQixNQUFJLFlBQW1CO0FBQ3ZCLE1BQUksU0FBUyxDQUFDLE1BQU0sVUFBVTtBQUM3QixRQUFJLE1BQU0sT0FBTyxRQUFRO0FBQ3hCLFlBQU0sY0FBYyxNQUFNLFFBQVEsS0FBSztBQUN2QyxVQUFJLGFBQWE7QUFDaEIsaUJBQVMsVUFBVSxNQUFNLFFBQVE7QUFBQTtBQUFBO0FBR25DLGlDQUE2QjtBQUM3QixVQUFNLGtCQUFrQixZQUFZLE9BQU87QUFDM0MsaUNBQTZCLFdBQVcsTUFBTSxZQUFZO0FBQzFELFVBQU0sa0JBQXdDLFdBQVcsTUFBTTtBQUMvRCxVQUFNLG9CQUFvQixnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsUUFBUSxjQUFjLEtBQUssVUFBVSxhQUFhLEtBQUssVUFBVTtBQUNuSCxRQUFJLENBQUMsbUJBQW1CO0FBQ3ZCLFlBQU0sSUFBSSxNQUFNLCtFQUErRTtBQUFBO0FBRWhHLGdCQUFZLG1CQUFLLGtCQUFrQixVQUFXO0FBQUE7QUFJL0MsUUFBTSxZQUFZLE1BQU0sSUFBSTtBQUM1QixNQUFJLENBQUM7QUFBVyxVQUFNLElBQUksTUFBTSw0REFBNEQsT0FBTztBQUNuRyxNQUFJLENBQUMsVUFBVTtBQUF5QixVQUFNLElBQUksTUFBTSxzQ0FBc0MsK0JBQU87QUFFckcsUUFBTSxTQUFTLGFBQWEsRUFBRSxhQUFhLFFBQVEsUUFBUSxVQUFVO0FBRXJFLFNBQU8sVUFBVSxPQUFPLE1BQWM7QUFJckMsUUFBSSxZQUFZLGFBQWEseUJBQXlCO0FBQ3JELFlBQU0sQ0FBQyxFQUFFLGdCQUFnQixNQUFNLFdBQVcsWUFBWSxXQUFXO0FBQ2pFLGFBQU87QUFBQSxXQUNEO0FBQ04sYUFBTztBQUFBO0FBQUE7QUFJVCxNQUFJLE9BQU8sTUFBTSxXQUFXLFFBQVEsV0FBVyxXQUFXO0FBRzFELFFBQU0sT0FBaUM7QUFHdkMsTUFBSSxTQUFTLGVBQWU7QUFDM0IsU0FBSyxLQUFLO0FBQUEsTUFDVCxLQUFLO0FBQUEsTUFDTCxPQUFPLEVBQUUsTUFBTTtBQUFBLE1BR2YsVUFBVSxNQUFNO0FBQUEsTUFDaEIsVUFBVTtBQUFBO0FBQUE7QUFLWixHQUFDLEdBQUcsZ0JBQWdCLFVBQVUsYUFBYSxRQUFRLENBQUMsU0FBUztBQUM1RCxRQUFJLFNBQVMsaUJBQWlCLGVBQWUsS0FBSyxPQUFPO0FBQ3hELFdBQUssS0FBSztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsT0FBTyxFQUFFLE1BQU0sVUFBVSxLQUFLO0FBQUEsUUFDOUIsVUFBVTtBQUFBO0FBQUEsV0FFTDtBQUNOLFdBQUssS0FBSztBQUFBLFFBQ1QsS0FBSztBQUFBLFFBQ0wsT0FBTztBQUFBLFVBQ04sS0FBSztBQUFBLFVBQ0w7QUFBQSxVQUNBLHVCQUF1QjtBQUFBO0FBQUEsUUFFeEIsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQU1iLFNBQU8sV0FBVyxNQUFNO0FBR3hCLE1BQUksU0FBUyxpQkFBaUIsQ0FBQyxZQUFZLGFBQWEseUJBQXlCO0FBQ2hGLFVBQU0sY0FBYyxTQUFTLEtBQUssUUFBUSxZQUFZLFlBQVksTUFBTTtBQUN4RSxXQUFPLE1BQU0sV0FBVyxtQkFBbUIsYUFBYSxNQUFNO0FBQUE7QUFJL0QsTUFBSSxDQUFDLGtCQUFrQixLQUFLLE9BQU87QUFDbEMsV0FBTyxzQkFBc0I7QUFBQTtBQUc5QixTQUFPO0FBQUE7QUFHUixJQUFJO0FBQ0osOEJBQThCO0FBQzdCLE1BQUk7QUFBVyxXQUFPO0FBQ3RCLFFBQU0sV0FBVyxjQUFjLElBQUksSUFBSSwrQkFBK0IsWUFBWTtBQUNsRixRQUFNLFVBQVUsTUFBTSxHQUFHLFNBQVMsU0FBUztBQUMzQyxjQUFZLFFBQVE7QUFDcEIsU0FBTztBQUFBO0FBR1IsbUJBQTBCLFNBQXNDO0FBQy9ELE1BQUk7QUFDSCxVQUFNLENBQUMsV0FBVyxPQUFPLE1BQU0sUUFBUTtBQUN2QyxXQUFPLE1BQU0sT0FBTyxXQUFXLEtBQUs7QUFBQSxXQUM1QixHQUFQO0FBQ0QsVUFBTSxhQUFhLEdBQUcsRUFBRSxZQUFZLFFBQVEsWUFBWSxVQUFVLFFBQVE7QUFDMUUsVUFBTTtBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { debug } from "../logger.js";
|
|
2
|
+
import { generatePaginateFunction } from "../ssr/paginate.js";
|
|
3
|
+
async function callGetStaticPaths(mod, route, rssFn) {
|
|
4
|
+
const staticPaths = await (await mod.getStaticPaths({
|
|
5
|
+
paginate: generatePaginateFunction(route),
|
|
6
|
+
rss: rssFn || (() => {
|
|
7
|
+
})
|
|
8
|
+
})).flat();
|
|
9
|
+
const keyedStaticPaths = staticPaths;
|
|
10
|
+
keyedStaticPaths.keyed = new Map();
|
|
11
|
+
for (const sp of keyedStaticPaths) {
|
|
12
|
+
const paramsKey = JSON.stringify(sp.params);
|
|
13
|
+
keyedStaticPaths.keyed.set(paramsKey, sp);
|
|
14
|
+
}
|
|
15
|
+
return keyedStaticPaths;
|
|
16
|
+
}
|
|
17
|
+
async function assignStaticPaths(routeCache, route, mod, rssFn) {
|
|
18
|
+
const staticPaths = await callGetStaticPaths(mod, route, rssFn);
|
|
19
|
+
routeCache[route.component] = staticPaths;
|
|
20
|
+
}
|
|
21
|
+
async function ensureRouteCached(routeCache, route, mod, rssFn) {
|
|
22
|
+
if (!routeCache[route.component]) {
|
|
23
|
+
const staticPaths = await callGetStaticPaths(mod, route, rssFn);
|
|
24
|
+
routeCache[route.component] = staticPaths;
|
|
25
|
+
return staticPaths;
|
|
26
|
+
} else {
|
|
27
|
+
return routeCache[route.component];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function findPathItemByKey(staticPaths, paramsKey, logging) {
|
|
31
|
+
let matchedStaticPath = staticPaths.keyed.get(paramsKey);
|
|
32
|
+
if (matchedStaticPath) {
|
|
33
|
+
return matchedStaticPath;
|
|
34
|
+
}
|
|
35
|
+
debug(logging, "findPathItemByKey", `Unexpected cache miss looking for ${paramsKey}`);
|
|
36
|
+
matchedStaticPath = staticPaths.find(({ params: _params }) => JSON.stringify(_params) === paramsKey);
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
assignStaticPaths,
|
|
40
|
+
callGetStaticPaths,
|
|
41
|
+
ensureRouteCached,
|
|
42
|
+
findPathItemByKey
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvcmUvc3NyL3JvdXRlLWNhY2hlLnRzIl0sCiAgIm1hcHBpbmdzIjogIkFBR0E7QUFDQTtBQUlBLGtDQUF5QyxLQUF3QixPQUFrQixPQUFtRDtBQUNySSxRQUFNLGNBQW9DLE1BQ3pDLE9BQU0sSUFBSSxlQUFnQjtBQUFBLElBQ3pCLFVBQVUseUJBQXlCO0FBQUEsSUFDbkMsS0FDQyxTQUNDLE9BQU07QUFBQTtBQUFBLE1BSVI7QUFFRixRQUFNLG1CQUFtQjtBQUN6QixtQkFBaUIsUUFBUSxJQUFJO0FBQzdCLGFBQVcsTUFBTSxrQkFBa0I7QUFDbEMsVUFBTSxZQUFZLEtBQUssVUFBVSxHQUFHO0FBQ3BDLHFCQUFpQixNQUFNLElBQUksV0FBVztBQUFBO0FBR3ZDLFNBQU87QUFBQTtBQUdSLGlDQUF3QyxZQUF3QixPQUFrQixLQUF3QixPQUE4QjtBQUN2SSxRQUFNLGNBQWMsTUFBTSxtQkFBbUIsS0FBSyxPQUFPO0FBQ3pELGFBQVcsTUFBTSxhQUFhO0FBQUE7QUFHL0IsaUNBQXdDLFlBQXdCLE9BQWtCLEtBQXdCLE9BQW1EO0FBQzVKLE1BQUksQ0FBQyxXQUFXLE1BQU0sWUFBWTtBQUNqQyxVQUFNLGNBQWMsTUFBTSxtQkFBbUIsS0FBSyxPQUFPO0FBQ3pELGVBQVcsTUFBTSxhQUFhO0FBQzlCLFdBQU87QUFBQSxTQUNEO0FBQ04sV0FBTyxXQUFXLE1BQU07QUFBQTtBQUFBO0FBSW5CLDJCQUEyQixhQUF3QyxXQUFtQixTQUFxQjtBQUNqSCxNQUFJLG9CQUFvQixZQUFZLE1BQU0sSUFBSTtBQUM5QyxNQUFJLG1CQUFtQjtBQUN0QixXQUFPO0FBQUE7QUFHUixRQUFNLFNBQVMscUJBQXFCLHFDQUFxQztBQUN6RSxzQkFBb0IsWUFBWSxLQUFLLENBQUMsRUFBRSxRQUFRLGNBQWMsS0FBSyxVQUFVLGFBQWE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -158,10 +158,14 @@ export declare type GetHydrateCallback = () => Promise<(element: Element, innerH
|
|
|
158
158
|
paginate?: PaginateFunction;
|
|
159
159
|
rss?: (...args: any[]) => any;
|
|
160
160
|
}
|
|
161
|
-
export declare type
|
|
161
|
+
export declare type GetStaticPathsItem = {
|
|
162
162
|
params: Params;
|
|
163
163
|
props?: Props;
|
|
164
|
-
}
|
|
164
|
+
};
|
|
165
|
+
export declare type GetStaticPathsResult = GetStaticPathsItem[];
|
|
166
|
+
export declare type GetStaticPathsResultKeyed = GetStaticPathsResult & {
|
|
167
|
+
keyed: Map<string, GetStaticPathsItem>;
|
|
168
|
+
};
|
|
165
169
|
export interface HydrateOptions {
|
|
166
170
|
value?: string;
|
|
167
171
|
}
|
|
@@ -288,7 +292,7 @@ export interface RouteData {
|
|
|
288
292
|
pattern: RegExp;
|
|
289
293
|
type: 'page';
|
|
290
294
|
}
|
|
291
|
-
export declare type RouteCache = Record<string,
|
|
295
|
+
export declare type RouteCache = Record<string, GetStaticPathsResultKeyed>;
|
|
292
296
|
export declare type RuntimeMode = 'development' | 'production';
|
|
293
297
|
/**
|
|
294
298
|
* RSS
|
|
@@ -23,12 +23,13 @@ interface SSROptions {
|
|
|
23
23
|
}
|
|
24
24
|
export declare type ComponentPreload = [Renderer[], ComponentInstance];
|
|
25
25
|
export declare function preload({ astroConfig, filePath, viteServer }: SSROptions): Promise<ComponentPreload>;
|
|
26
|
-
export declare function getParamsAndProps({ route, routeCache, logging, pathname, mod, }: {
|
|
26
|
+
export declare function getParamsAndProps({ route, routeCache, logging, pathname, mod, validate, }: {
|
|
27
27
|
route: RouteData | undefined;
|
|
28
28
|
routeCache: RouteCache;
|
|
29
29
|
pathname: string;
|
|
30
30
|
mod: ComponentInstance;
|
|
31
31
|
logging: LogOptions;
|
|
32
|
+
validate?: boolean;
|
|
32
33
|
}): Promise<[Params, Props]>;
|
|
33
34
|
/** use Vite to SSR */
|
|
34
35
|
export declare function render(renderers: Renderer[], mod: ComponentInstance, ssrOpts: SSROptions): Promise<string>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ComponentInstance, GetStaticPathsItem, GetStaticPathsResultKeyed, RouteCache, RouteData } from '../../@types/astro';
|
|
2
|
+
import type { LogOptions } from '../logger';
|
|
3
|
+
declare type RSSFn = (...args: any[]) => any;
|
|
4
|
+
export declare function callGetStaticPaths(mod: ComponentInstance, route: RouteData, rssFn?: RSSFn): Promise<GetStaticPathsResultKeyed>;
|
|
5
|
+
export declare function assignStaticPaths(routeCache: RouteCache, route: RouteData, mod: ComponentInstance, rssFn?: RSSFn): Promise<void>;
|
|
6
|
+
export declare function ensureRouteCached(routeCache: RouteCache, route: RouteData, mod: ComponentInstance, rssFn?: RSSFn): Promise<GetStaticPathsResultKeyed>;
|
|
7
|
+
export declare function findPathItemByKey(staticPaths: GetStaticPathsResultKeyed, paramsKey: string, logging: LogOptions): GetStaticPathsItem | undefined;
|
|
8
|
+
export {};
|