astro 3.0.2 → 3.0.3
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/app/index.js +6 -15
- package/dist/core/app/types.d.ts +0 -1
- package/dist/core/build/buildPipeline.d.ts +0 -1
- package/dist/core/build/buildPipeline.js +0 -6
- package/dist/core/build/generate.js +5 -3
- package/dist/core/build/plugins/plugin-manifest.js +1 -6
- package/dist/core/build/types.d.ts +2 -1
- package/dist/core/constants.js +1 -1
- package/dist/core/dev/dev.js +1 -1
- package/dist/core/messages.js +2 -2
- package/dist/core/redirects/component.js +1 -0
- package/dist/vite-plugin-astro-server/plugin.js +1 -2
- package/package.json +1 -1
package/dist/core/app/index.js
CHANGED
|
@@ -33,8 +33,6 @@ class App {
|
|
|
33
33
|
});
|
|
34
34
|
#baseWithoutTrailingSlash;
|
|
35
35
|
#pipeline;
|
|
36
|
-
#onRequest;
|
|
37
|
-
#middlewareLoaded;
|
|
38
36
|
#adapterLogger;
|
|
39
37
|
constructor(manifest, streaming = true) {
|
|
40
38
|
this.#manifest = manifest;
|
|
@@ -44,7 +42,6 @@ class App {
|
|
|
44
42
|
this.#routeDataToRouteInfo = new Map(manifest.routes.map((route) => [route.routeData, route]));
|
|
45
43
|
this.#baseWithoutTrailingSlash = removeTrailingForwardSlash(this.#manifest.base);
|
|
46
44
|
this.#pipeline = new SSRRoutePipeline(this.#createEnvironment(streaming));
|
|
47
|
-
this.#middlewareLoaded = false;
|
|
48
45
|
this.#adapterLogger = new AstroIntegrationLogger(
|
|
49
46
|
this.#logger.options,
|
|
50
47
|
this.#manifest.adapterName
|
|
@@ -109,19 +106,7 @@ class App {
|
|
|
109
106
|
return void 0;
|
|
110
107
|
return routeData;
|
|
111
108
|
}
|
|
112
|
-
async #getOnRequest() {
|
|
113
|
-
if (this.#manifest.middlewareEntryPoint && !this.#middlewareLoaded) {
|
|
114
|
-
try {
|
|
115
|
-
const middleware = await import(this.#manifest.middlewareEntryPoint);
|
|
116
|
-
this.#pipeline.setMiddlewareFunction(middleware.onRequest);
|
|
117
|
-
} catch (e) {
|
|
118
|
-
this.#logger.warn("SSR", "Couldn't load the middleware entry point");
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
this.#middlewareLoaded = true;
|
|
122
|
-
}
|
|
123
109
|
async render(request, routeData, locals) {
|
|
124
|
-
await this.#getOnRequest();
|
|
125
110
|
if (request.url !== collapseDuplicateSlashes(request.url)) {
|
|
126
111
|
request = new Request(collapseDuplicateSlashes(request.url), request);
|
|
127
112
|
}
|
|
@@ -145,6 +130,9 @@ class App {
|
|
|
145
130
|
);
|
|
146
131
|
let response;
|
|
147
132
|
try {
|
|
133
|
+
if (mod.onRequest) {
|
|
134
|
+
this.#pipeline.setMiddlewareFunction(mod.onRequest);
|
|
135
|
+
}
|
|
148
136
|
response = await this.#pipeline.renderRoute(renderContext, pageModule);
|
|
149
137
|
} catch (err) {
|
|
150
138
|
if (err instanceof EndpointNotFoundError) {
|
|
@@ -246,6 +234,9 @@ class App {
|
|
|
246
234
|
status
|
|
247
235
|
);
|
|
248
236
|
const page = await mod.page();
|
|
237
|
+
if (mod.onRequest) {
|
|
238
|
+
this.#pipeline.setMiddlewareFunction(mod.onRequest);
|
|
239
|
+
}
|
|
249
240
|
const response2 = await this.#pipeline.renderRoute(newRenderContext, page);
|
|
250
241
|
return this.#mergeResponses(response2, originalResponse);
|
|
251
242
|
} catch {
|
package/dist/core/app/types.d.ts
CHANGED
|
@@ -42,7 +42,6 @@ export type SSRManifest = {
|
|
|
42
42
|
componentMetadata: SSRResult['componentMetadata'];
|
|
43
43
|
pageModule?: SinglePageBuiltModule;
|
|
44
44
|
pageMap?: Map<ComponentPath, ImportComponentInstance>;
|
|
45
|
-
middlewareEntryPoint: string | undefined;
|
|
46
45
|
};
|
|
47
46
|
export type SerializedSSRManifest = Omit<SSRManifest, 'routes' | 'assets' | 'componentMetadata' | 'clientDirectives'> & {
|
|
48
47
|
routes: SerializedRouteInfo[];
|
|
@@ -15,7 +15,6 @@ export declare class BuildPipeline extends Pipeline {
|
|
|
15
15
|
getStaticBuildOptions(): Readonly<StaticBuildOptions>;
|
|
16
16
|
getConfig(): AstroConfig;
|
|
17
17
|
getManifest(): SSRManifest;
|
|
18
|
-
retrieveMiddlewareFunction(): Promise<void>;
|
|
19
18
|
getLogger(): Logger;
|
|
20
19
|
/**
|
|
21
20
|
* The SSR build emits two important files:
|
|
@@ -57,12 +57,6 @@ class BuildPipeline extends Pipeline {
|
|
|
57
57
|
getManifest() {
|
|
58
58
|
return this.#manifest;
|
|
59
59
|
}
|
|
60
|
-
async retrieveMiddlewareFunction() {
|
|
61
|
-
if (this.#internals.middlewareEntryPoint) {
|
|
62
|
-
const middleware = await import(this.#internals.middlewareEntryPoint.toString());
|
|
63
|
-
this.setMiddlewareFunction(middleware.onRequest);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
60
|
getLogger() {
|
|
67
61
|
return this.getEnvironment().logger;
|
|
68
62
|
}
|
|
@@ -95,7 +95,6 @@ async function generatePages(opts, internals) {
|
|
|
95
95
|
);
|
|
96
96
|
}
|
|
97
97
|
const pipeline = new BuildPipeline(opts, internals, manifest);
|
|
98
|
-
await pipeline.retrieveMiddlewareFunction();
|
|
99
98
|
const outFolder = ssr ? opts.settings.config.build.server : getOutDirWithinCwd(opts.settings.config.outDir);
|
|
100
99
|
const logger = pipeline.getLogger();
|
|
101
100
|
if (ssr && !hasPrerenderedPages(internals)) {
|
|
@@ -180,6 +179,10 @@ async function generatePage(pageData, ssrEntry, builtPaths, pipeline) {
|
|
|
180
179
|
const scripts = pageInfo?.hoistedScript ?? null;
|
|
181
180
|
const styles = pageData.styles.sort(cssOrder).map(({ sheet }) => sheet).reduce(mergeInlineCss, []);
|
|
182
181
|
const pageModulePromise = ssrEntry.page;
|
|
182
|
+
const onRequest = ssrEntry.onRequest;
|
|
183
|
+
if (onRequest) {
|
|
184
|
+
pipeline.setMiddlewareFunction(onRequest);
|
|
185
|
+
}
|
|
183
186
|
if (!pageModulePromise) {
|
|
184
187
|
throw new Error(
|
|
185
188
|
`Unable to find the module for ${pageData.component}. This is unexpected and likely a bug in Astro, please report.`
|
|
@@ -439,8 +442,7 @@ function createBuildManifest(settings, internals, renderers) {
|
|
|
439
442
|
base: settings.config.base,
|
|
440
443
|
assetsPrefix: settings.config.build.assetsPrefix,
|
|
441
444
|
site: settings.config.site ? new URL(settings.config.base, settings.config.site).toString() : settings.config.site,
|
|
442
|
-
componentMetadata: internals.componentMetadata
|
|
443
|
-
middlewareEntryPoint: internals.middlewareEntryPoint ? internals.middlewareEntryPoint.toString() : void 0
|
|
445
|
+
componentMetadata: internals.componentMetadata
|
|
444
446
|
};
|
|
445
447
|
}
|
|
446
448
|
export {
|
|
@@ -182,10 +182,6 @@ function buildManifest(opts, internals, staticFiles) {
|
|
|
182
182
|
if (!(BEFORE_HYDRATION_SCRIPT_ID in entryModules)) {
|
|
183
183
|
entryModules[BEFORE_HYDRATION_SCRIPT_ID] = "";
|
|
184
184
|
}
|
|
185
|
-
const isEdgeMiddleware = (
|
|
186
|
-
// TODO: remove in Astro 4.0
|
|
187
|
-
settings.config.build.excludeMiddleware || settings.adapter?.adapterFeatures?.edgeMiddleware
|
|
188
|
-
);
|
|
189
185
|
const ssrManifest = {
|
|
190
186
|
adapterName: opts.settings.adapter?.name ?? "",
|
|
191
187
|
routes,
|
|
@@ -197,8 +193,7 @@ function buildManifest(opts, internals, staticFiles) {
|
|
|
197
193
|
renderers: [],
|
|
198
194
|
clientDirectives: Array.from(settings.clientDirectives),
|
|
199
195
|
entryModules,
|
|
200
|
-
assets: staticFiles.map(prefixAssetPath)
|
|
201
|
-
middlewareEntryPoint: !isEdgeMiddleware ? internals.middlewareEntryPoint?.toString() : void 0
|
|
196
|
+
assets: staticFiles.map(prefixAssetPath)
|
|
202
197
|
};
|
|
203
198
|
return ssrManifest;
|
|
204
199
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InlineConfig, default as vite } from 'vite';
|
|
2
|
-
import type { AstroConfig, AstroSettings, ComponentInstance, ManifestData, RouteData, RuntimeMode, SSRLoadedRenderer } from '../../@types/astro';
|
|
2
|
+
import type { AstroConfig, AstroSettings, ComponentInstance, ManifestData, MiddlewareHandler, RouteData, RuntimeMode, SSRLoadedRenderer } from '../../@types/astro';
|
|
3
3
|
import type { Logger } from '../logger/core';
|
|
4
4
|
import type { RouteCache } from '../render/route-cache';
|
|
5
5
|
export type ComponentPath = string;
|
|
@@ -48,6 +48,7 @@ export interface SinglePageBuiltModule {
|
|
|
48
48
|
/**
|
|
49
49
|
* The `onRequest` hook exported by the middleware
|
|
50
50
|
*/
|
|
51
|
+
onRequest?: MiddlewareHandler<unknown>;
|
|
51
52
|
renderers: SSRLoadedRenderer[];
|
|
52
53
|
}
|
|
53
54
|
export type ViteBuildReturn = Awaited<ReturnType<typeof vite.build>>;
|
package/dist/core/constants.js
CHANGED
package/dist/core/dev/dev.js
CHANGED
|
@@ -20,7 +20,7 @@ async function dev(inlineConfig) {
|
|
|
20
20
|
base: restart.container.settings.config.base
|
|
21
21
|
})
|
|
22
22
|
);
|
|
23
|
-
const currentVersion = "3.0.
|
|
23
|
+
const currentVersion = "3.0.3";
|
|
24
24
|
if (currentVersion.includes("-")) {
|
|
25
25
|
logger.warn(null, msg.prerelease({ currentVersion }));
|
|
26
26
|
}
|
package/dist/core/messages.js
CHANGED
|
@@ -50,7 +50,7 @@ function serverStart({
|
|
|
50
50
|
base,
|
|
51
51
|
isRestart = false
|
|
52
52
|
}) {
|
|
53
|
-
const version = "3.0.
|
|
53
|
+
const version = "3.0.3";
|
|
54
54
|
const localPrefix = `${dim("\u2503")} Local `;
|
|
55
55
|
const networkPrefix = `${dim("\u2503")} Network `;
|
|
56
56
|
const emptyPrefix = " ".repeat(11);
|
|
@@ -235,7 +235,7 @@ function printHelp({
|
|
|
235
235
|
message.push(
|
|
236
236
|
linebreak(),
|
|
237
237
|
` ${bgGreen(black(` ${commandName} `))} ${green(
|
|
238
|
-
`v${"3.0.
|
|
238
|
+
`v${"3.0.3"}`
|
|
239
239
|
)} ${headline}`
|
|
240
240
|
);
|
|
241
241
|
}
|
|
@@ -70,8 +70,7 @@ function createDevelopmentManifest(settings) {
|
|
|
70
70
|
base: settings.config.base,
|
|
71
71
|
assetsPrefix: settings.config.build.assetsPrefix,
|
|
72
72
|
site: settings.config.site ? new URL(settings.config.base, settings.config.site).toString() : settings.config.site,
|
|
73
|
-
componentMetadata: /* @__PURE__ */ new Map()
|
|
74
|
-
middlewareEntryPoint: void 0
|
|
73
|
+
componentMetadata: /* @__PURE__ */ new Map()
|
|
75
74
|
};
|
|
76
75
|
}
|
|
77
76
|
export {
|