aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/node/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/node/src')
-rw-r--r--packages/integrations/node/src/index.ts10
-rw-r--r--packages/integrations/node/src/response-iterator.ts11
-rw-r--r--packages/integrations/node/src/server.ts8
-rw-r--r--packages/integrations/node/src/types.ts2
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];