0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-30 22:03:56 -05:00

Pass compressHTML settings to manifest (#7488)

* fix(#7333): pass compressHTML to manifest

* chore: add compressHTML to astro:ssr-manifest test
This commit is contained in:
Nate Moore 2023-06-28 14:49:10 -05:00 committed by GitHub
parent e9a0fb502a
commit d3247851f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 1 deletions

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Pass `compressHTML` setting to server adapters

View file

@ -204,6 +204,7 @@ export class App {
const url = new URL(request.url);
const pathname = prependForwardSlash(this.removeBase(url.pathname));
const info = this.#routeDataToRouteInfo.get(routeData!)!;
const isCompressHTML = this.#manifest.compressHTML ?? false;
// may be used in the future for handling rel=modulepreload, rel=icon, rel=manifest etc.
const links = new Set<never>();
const styles = createStylesheetElementSet(info.styles);
@ -252,7 +253,7 @@ export class App {
page.onRequest as MiddlewareResponseHandler,
apiContext,
() => {
return renderPage({ mod, renderContext, env: this.#env, cookies: apiContext.cookies });
return renderPage({ mod, renderContext, env: this.#env, cookies: apiContext.cookies, isCompressHTML });
}
);
} else {
@ -261,6 +262,7 @@ export class App {
renderContext,
env: this.#env,
cookies: apiContext.cookies,
isCompressHTML
});
}
Reflect.set(request, responseSentSymbol, true);

View file

@ -38,6 +38,7 @@ export type SSRManifest = {
routes: RouteInfo[];
site?: string;
base?: string;
compressHTML?: boolean;
assetsPrefix?: string;
markdown: MarkdownRenderingOptions;
renderers: SSRLoadedRenderer[];

View file

@ -482,6 +482,7 @@ function buildManifest(
routes,
site: settings.config.site,
base: settings.config.base,
compressHTML: settings.config.compressHTML,
assetsPrefix: settings.config.build.assetsPrefix,
markdown: settings.config.markdown,
componentMetadata: Array.from(internals.componentMetadata),

View file

@ -11,6 +11,7 @@ describe('astro:ssr-manifest', () => {
fixture = await loadFixture({
root: './fixtures/ssr-manifest/',
output: 'server',
compressHTML: true,
adapter: testAdapter(),
});
await fixture.build();
@ -25,4 +26,10 @@ describe('astro:ssr-manifest', () => {
const $ = cheerio.load(html);
expect($('#assets').text()).to.equal('["/_astro/index.a8a337e4.css"]');
});
it('includes compressHTML', async () => {
const app = await fixture.loadTestAdapterApp();
expect(app.manifest).to.haveOwnProperty('compressHTML');
expect(app.manifest.compressHTML).to.be.true;
});
});