"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.chain = void 0; const ProviderError_1 = require("./ProviderError"); function chain(...providers) { return () => { let promise = Promise.reject(new ProviderError_1.ProviderError("No providers in chain")); for (const provider of providers) { promise = promise.catch((err) => { if (err === null || err === void 0 ? void 0 : err.tryNextLink) { return provider(); } throw err; }); } return promise; }; } exports.chain = chain;