ketting
Version:
Opinionated HATEOAS / Rest client.
25 lines (19 loc) • 612 B
text/typescript
import { FetchMiddleware } from '../http/fetcher.js';
import Client from '../client.js';
/**
* This middleware injects a default Accept header.
*
* The list of content-types is generated from the Client's
* 'contentTypeMap'.
*/
export default function(client: Client): FetchMiddleware {
return async(request, next) => {
if (!request.headers.has('Accept')) {
const acceptHeader = Object.entries(client.contentTypeMap).map(
([contentType, [, q]]) => contentType + ';q=' + q
).join(', ');
request.headers.set('Accept', acceptHeader);
}
return next(request);
};
}