diff options
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r-- | packages/integrations/node/src/index.ts | 10 | ||||
-rw-r--r-- | packages/integrations/node/src/response-iterator.ts | 11 | ||||
-rw-r--r-- | packages/integrations/node/src/server.ts | 8 | ||||
-rw-r--r-- | packages/integrations/node/src/types.ts | 2 |
4 files changed, 17 insertions, 14 deletions
diff --git a/packages/integrations/node/src/index.ts b/packages/integrations/node/src/index.ts index 17a8f4502..7435a60ed 100644 --- a/packages/integrations/node/src/index.ts +++ b/packages/integrations/node/src/index.ts @@ -8,6 +8,16 @@ export function getAdapter(options: Options): AstroAdapter { previewEntrypoint: '@astrojs/node/preview.js', exports: ['handler', 'startServer'], args: options, + supportedAstroFeatures: { + hybridOutput: 'stable', + staticOutput: 'stable', + serverOutput: 'stable', + assets: { + supportKind: 'stable', + isSharpCompatible: true, + isSquooshCompatible: true, + }, + }, }; } diff --git a/packages/integrations/node/src/response-iterator.ts b/packages/integrations/node/src/response-iterator.ts index 01624d81d..0dd6e63af 100644 --- a/packages/integrations/node/src/response-iterator.ts +++ b/packages/integrations/node/src/response-iterator.ts @@ -6,7 +6,6 @@ import type { ReadableStreamDefaultReadResult } from 'node:stream/web'; import { Readable as NodeReadableStream } from 'stream'; -import type { Response as NodeResponse } from 'undici'; interface NodeStreamIterator<T> { next(): Promise<IteratorResult<T, boolean | undefined>>; @@ -35,8 +34,8 @@ function isBuffer(value: any): value is Buffer { ); } -function isNodeResponse(value: any): value is NodeResponse { - return !!(value as NodeResponse).body; +function isNodeResponse(value: any): value is Response { + return !!(value as Response).body; } function isReadableStream(value: any): value is ReadableStream<any> { @@ -121,7 +120,7 @@ function nodeStreamIterator<T>(stream: NodeReadableStream): AsyncIterableIterato | IteratorResult<T, boolean | undefined> | PromiseLike<IteratorResult<T, boolean | undefined>> ) => void, - (reason?: any) => void + (reason?: any) => void, ][] = []; function onData(chunk: any) { @@ -201,9 +200,7 @@ function asyncIterator<T>(source: AsyncIterableIterator<T>): AsyncIterableIterat }; } -export function responseIterator<T>( - response: Response | NodeResponse | Buffer -): AsyncIterableIterator<T> { +export function responseIterator<T>(response: Response | Buffer): AsyncIterableIterator<T> { let body: unknown = response; if (isNodeResponse(response)) body = response.body; diff --git a/packages/integrations/node/src/server.ts b/packages/integrations/node/src/server.ts index 98f5cd14b..04c81c2d1 100644 --- a/packages/integrations/node/src/server.ts +++ b/packages/integrations/node/src/server.ts @@ -1,14 +1,10 @@ -import { polyfill } from '@astrojs/webapi'; import type { SSRManifest } from 'astro'; -import { NodeApp } from 'astro/app/node'; +import { NodeApp, applyPolyfills } from 'astro/app/node'; import middleware from './nodeMiddleware.js'; import startServer from './standalone.js'; import type { Options } from './types'; -polyfill(globalThis, { - exclude: 'window document', -}); - +applyPolyfills(); export function createExports(manifest: SSRManifest, options: Options) { const app = new NodeApp(manifest); return { diff --git a/packages/integrations/node/src/types.ts b/packages/integrations/node/src/types.ts index b0bd4a681..85f4f4fbc 100644 --- a/packages/integrations/node/src/types.ts +++ b/packages/integrations/node/src/types.ts @@ -21,7 +21,7 @@ export type RequestHandlerParams = [ req: IncomingMessage, res: ServerResponse, next?: (err?: unknown) => void, - locals?: object + locals?: object, ]; export type ErrorHandlerParams = [unknown, ...RequestHandlerParams]; |