Stability round two: no language links on POST-rendered pages, scoped observers, Vary only where it varies
CI / full-gate (push) Successful in 2m37s

This commit is contained in:
2026-08-04 00:10:31 +02:00
parent be3bc2bdbb
commit 93139ea058
11 changed files with 66 additions and 21 deletions
+10 -3
View File
@@ -29,7 +29,14 @@ export async function runRequestHooks(
}
// After a route handler produces its result. Observers only — the return value is ignored, so a
// hook cannot change the response; a throw fails the request.
export async function runResponseHooks(plugins: Plugin[], ctx: RequestContext, result: RouteResult | null): Promise<void> {
for (const plugin of plugins) await plugin.hooks?.onResponse?.(ctx, result);
// hook cannot change the response; a throw fails the request. Each observer gets a context scoped to
// its own plugin, like onRequest, so `ctx.t` is never another plugin's translator.
export async function runResponseHooks(
plugins: Plugin[],
contextFor: (pluginId: string) => RequestContext,
result: RouteResult | null,
): Promise<void> {
for (const plugin of plugins) {
if (plugin.hooks?.onResponse) await plugin.hooks.onResponse(contextFor(plugin.id), result);
}
}