diff options
23 files changed, 116 insertions, 31 deletions
diff --git a/packages/integrations/node/CHANGELOG.md b/packages/integrations/node/CHANGELOG.md index 044cdbead..481dcb7cc 100644 --- a/packages/integrations/node/CHANGELOG.md +++ b/packages/integrations/node/CHANGELOG.md @@ -764,7 +764,7 @@ { darkMode: true }, { expires: '1 month', - }, + } ); const prefs = Astro.cookies.get<Prefs>('prefs').json(); diff --git a/packages/integrations/node/package.json b/packages/integrations/node/package.json index 42a5a8dc2..6573b2293 100644 --- a/packages/integrations/node/package.json +++ b/packages/integrations/node/package.json @@ -11,10 +11,7 @@ "url": "https://github.com/withastro/astro.git", "directory": "packages/integrations/node" }, - "keywords": [ - "withastro", - "astro-adapter" - ], + "keywords": ["withastro", "astro-adapter"], "bugs": "https://github.com/withastro/astro/issues", "homepage": "https://docs.astro.build/en/guides/integrations-guide/node/", "exports": { @@ -23,9 +20,7 @@ "./preview.js": "./dist/preview.js", "./package.json": "./package.json" }, - "files": [ - "dist" - ], + "files": ["dist"], "scripts": { "build": "tsc", "test": "astro-scripts test \"test/**/*.test.js\"" diff --git a/packages/integrations/node/src/index.ts b/packages/integrations/node/src/index.ts index 42a2ed91f..ec7a2ae3f 100644 --- a/packages/integrations/node/src/index.ts +++ b/packages/integrations/node/src/index.ts @@ -72,7 +72,7 @@ export default function createIntegration(userOptions: UserOptions): AstroIntegr if (config.output === 'static') { logger.warn( - `\`output: "server"\` or \`output: "hybrid"\` is required to use this adapter.`, + `\`output: "server"\` or \`output: "hybrid"\` is required to use this adapter.` ); } }, diff --git a/packages/integrations/node/src/log-listening-on.ts b/packages/integrations/node/src/log-listening-on.ts index 7e299740c..2f774c31c 100644 --- a/packages/integrations/node/src/log-listening-on.ts +++ b/packages/integrations/node/src/log-listening-on.ts @@ -8,20 +8,20 @@ import type { Options } from './types.js'; export async function logListeningOn( logger: AstroIntegrationLogger, server: http.Server | https.Server, - options: Pick<Options, 'host'>, + options: Pick<Options, 'host'> ) { await new Promise<void>((resolve) => server.once('listening', resolve)); const protocol = server instanceof https.Server ? 'https' : 'http'; // Allow to provide host value at runtime const host = getResolvedHostForHttpServer( - process.env.HOST !== undefined && process.env.HOST !== '' ? process.env.HOST : options.host, + process.env.HOST !== undefined && process.env.HOST !== '' ? process.env.HOST : options.host ); const { port } = server.address() as AddressInfo; const address = getNetworkAddress(protocol, host, port); if (host === undefined) { logger.info( - `Server listening on \n local: ${address.local[0]} \t\n network: ${address.network[0]}\n`, + `Server listening on \n local: ${address.local[0]} \t\n network: ${address.network[0]}\n` ); } else { logger.info(`Server listening on ${address.local[0]}`); @@ -32,9 +32,11 @@ function getResolvedHostForHttpServer(host: string | boolean) { if (host === false) { // Use a secure default return 'localhost'; + // biome-ignore lint/style/noUselessElse: <explanation> } else if (host === true) { // If passed --host in the CLI without arguments return undefined; // undefined typically means 0.0.0.0 or :: (listen on all IPs) + // biome-ignore lint/style/noUselessElse: <explanation> } else { return host; } @@ -49,29 +51,32 @@ const wildcardHosts = new Set(['0.0.0.0', '::', '0000:0000:0000:0000:0000:0000:0 // this code from vite https://github.com/vitejs/vite/blob/d09bbd093a4b893e78f0bbff5b17c7cf7821f403/packages/vite/src/node/utils.ts#L892-L914 export function getNetworkAddress( + // biome-ignore lint/style/useDefaultParameterLast: <explanation> protocol: 'http' | 'https' = 'http', hostname: string | undefined, port: number, - base?: string, + base?: string ) { const NetworkAddress: NetworkAddressOpt = { local: [], network: [], }; + // biome-ignore lint/complexity/noForEach: <explanation> Object.values(os.networkInterfaces()) .flatMap((nInterface) => nInterface ?? []) .filter( (detail) => + // biome-ignore lint/complexity/useOptionalChain: <explanation> detail && detail.address && (detail.family === 'IPv4' || // @ts-expect-error Node 18.0 - 18.3 returns number - detail.family === 4), + detail.family === 4) ) .forEach((detail) => { let host = detail.address.replace( '127.0.0.1', - hostname === undefined || wildcardHosts.has(hostname) ? 'localhost' : hostname, + hostname === undefined || wildcardHosts.has(hostname) ? 'localhost' : hostname ); // ipv6 host if (host.includes(':')) { diff --git a/packages/integrations/node/src/middleware.ts b/packages/integrations/node/src/middleware.ts index 5cc4c4a46..169404064 100644 --- a/packages/integrations/node/src/middleware.ts +++ b/packages/integrations/node/src/middleware.ts @@ -23,7 +23,9 @@ export default function createMiddleware(app: NodeApp): RequestHandler { const error = req; if (next) { return next(error); + // biome-ignore lint/style/noUselessElse: <explanation> } else { + // biome-ignore lint/complexity/useArrowFunction: <explanation> throw error; } } @@ -33,6 +35,7 @@ export default function createMiddleware(app: NodeApp): RequestHandler { logger.error(`Could not render ${req.url}`); console.error(err); if (!res.headersSent) { + // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation> res.writeHead(500, `Server error`); res.end(); } diff --git a/packages/integrations/node/src/preview.ts b/packages/integrations/node/src/preview.ts index 518155c4a..b6666129d 100644 --- a/packages/integrations/node/src/preview.ts +++ b/packages/integrations/node/src/preview.ts @@ -16,19 +16,22 @@ const createPreviewServer: CreatePreviewServer = async function (preview) { const ssrModule: MaybeServerModule = await import(preview.serverEntrypoint.toString()); if (typeof ssrModule.handler === 'function') { ssrHandler = ssrModule.handler; + // biome-ignore lint/style/noNonNullAssertion: <explanation> options = ssrModule.options!; + // biome-ignore lint/complexity/useArrowFunction: <explanation> } else { throw new AstroError( - `The server entrypoint doesn't have a handler. Are you sure this is the right file?`, + `The server entrypoint doesn't have a handler. Are you sure this is the right file?` ); } } catch (err) { if ((err as any).code === 'ERR_MODULE_NOT_FOUND') { throw new AstroError( `The server entrypoint ${fileURLToPath( - preview.serverEntrypoint, - )} does not exist. Have you ran a build yet?`, + preview.serverEntrypoint + )} does not exist. Have you ran a build yet?` ); + // biome-ignore lint/style/noUselessElse: <explanation> } else { throw err; } diff --git a/packages/integrations/node/src/serve-app.ts b/packages/integrations/node/src/serve-app.ts index 72b4e0fd6..2934a01ab 100644 --- a/packages/integrations/node/src/serve-app.ts +++ b/packages/integrations/node/src/serve-app.ts @@ -39,7 +39,7 @@ export function createAppHandler(app: NodeApp): RequestHandler { addCookieHeader: true, locals, routeData, - }), + }) ); await NodeApp.writeResponse(response, res); } else if (next) { diff --git a/packages/integrations/node/src/serve-static.ts b/packages/integrations/node/src/serve-static.ts index 725f7afa6..f4fa1fa5c 100644 --- a/packages/integrations/node/src/serve-static.ts +++ b/packages/integrations/node/src/serve-static.ts @@ -36,16 +36,21 @@ export function createStaticHandler(app: NodeApp, options: Options) { const hasSlash = urlPath.endsWith('/'); switch (trailingSlash) { case 'never': + // biome-ignore lint/suspicious/noDoubleEquals: <explanation> if (isDirectory && urlPath != '/' && hasSlash) { + // biome-ignore lint/style/useTemplate: <explanation> + // biome-ignore lint/suspicious/noFallthroughSwitchClause: <explanation> pathname = urlPath.slice(0, -1) + (urlQuery ? '?' + urlQuery : ''); res.statusCode = 301; res.setHeader('Location', pathname); return res.end(); + // biome-ignore lint/style/noUselessElse: <explanation> } else pathname = urlPath; // intentionally fall through case 'ignore': { if (isDirectory && !hasSlash) { + // biome-ignore lint/style/useTemplate: <explanation> pathname = urlPath + '/index.html'; } else pathname = urlPath; } @@ -53,10 +58,12 @@ export function createStaticHandler(app: NodeApp, options: Options) { case 'always': // trailing slash is not added to "subresources" if (!hasSlash && !isSubresourceRegex.test(urlPath)) { + // biome-ignore lint/style/useTemplate: <explanation> pathname = urlPath + '/' + (urlQuery ? '?' + urlQuery : ''); res.statusCode = 301; res.setHeader('Location', pathname); return res.end(); + // biome-ignore lint/style/noUselessElse: <explanation> } else pathname = urlPath; break; } @@ -110,6 +117,7 @@ function resolveClientDir(options: Options) { while (!serverEntryFolderURL.endsWith(serverFolder)) { serverEntryFolderURL = path.dirname(serverEntryFolderURL); } + // biome-ignore lint/style/useTemplate: <explanation> const serverEntryURL = serverEntryFolderURL + '/entry.mjs'; const clientURL = new URL(appendForwardSlash(rel), serverEntryURL); const client = url.fileURLToPath(clientURL); @@ -117,9 +125,11 @@ function resolveClientDir(options: Options) { } function prependForwardSlash(pth: string) { + // biome-ignore lint/style/useTemplate: <explanation> return pth.startsWith('/') ? pth : '/' + pth; } function appendForwardSlash(pth: string) { + // biome-ignore lint/style/useTemplate: <explanation> return pth.endsWith('/') ? pth : pth + '/'; } diff --git a/packages/integrations/node/src/standalone.ts b/packages/integrations/node/src/standalone.ts index 76e672d2f..8ae10a9ba 100644 --- a/packages/integrations/node/src/standalone.ts +++ b/packages/integrations/node/src/standalone.ts @@ -39,6 +39,7 @@ export function createStandaloneHandler(app: NodeApp, options: Options) { return (req: http.IncomingMessage, res: http.ServerResponse) => { try { // validate request path + // biome-ignore lint/style/noNonNullAssertion: <explanation> decodeURI(req.url!); } catch { res.writeHead(400); @@ -59,7 +60,7 @@ export function createServer(listener: http.RequestListener, host: string, port: key: fs.readFileSync(process.env.SERVER_KEY_PATH), cert: fs.readFileSync(process.env.SERVER_CERT_PATH), }, - listener, + listener ); } else { httpServer = http.createServer(listener); diff --git a/packages/integrations/node/test/api-route.test.js b/packages/integrations/node/test/api-route.test.js index 9743ce42d..63324c51c 100644 --- a/packages/integrations/node/test/api-route.test.js +++ b/packages/integrations/node/test/api-route.test.js @@ -27,6 +27,7 @@ describe('API routes', () => { it('Can get the request body', async () => { const { handler } = await import('./fixtures/api-route/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, done } = createRequestAndResponse({ method: 'POST', url: '/recipes', @@ -38,8 +39,10 @@ describe('API routes', () => { handler(req, res); + // biome-ignore lint/style/useConst: <explanation> let [buffer] = await done; + // biome-ignore lint/style/useConst: <explanation> let json = JSON.parse(buffer.toString('utf-8')); assert.equal(json.length, 1); @@ -50,6 +53,7 @@ describe('API routes', () => { it('Can get binary data', async () => { const { handler } = await import('./fixtures/api-route/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, done } = createRequestAndResponse({ method: 'POST', url: '/binary', @@ -61,7 +65,9 @@ describe('API routes', () => { handler(req, res); + // biome-ignore lint/style/useConst: <explanation> let [out] = await done; + // biome-ignore lint/style/useConst: <explanation> let arr = Array.from(new Uint8Array(out.buffer)); assert.deepEqual(arr, [5, 4, 3, 2, 1]); }); @@ -69,6 +75,7 @@ describe('API routes', () => { it('Can post large binary data', async () => { const { handler } = await import('./fixtures/api-route/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, done } = createRequestAndResponse({ method: 'POST', url: '/hash', @@ -95,16 +102,19 @@ describe('API routes', () => { expectedDigest = hash.digest(); }); + // biome-ignore lint/style/useConst: <explanation> let [out] = await done; assert.deepEqual(new Uint8Array(out.buffer), new Uint8Array(expectedDigest)); }); it('Can bail on streaming', async () => { const { handler } = await import('./fixtures/api-route/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, done } = createRequestAndResponse({ url: '/streaming', }); + // biome-ignore lint/style/useConst: <explanation> let locals = { cancelledByTheServer: false }; handler(req, res, () => {}, locals); diff --git a/packages/integrations/node/test/bad-urls.test.js b/packages/integrations/node/test/bad-urls.test.js index 9323516e8..cdc0158ff 100644 --- a/packages/integrations/node/test/bad-urls.test.js +++ b/packages/integrations/node/test/bad-urls.test.js @@ -39,7 +39,7 @@ describe('Bad URLs', () => { assert.equal( statusCodes.includes(fetchResult.status), true, - `${weirdUrl} returned something else than 400, 404, or 500`, + `${weirdUrl} returned something else than 400, 404, or 500` ); } const stillWork = await fixture.fetch('/'); diff --git a/packages/integrations/node/test/encoded.test.js b/packages/integrations/node/test/encoded.test.js index edc6ae78b..bea3e95f1 100644 --- a/packages/integrations/node/test/encoded.test.js +++ b/packages/integrations/node/test/encoded.test.js @@ -18,6 +18,7 @@ describe('Encoded Pathname', () => { it('Can get an Astro file', async () => { const { handler } = await import('./fixtures/encoded/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ url: '/什么', }); @@ -32,6 +33,7 @@ describe('Encoded Pathname', () => { it('Can get a Markdown file', async () => { const { handler } = await import('./fixtures/encoded/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ url: '/blog/什么', }); diff --git a/packages/integrations/node/test/errors.test.js b/packages/integrations/node/test/errors.test.js index 802fa6e25..9bf4aa29b 100644 --- a/packages/integrations/node/test/errors.test.js +++ b/packages/integrations/node/test/errors.test.js @@ -20,6 +20,7 @@ describe('Errors', () => { }); let devPreview; + // biome-ignore lint/suspicious/noDuplicateTestHooks: <explanation> before(async () => { // The two tests that need the server to run are skipped // devPreview = await fixture.preview(); @@ -58,7 +59,7 @@ describe('Errors', () => { const $ = cheerio.load(html); assert.equal($('p').text().trim(), 'Internal server error'); - }, + } ); it( @@ -86,6 +87,6 @@ describe('Errors', () => { } else { throw new Error('The response should take at most 2 chunks.'); } - }, + } ); }); diff --git a/packages/integrations/node/test/headers.test.js b/packages/integrations/node/test/headers.test.js index 00b1766c7..8342e28da 100644 --- a/packages/integrations/node/test/headers.test.js +++ b/packages/integrations/node/test/headers.test.js @@ -132,6 +132,7 @@ describe('Node Adapter Headers', () => { async function runTest(url, expectedHeaders) { const { handler } = await import('./fixtures/headers/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, done } = createRequestAndResponse({ method: 'GET', url, diff --git a/packages/integrations/node/test/image.test.js b/packages/integrations/node/test/image.test.js index 5303fe37e..c4758f96b 100644 --- a/packages/integrations/node/test/image.test.js +++ b/packages/integrations/node/test/image.test.js @@ -28,7 +28,7 @@ describe.skip('Image endpoint', () => { assert.equal(res.status, 200); const resImage = await fixture.fetch( - '/_image?href=/_astro/some_penguin.97ef5f92.png&w=50&f=webp', + '/_image?href=/_astro/some_penguin.97ef5f92.png&w=50&f=webp' ); assert.equal(resImage.status, 200); diff --git a/packages/integrations/node/test/locals.test.js b/packages/integrations/node/test/locals.test.js index 6d2776079..a232ed299 100644 --- a/packages/integrations/node/test/locals.test.js +++ b/packages/integrations/node/test/locals.test.js @@ -18,15 +18,18 @@ describe('API routes', () => { it('Can use locals added by node middleware', async () => { const { handler } = await import('./fixtures/locals/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ url: '/from-node-middleware', }); + // biome-ignore lint/style/useConst: <explanation> let locals = { foo: 'bar' }; handler(req, res, () => {}, locals); req.send(); + // biome-ignore lint/style/useConst: <explanation> let html = await text(); assert.equal(html.includes('<h1>bar</h1>'), true); @@ -34,6 +37,7 @@ describe('API routes', () => { it('Throws an error when provided non-objects as locals', async () => { const { handler } = await import('./fixtures/locals/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, done } = createRequestAndResponse({ url: '/from-node-middleware', }); @@ -62,18 +66,22 @@ describe('API routes', () => { it('Can access locals in API', async () => { const { handler } = await import('./fixtures/locals/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, done } = createRequestAndResponse({ method: 'POST', url: '/api', }); + // biome-ignore lint/style/useConst: <explanation> let locals = { foo: 'bar' }; handler(req, res, () => {}, locals); req.send(); + // biome-ignore lint/style/useConst: <explanation> let [buffer] = await done; + // biome-ignore lint/style/useConst: <explanation> let json = JSON.parse(buffer.toString('utf-8')); assert.equal(json.foo, 'bar'); diff --git a/packages/integrations/node/test/node-middleware.test.js b/packages/integrations/node/test/node-middleware.test.js index d1b016a51..0ff741a7f 100644 --- a/packages/integrations/node/test/node-middleware.test.js +++ b/packages/integrations/node/test/node-middleware.test.js @@ -23,6 +23,7 @@ describe('behavior from middleware, standalone', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -31,6 +32,7 @@ describe('behavior from middleware, standalone', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -71,10 +73,12 @@ describe('behavior from middleware, middleware', () => { after(async () => { server.close(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); it('when mode is standalone', async () => { + // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation> const res = await fetch(`http://localhost:8888/ssr`); assert.equal(res.status, 200); diff --git a/packages/integrations/node/test/prerender-404-500.test.js b/packages/integrations/node/test/prerender-404-500.test.js index 2535fcb35..0cc669c45 100644 --- a/packages/integrations/node/test/prerender-404-500.test.js +++ b/packages/integrations/node/test/prerender-404-500.test.js @@ -34,6 +34,7 @@ describe('Prerender 404', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -42,7 +43,7 @@ describe('Prerender 404', () => { after(async () => { await server.stop(); await fixture.clean(); - delete process.env.PRERENDER; + process.env.PRERENDER = undefined; }); it('Can render SSR route', async () => { @@ -124,6 +125,7 @@ describe('Prerender 404', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -132,7 +134,7 @@ describe('Prerender 404', () => { after(async () => { await server.stop(); await fixture.clean(); - delete process.env.PRERENDER; + process.env.PRERENDER = undefined; }); it('Can render SSR route', async () => { @@ -193,6 +195,7 @@ describe('Hybrid 404', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -201,7 +204,7 @@ describe('Hybrid 404', () => { after(async () => { await server.stop(); await fixture.clean(); - delete process.env.PRERENDER; + process.env.PRERENDER = undefined; }); it('Can render SSR route', async () => { @@ -255,6 +258,7 @@ describe('Hybrid 404', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -263,7 +267,7 @@ describe('Hybrid 404', () => { after(async () => { await server.stop(); await fixture.clean(); - delete process.env.PRERENDER; + process.env.PRERENDER = undefined; }); it('Can render SSR route', async () => { diff --git a/packages/integrations/node/test/prerender.test.js b/packages/integrations/node/test/prerender.test.js index e699a1b3c..e4d8cbb4a 100644 --- a/packages/integrations/node/test/prerender.test.js +++ b/packages/integrations/node/test/prerender.test.js @@ -30,6 +30,7 @@ describe('Prerendering', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -38,6 +39,7 @@ describe('Prerendering', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -105,6 +107,7 @@ describe('Prerendering', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -113,6 +116,7 @@ describe('Prerendering', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -181,6 +185,7 @@ describe('Prerendering', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -189,6 +194,7 @@ describe('Prerendering', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -233,10 +239,12 @@ describe('Prerendering', () => { after(async () => { await devServer.stop(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); it('Can render SSR route', async () => { + // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation> const res = await fixture.fetch(`/one`); const html = await res.text(); const $ = cheerio.load(html); @@ -246,6 +254,7 @@ describe('Prerendering', () => { }); it('Can render prerendered route', async () => { + // biome-ignore lint/style/noUnusedTemplateLiteral: <explanation> const res = await fixture.fetch(`/two`); const html = await res.text(); const $ = cheerio.load(html); @@ -277,6 +286,7 @@ describe('Hybrid rendering', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -285,6 +295,7 @@ describe('Hybrid rendering', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -350,6 +361,7 @@ describe('Hybrid rendering', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -358,6 +370,7 @@ describe('Hybrid rendering', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -415,6 +428,7 @@ describe('Hybrid rendering', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -423,6 +437,7 @@ describe('Hybrid rendering', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); diff --git a/packages/integrations/node/test/test-utils.js b/packages/integrations/node/test/test-utils.js index 10faba5cf..86b871f93 100644 --- a/packages/integrations/node/test/test-utils.js +++ b/packages/integrations/node/test/test-utils.js @@ -20,17 +20,21 @@ export function loadFixture(inlineConfig) { } export function createRequestAndResponse(reqOptions) { + // biome-ignore lint/style/useConst: <explanation> let req = httpMocks.createRequest(reqOptions); + // biome-ignore lint/style/useConst: <explanation> let res = httpMocks.createResponse({ eventEmitter: EventEmitter, req, }); + // biome-ignore lint/style/useConst: <explanation> let done = toPromise(res); // Get the response as text const text = async () => { + // biome-ignore lint/style/useConst: <explanation> let chunks = await done; return buffersToString(chunks); }; @@ -45,11 +49,13 @@ export function toPromise(res) { const write = res.write; res.write = function (data, encoding) { if (ArrayBuffer.isView(data) && !Buffer.isBuffer(data)) { + // biome-ignore lint/style/noParameterAssign: <explanation> data = Buffer.from(data.buffer); } return write.call(this, data, encoding); }; res.on('end', () => { + // biome-ignore lint/style/useConst: <explanation> let chunks = res._getChunks(); resolve(chunks); }); @@ -57,6 +63,7 @@ export function toPromise(res) { } export function buffersToString(buffers) { + // biome-ignore lint/style/useConst: <explanation> let decoder = new TextDecoder(); let str = ''; for (const buffer of buffers) { diff --git a/packages/integrations/node/test/trailing-slash.test.js b/packages/integrations/node/test/trailing-slash.test.js index 9ea8fcddd..95c6661f5 100644 --- a/packages/integrations/node/test/trailing-slash.test.js +++ b/packages/integrations/node/test/trailing-slash.test.js @@ -32,6 +32,7 @@ describe('Trailing slash', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -40,6 +41,7 @@ describe('Trailing slash', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -103,6 +105,7 @@ describe('Trailing slash', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -111,6 +114,7 @@ describe('Trailing slash', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -177,6 +181,7 @@ describe('Trailing slash', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -185,6 +190,7 @@ describe('Trailing slash', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -241,6 +247,7 @@ describe('Trailing slash', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -249,6 +256,7 @@ describe('Trailing slash', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -308,6 +316,7 @@ describe('Trailing slash', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -316,6 +325,7 @@ describe('Trailing slash', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); @@ -390,6 +400,7 @@ describe('Trailing slash', () => { }); await fixture.build(); const { startServer } = await fixture.loadAdapterEntryModule(); + // biome-ignore lint/style/useConst: <explanation> let res = startServer(); server = res.server; await waitServerListen(server.server); @@ -398,6 +409,7 @@ describe('Trailing slash', () => { after(async () => { await server.stop(); await fixture.clean(); + // biome-ignore lint/performance/noDelete: <explanation> delete process.env.PRERENDER; }); diff --git a/packages/integrations/node/test/url.test.js b/packages/integrations/node/test/url.test.js index 77ca45836..0b19c693b 100644 --- a/packages/integrations/node/test/url.test.js +++ b/packages/integrations/node/test/url.test.js @@ -20,6 +20,7 @@ describe('URL', () => { it('return http when non-secure', async () => { const { handler } = await import('./fixtures/url/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ url: '/', }); @@ -33,6 +34,7 @@ describe('URL', () => { it('return https when secure', async () => { const { handler } = await import('./fixtures/url/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ socket: new TLSSocket(), url: '/', @@ -47,6 +49,7 @@ describe('URL', () => { it('return http when the X-Forwarded-Proto header is set to http', async () => { const { handler } = await import('./fixtures/url/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ headers: { 'X-Forwarded-Proto': 'http' }, url: '/', @@ -61,6 +64,7 @@ describe('URL', () => { it('return https when the X-Forwarded-Proto header is set to https', async () => { const { handler } = await import('./fixtures/url/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ headers: { 'X-Forwarded-Proto': 'https' }, url: '/', @@ -75,6 +79,7 @@ describe('URL', () => { it('includes forwarded host and port in the url', async () => { const { handler } = await import('./fixtures/url/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ headers: { 'X-Forwarded-Proto': 'https', @@ -95,6 +100,7 @@ describe('URL', () => { it('accepts port in forwarded host and forwarded port', async () => { const { handler } = await import('./fixtures/url/dist/server/entry.mjs'); + // biome-ignore lint/style/useConst: <explanation> let { req, res, text } = createRequestAndResponse({ headers: { 'X-Forwarded-Proto': 'https', diff --git a/packages/integrations/node/tsconfig.json b/packages/integrations/node/tsconfig.json index b9feb9b9b..18443cddf 100644 --- a/packages/integrations/node/tsconfig.json +++ b/packages/integrations/node/tsconfig.json @@ -1,8 +1,6 @@ { "extends": "../../tsconfig.base.json", - "include": [ - "src" - ], + "include": ["src"], "compilerOptions": { "outDir": "./dist" } |