@goa/cors
Version:
Cross-Origin Resource Sharing (CORS) For Goa.
41 lines (36 loc) • 2.42 kB
JavaScript
const { _cors } = require('./cors')
/**
* Cross-Origin Resource Sharing (CORS) For Goa.
* @param {!_goa.CorsConfig} [config] Options for the program.
* @param {string|function(!_goa.Context)} [config.origin] `Access-Control-Allow-Origin` header, default is taken from the `Origin` request header.
* @param {string|!Array<string>} [config.allowMethods="GET,HEAD,PUT,POST,DELETE,PATCH"] `Access-Control-Allow-Methods` header. Default `GET,HEAD,PUT,POST,DELETE,PATCH`.
* @param {string|!Array<string>} [config.exposeHeaders] `Access-Control-Expose-Headers` header.
* @param {string|!Array<string>} [config.allowHeaders] `Access-Control-Allow-Headers` header.
* @param {string|number} [config.maxAge] `Access-Control-Max-Age` header in seconds.
* @param {boolean} [config.credentials=false] `Access-Control-Max-Age` header in seconds. Default `false`.
* @param {boolean} [config.keepHeadersOnError=true] Add set headers to `err.header` if an error is thrown. Default `true`.
* @return {!_goa.Middleware}
*/
function $cors(config) {
return _cors(config)
}
module.exports = $cors
/* typal types/index.xml namespace */
/**
* @typedef {import('@typedefs/goa').Context} _goa.Context
* @typedef {_goa.CorsConfig} CorsConfig `@record` Options for the program.
* @typedef {Object} _goa.CorsConfig `@record` Options for the program.
* @prop {string|function(!_goa.Context)} [origin] `Access-Control-Allow-Origin` header, default is taken from the `Origin` request header.
* @prop {string|!Array<string>} [allowMethods="GET,HEAD,PUT,POST,DELETE,PATCH"] `Access-Control-Allow-Methods` header. Default `GET,HEAD,PUT,POST,DELETE,PATCH`.
* @prop {string|!Array<string>} [exposeHeaders] `Access-Control-Expose-Headers` header.
* @prop {string|!Array<string>} [allowHeaders] `Access-Control-Allow-Headers` header.
* @prop {string|number} [maxAge] `Access-Control-Max-Age` header in seconds.
* @prop {boolean} [credentials=false] `Access-Control-Max-Age` header in seconds. Default `false`.
* @prop {boolean} [keepHeadersOnError=true] Add set headers to `err.header` if an error is thrown. Default `true`.
*/
/* typal types/api.xml namespace */
/**
* @typedef {import('@typedefs/goa').Middleware} _goa.Middleware
* @typedef {_goa.cors} cors Cross-Origin Resource Sharing (CORS) For Goa.
* @typedef {(config?: !_goa.CorsConfig) => !_goa.Middleware} _goa.cors Cross-Origin Resource Sharing (CORS) For Goa.
*/