@contentgrid/fetch-hook-authentication
Version:
30 lines (27 loc) • 1.19 kB
JavaScript
import { setHeader } from '@contentgrid/fetch-hooks/request';
import { ValueProviderResolver } from '@contentgrid/fetch-hooks/value-provider';
export { CompositeTokenSupplierBuilder, default as createCompositeTokenSupplier } from './token-supplier/composite.mjs';
export { OAuth2AuthenticationError, TokenExchangeError, TokenExchangeProtocolViolationError, default as createContentgridTokenExchangeTokenSupplier } from './token-supplier/contentgridTokenExchange.mjs';
import '@contentgrid/fetch-hooks';
import 'whatwg-mimetype';
function createBearerAuthenticationHook(opts) {
const tokenSupplierResolver = ValueProviderResolver.fromValueProvider(opts.tokenSupplier);
return setHeader("Authorization", async _ref => {
let {
request,
entrypoint
} = _ref;
const tokenSupplier = await tokenSupplierResolver.resolve();
const authenticationToken = await tokenSupplier(request.url, {
signal: request.signal,
fetch: entrypoint
});
if (authenticationToken) {
return "Bearer " + authenticationToken.token;
} else {
return null;
}
});
}
export { createBearerAuthenticationHook as default };
//# sourceMappingURL=index.mjs.map