From 29ebf14897dde6f1eb099bafe27d06de1c10965b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Kronm=C3=BCller?= Date: Thu, 2 Apr 2020 10:01:26 +0200 Subject: [PATCH] Support for credentials mode --- src/browser.js | 4 ++-- src/core.js | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) 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) }