UNPKG

@contentgrid/fetch-hook-authentication

Version:
37 lines (35 loc) 988 B
function createCompositeTokenSupplier(suppliers) { return async (uri, opts) => { for (const supplier of suppliers) { if (supplier.predicate(uri)) { return await supplier.supplier(uri, opts); } } return null; }; } class CompositeTokenSupplierBuilder { constructor() { let suppliers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; this.suppliers = suppliers; } predicate(predicate, supplier) { return new CompositeTokenSupplierBuilder(this.suppliers.concat([{ predicate, supplier }])); } origin(origin, supplier) { return this.predicate(uri => { return new URL(uri).origin === origin; }, supplier); } default(supplier) { return this.predicate(() => true, supplier); } build() { return createCompositeTokenSupplier(this.suppliers); } } export { CompositeTokenSupplierBuilder, createCompositeTokenSupplier as default }; //# sourceMappingURL=composite.mjs.map