UNPKG

@contentgrid/fetch-hook-authentication

Version:
42 lines (38 loc) 1.1 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); 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); } } exports.CompositeTokenSupplierBuilder = CompositeTokenSupplierBuilder; exports.default = createCompositeTokenSupplier; //# sourceMappingURL=composite.js.map