diff --git a/src/browser.js b/src/browser.js index cd8caaf..6bdb1b0 100644 --- a/src/browser.js +++ b/src/browser.js @@ -17,7 +17,7 @@ class StatusError extends Error { } } -const mkrequest = (statusCodes, method, encoding, headers, baseurl) => async (_url, body, _headers = {}) => { +const mkrequest = (statusCodes, method, encoding, headers, baseurl, credentials) => async (_url, body, _headers = {}) => { _url = baseurl + (_url || '') let parsed = new URL(_url) @@ -46,7 +46,7 @@ const mkrequest = (statusCodes, method, encoding, headers, baseurl) => async (_u _headers = new Headers({ ...(headers || {}), ..._headers }) - const resp = await fetch(parsed, { method, headers: _headers, body }) + const resp = await fetch(parsed, { method, headers: _headers, body, credentials }) resp.statusCode = resp.status if (!statusCodes.has(resp.status)) { diff --git a/src/core.js b/src/core.js index 7490642..4cd4016 100644 --- a/src/core.js +++ b/src/core.js @@ -1,5 +1,6 @@ 'use strict' const encodings = new Set(['json', 'buffer', 'string']) +const _credentials = new Set(['omit', 'same-origin', 'include']) module.exports = mkrequest => (...args) => { const statusCodes = new Set() @@ -7,6 +8,7 @@ module.exports = mkrequest => (...args) => { let encoding let headers let baseurl = '' + let credentials args.forEach(arg => { if (typeof arg === 'string') { @@ -19,6 +21,8 @@ module.exports = mkrequest => (...args) => { } } else if (arg.startsWith('http:') || arg.startsWith('https:')) { baseurl = arg + } else if (_credentials.has(arg)) { + credentials = arg } else { if (encodings.has(arg)) { encoding = arg @@ -43,5 +47,5 @@ module.exports = mkrequest => (...args) => { statusCodes.add(200) } - return mkrequest(statusCodes, method, encoding, headers, baseurl) + return mkrequest(statusCodes, method, encoding, headers, baseurl, credentials) }