@alessiofrittoli/next-api
Version:
Next.js API utility library
54 lines (51 loc) • 1.59 kB
TypeScript
export { N as NextResponse } from '../NextResponse-dit4yHQK.js';
import { A as Api } from '../types-Cxk-bdcN.js';
export { C as CorsHeadersOptions, N as NextResponseProps, a as NextResponseStreamInput } from '../types-Cxk-bdcN.js';
import '@alessiofrittoli/exception/code';
import '@alessiofrittoli/stream-reader/types';
import 'next/server';
import '@alessiofrittoli/exception';
import '../page-DAsxsEeP.js';
import 'next';
import 'fs';
import 'node:stream/web';
/**
* Return a proper Response for the `OPTIONS` preflight request.
*
* @param request The `NextRequest` object.
* @param ctx The API Route Request context.
* @param cors ( Optional ) Custom CORS policy options. See {@link Api.CORS.Policy} for available options. Default: `true`.
* @returns A new `NextResponse` instance.
*
* @example
*
* #### Basic usage
*
* ```ts
* // src/app/api/v1/route.ts
* import { corsPreflight } from '@alessiofrittoli/next-api/response'
*
* export const OPTIONS = corsPreFlight
* ```
*
* ---
*
* @example
*
* #### Defining custom CORS Policy options
*
* ```ts
* // src/app/api/v1/route.ts
* import { corsPreflight } from '@alessiofrittoli/next-api/response'
*
* export const OPTIONS: Api.Route.Handler = ( request ) => corsPreflight( request, undefined, {
* credentials : true,
* exposedHeaders : [ 'X-Custom-Header' ],
* headers : [ 'X-CORS-Request-Allowed-Header' ],
* methods : [ 'GET' ],
* origin : 'https://allowed-origin.it',
* } )
* ```
*/
declare const corsPreflight: Api.Route.CorsPreFlightHandler;
export { corsPreflight };