44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { IncomingMessage, ServerResponse } from "node:http";
|
|
import { Readable } from "node:stream";
|
|
|
|
//#region ../../node_modules/.pnpm/h3@1.15.5/node_modules/h3/dist/index.d.ts
|
|
type HTTPMethod = "GET" | "HEAD" | "PATCH" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE";
|
|
interface H3CorsOptions {
|
|
origin?: "*" | "null" | (string | RegExp)[] | ((origin: string) => boolean);
|
|
methods?: "*" | HTTPMethod[];
|
|
allowHeaders?: "*" | string[];
|
|
exposeHeaders?: "*" | string[];
|
|
credentials?: boolean;
|
|
maxAge?: string | false;
|
|
preflight?: {
|
|
statusCode?: number;
|
|
};
|
|
}
|
|
/**
|
|
* Handle CORS for the incoming request.
|
|
*
|
|
* If the incoming request is a CORS preflight request, it will append the CORS preflight headers and send a 204 response.
|
|
*
|
|
* If return value is `true`, the request is handled and no further action is needed.
|
|
*
|
|
* @example
|
|
* const app = createApp();
|
|
* const router = createRouter();
|
|
* router.use('/',
|
|
* defineEventHandler(async (event) => {
|
|
* const didHandleCors = handleCors(event, {
|
|
* origin: '*',
|
|
* preflight: {
|
|
* statusCode: 204,
|
|
* },
|
|
* methods: '*',
|
|
* });
|
|
* if (didHandleCors) {
|
|
* return;
|
|
* }
|
|
* // Your code here
|
|
* })
|
|
* );
|
|
*/
|
|
//#endregion
|
|
export { H3CorsOptions as t }; |