@contentgrid/fetch-hook-authentication
Version:
1 lines • 2.8 kB
Source Map (JSON)
{"version":3,"file":"composite.mjs","sources":["../../src/token-supplier/composite.ts"],"sourcesContent":["import { AuthenticationTokenSupplier } from \"./types\";\n\ntype UriPredicate = (uri: string) => boolean;\n\ninterface SupplierEntry {\n predicate: UriPredicate;\n supplier: AuthenticationTokenSupplier;\n}\n\nexport default function createCompositeTokenSupplier(suppliers: readonly SupplierEntry[]): AuthenticationTokenSupplier {\n return async (uri, opts) => {\n for(const supplier of suppliers) {\n if(supplier.predicate(uri)) {\n return await supplier.supplier(uri, opts);\n }\n }\n return null;\n }\n}\n\nexport class CompositeTokenSupplierBuilder {\n\n public constructor();\n /* @internal */\n public constructor(suppliers: readonly SupplierEntry[]);\n public constructor(\n private readonly suppliers: readonly SupplierEntry[] = []\n ) {\n\n }\n\n public predicate(predicate: UriPredicate, supplier: AuthenticationTokenSupplier): CompositeTokenSupplierBuilder {\n return new CompositeTokenSupplierBuilder(this.suppliers.concat([{ predicate, supplier }]))\n }\n\n public origin(origin: string, supplier: AuthenticationTokenSupplier): CompositeTokenSupplierBuilder {\n return this.predicate(uri => {\n return new URL(uri).origin === origin\n }, supplier);\n }\n\n public default(supplier: AuthenticationTokenSupplier): CompositeTokenSupplierBuilder {\n return this.predicate(() => true, supplier);\n }\n\n public build(): AuthenticationTokenSupplier {\n return createCompositeTokenSupplier(this.suppliers);\n }\n\n}\n"],"names":["createCompositeTokenSupplier","suppliers","uri","opts","supplier","predicate","CompositeTokenSupplierBuilder","constructor","concat","origin","URL","default","build"],"mappings":"AASwB,SAAAA,4BAA4BA,CAACC,SAAmC,EAAA;AACpF,EAAA,OAAO,OAAOC,GAAG,EAAEC,IAAI,KAAI;AACvB,IAAA,KAAI,MAAMC,QAAQ,IAAIH,SAAS,EAAE;AAC7B,MAAA,IAAGG,QAAQ,CAACC,SAAS,CAACH,GAAG,CAAC,EAAE;QACxB,OAAO,MAAME,QAAQ,CAACA,QAAQ,CAACF,GAAG,EAAEC,IAAI,CAAC;AAC7C;AACJ;AACA,IAAA,OAAO,IAAI;GACd;AACL;MAEaG,6BAA6B,CAAA;AAKtCC,EAAAA,WAAAA,GAC6D;AAAA,IAAA,IAAxCN,gFAAsC,EAAE;IAAxC,IAAS,CAAAA,SAAA,GAATA,SAAS;AAG9B;AAEOI,EAAAA,SAASA,CAACA,SAAuB,EAAED,QAAqC,EAAA;IAC3E,OAAO,IAAIE,6BAA6B,CAAC,IAAI,CAACL,SAAS,CAACO,MAAM,CAAC,CAAC;MAAEH,SAAS;AAAED,MAAAA;KAAU,CAAC,CAAC,CAAC;AAC9F;AAEOK,EAAAA,MAAMA,CAACA,MAAc,EAAEL,QAAqC,EAAA;AAC/D,IAAA,OAAO,IAAI,CAACC,SAAS,CAACH,GAAG,IAAG;MACxB,OAAO,IAAIQ,GAAG,CAACR,GAAG,CAAC,CAACO,MAAM,KAAKA,MAAM;KACxC,EAAEL,QAAQ,CAAC;AAChB;EAEOO,OAAOA,CAACP,QAAqC,EAAA;IAChD,OAAO,IAAI,CAACC,SAAS,CAAC,MAAM,IAAI,EAAED,QAAQ,CAAC;AAC/C;AAEOQ,EAAAA,KAAKA,GAAA;AACR,IAAA,OAAOZ,4BAA4B,CAAC,IAAI,CAACC,SAAS,CAAC;AACvD;AAEH;;;;"}