generated from shgysk8zer0/npm-template
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcors.js
More file actions
24 lines (22 loc) · 832 Bytes
/
cors.js
File metadata and controls
24 lines (22 loc) · 832 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
*
* @param {object} options
* @param {boolean} [options.allowCredentials=false]
* @returns {Function}
*/
export function useCORS({ allowCredentials = false } = {}) {
return function(response, { request }) {
if (! response.redirected && request.headers.has('Origin') && ! response.headers.has('Access-Control-Allow-Origin')) {
if (allowCredentials) {
response.headers.set('Access-Control-Allow-Origin', request.headers.get('Origin'));
response.headers.set('Access-Control-Allow-Credentials', 'true');
} else {
response.headers.set('Access-Control-Allow-Origin', '*');
}
if (response.headers.has('Allow') && ! response.headers.has('Access-Control-Allow-Methods')) {
response.headers.set('Access-Control-Allow-Methods', response.headers.get('Allow'));
}
}
};
}
export default useCORS();