You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					79 lines
				
				3.1 KiB
			
		
		
			
		
	
	
					79 lines
				
				3.1 KiB
			| 
											3 years ago
										 | /// <reference types="node" />
 | ||
|  | 
 | ||
|  | import { FastifyInstance, FastifyPlugin, FastifyRequest } from 'fastify' | ||
|  | 
 | ||
|  | type OriginCallback = (err: Error | null, allow: boolean) => void; | ||
|  | export type OriginFunction = (origin: string, callback: OriginCallback) => void; | ||
|  | type OriginType = string | boolean | RegExp; | ||
|  | type ValueOrArray<T> = T | ArrayOfValueOrArray<T>; | ||
|  | 
 | ||
|  | interface ArrayOfValueOrArray<T> extends Array<ValueOrArray<T>> { | ||
|  | } | ||
|  | 
 | ||
|  | export interface FastifyCorsOptions { | ||
|  |   /** | ||
|  |    * Configures the Access-Control-Allow-Origin CORS header. | ||
|  |    */ | ||
|  |   origin?: ValueOrArray<OriginType> | OriginFunction; | ||
|  |   /** | ||
|  |    * Configures the Access-Control-Allow-Credentials CORS header. | ||
|  |    * Set to true to pass the header, otherwise it is omitted. | ||
|  |    */ | ||
|  |   credentials?: boolean; | ||
|  |   /** | ||
|  |    * Configures the Access-Control-Expose-Headers CORS header. | ||
|  |    * Expects a comma-delimited string (ex: 'Content-Range,X-Content-Range') | ||
|  |    * or an array (ex: ['Content-Range', 'X-Content-Range']). | ||
|  |    * If not specified, no custom headers are exposed. | ||
|  |    */ | ||
|  |   exposedHeaders?: string | string[]; | ||
|  |   /** | ||
|  |    * Configures the Access-Control-Allow-Headers CORS header. | ||
|  |    * Expects a comma-delimited string (ex: 'Content-Type,Authorization') | ||
|  |    * or an array (ex: ['Content-Type', 'Authorization']). If not | ||
|  |    * specified, defaults to reflecting the headers specified in the | ||
|  |    * request's Access-Control-Request-Headers header. | ||
|  |    */ | ||
|  |   allowedHeaders?: string | string[]; | ||
|  |   /** | ||
|  |    * Configures the Access-Control-Allow-Methods CORS header. | ||
|  |    * Expects a comma-delimited string (ex: 'GET,PUT,POST') or an array (ex: ['GET', 'PUT', 'POST']). | ||
|  |    */ | ||
|  |   methods?: string | string[]; | ||
|  |   /** | ||
|  |    * Configures the Access-Control-Max-Age CORS header. | ||
|  |    * Set to an integer to pass the header, otherwise it is omitted. | ||
|  |    */ | ||
|  |   maxAge?: number; | ||
|  |   /** | ||
|  |    * Pass the CORS preflight response to the route handler (default: false). | ||
|  |    */ | ||
|  |   preflightContinue?: boolean; | ||
|  |   /** | ||
|  |    * Provides a status code to use for successful OPTIONS requests, | ||
|  |    * since some legacy browsers (IE11, various SmartTVs) choke on 204. | ||
|  |    */ | ||
|  |   optionsSuccessStatus?: number; | ||
|  |   /** | ||
|  |    * Pass the CORS preflight response to the route handler (default: false). | ||
|  |    */ | ||
|  |   preflight?: boolean; | ||
|  |   /** | ||
|  |    * Enforces strict requirement of the CORS preflight request headers (Access-Control-Request-Method and Origin). | ||
|  |    * Preflight requests without the required headers will result in 400 errors when set to `true` (default: `true`). | ||
|  |    */ | ||
|  |   strictPreflight?: boolean; | ||
|  |   /** | ||
|  |    * Hide options route from the documentation built using fastify-swagger (default: true). | ||
|  |    */ | ||
|  |   hideOptionsRoute?: boolean; | ||
|  | } | ||
|  | 
 | ||
|  | export interface FastifyCorsOptionsDelegateCallback { (req: FastifyRequest, cb: (error: Error | null, corsOptions?: FastifyCorsOptions) => void): void } | ||
|  | export interface FastifyCorsOptionsDelegatePromise { (req: FastifyRequest):  Promise<FastifyCorsOptions>} | ||
|  | export type FastifyCorsOptionsDelegate = FastifyCorsOptionsDelegateCallback | FastifyCorsOptionsDelegatePromise | ||
|  | export type FastifyPluginOptionsDelegate<T> = (instance: FastifyInstance) => T; | ||
|  | 
 | ||
|  | declare const fastifyCors: FastifyPlugin<FastifyCorsOptions | FastifyPluginOptionsDelegate<FastifyCorsOptionsDelegate>>; | ||
|  | export default fastifyCors; |