UNPKG

postchain-client

Version:

Client library for accessing a Postchain node through REST.

31 lines 1.9 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { FailoverStrategy } from "./enums"; import { abortOnError, tryNextOnError, singleEndpoint, queryMajority } from "./failoverStrategies"; export function requestWithFailoverStrategy(method, path, config, postObject, forceSingleEndpoint = false) { return __awaiter(this, void 0, void 0, function* () { switch (config.failoverStrategy) { case FailoverStrategy.AbortOnError: return yield abortOnError({ method, path, config, postObject }); case FailoverStrategy.TryNextOnError: return yield tryNextOnError({ method, path, config, postObject }); case FailoverStrategy.SingleEndpoint: return yield singleEndpoint({ method, path, config, postObject }); case FailoverStrategy.QueryMajority: if (forceSingleEndpoint) { return yield singleEndpoint({ method, path, config, postObject }); } return yield queryMajority({ method, path, config, postObject }); default: throw new Error(`Unsupported failover strategy: ${config.failoverStrategy}`); } }); } //# sourceMappingURL=requestWithFailoverStrategy.js.map