This middleware sets HTTP CORS headers, necessary for making cross-origin requests, to the response object.
Sets headers in after
and onError
phases.
This is an alternative to standard Middy cors handler with the following differences:
- it allows you to add more CORS headers
To install this middleware you can use NPM:
npm install --save @schibsted/middy-cors
allowedOrigins
(array) - list of allowed origins or['*']
for allowing all originsexposeHeaders
(array) - list of headers to exposemaxAge
(string) - value passed toaccess-control-max-age
headercredentials
(bool) - value passed toaccess-control-allow-credentials
headerallowMethods
(array) - list of allowed HTTP methodsallowHeaders
(array) - list of allowed HTTP headers
const middy = require('@middy/core');
const cors = require('@schibsted/middy-cors');
const handler = middy(async () => ({
statusCode: 200,
body: JSON.stringify({ foo: 'bar' }),
}));
handler
.use(cors({ allowedOrigins: ['https://www.vg.no', 'https://www.tek.no']}));
// when Lambda runs the handler...
handler({}, {}, (_, response) => {
expect(response).toEqual({
statusCode: 200,
headers: {
'access-control-allow-origin': 'https://www.vg.no',
},
body: JSON.stringify({ foo: 'bar' }),
})
})
Everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.