UNPKG

@contentgrid/fetch-hook-authentication

Version:
1 lines 1.97 kB
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { FetchHook } from \"@contentgrid/fetch-hooks\";\nimport { setHeader } from \"@contentgrid/fetch-hooks/request\";\nimport { AuthenticationTokenSupplier } from \"./token-supplier\";\nimport { ValueProvider, ValueProviderResolver } from \"@contentgrid/fetch-hooks/value-provider\";\nexport * from \"./token-supplier\";\n\ninterface AuthenticationTokenHookOptions {\n tokenSupplier: ValueProvider<AuthenticationTokenSupplier, []>;\n}\n\n\nexport default function createBearerAuthenticationHook(opts: AuthenticationTokenHookOptions): FetchHook {\n const tokenSupplierResolver = ValueProviderResolver.fromValueProvider(opts.tokenSupplier);\n return setHeader(\"Authorization\", async ({ request, entrypoint }) => {\n const tokenSupplier = await tokenSupplierResolver.resolve();\n const authenticationToken = await tokenSupplier(request.url, { signal: request.signal, fetch: entrypoint });\n if(authenticationToken) {\n return \"Bearer \" + authenticationToken.token;\n } else {\n return null;\n }\n })\n}\n"],"names":["createBearerAuthenticationHook","opts","tokenSupplierResolver","ValueProviderResolver","fromValueProvider","tokenSupplier","setHeader","_ref","request","entrypoint","resolve","authenticationToken","url","signal","fetch","token"],"mappings":";;;;;;;AAWwB,SAAAA,8BAA8BA,CAACC,IAAoC,EAAA;EACvF,MAAMC,qBAAqB,GAAGC,qBAAqB,CAACC,iBAAiB,CAACH,IAAI,CAACI,aAAa,CAAC;AACzF,EAAA,OAAOC,SAAS,CAAC,eAAe,EAAE,MAAAC,IAAA,IAAkC;IAAA,IAA3B;MAAEC,OAAO;AAAEC,MAAAA;AAAY,KAAA,GAAAF,IAAA;AAC5D,IAAA,MAAMF,aAAa,GAAG,MAAMH,qBAAqB,CAACQ,OAAO,EAAE;IAC3D,MAAMC,mBAAmB,GAAG,MAAMN,aAAa,CAACG,OAAO,CAACI,GAAG,EAAE;MAAEC,MAAM,EAAEL,OAAO,CAACK,MAAM;AAAEC,MAAAA,KAAK,EAAEL;AAAY,KAAA,CAAC;AAC3G,IAAA,IAAGE,mBAAmB,EAAE;AACpB,MAAA,OAAO,SAAS,GAAGA,mBAAmB,CAACI,KAAK;AAChD,KAAC,MAAM;AACH,MAAA,OAAO,IAAI;AACf;AACJ,GAAC,CAAC;AACN;;;;"}