UNPKG

@softchef/cdk-iot-device-management

Version:

IoT device management is composed of things, thing types, thing groups, jobs, files API services. The constructs can be used independently, that are based on full-managed service to create an API Gateway & Lambda function.

27 lines (26 loc) 1.23 kB
import { __assign, __awaiter, __generator } from "tslib"; import { runPolling } from "./poller"; import { validateWaiterOptions } from "./utils"; import { waiterServiceDefaults, WaiterState } from "./waiter"; var abortTimeout = function (abortSignal) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { return [2, new Promise(function (resolve) { abortSignal.onabort = function () { return resolve({ state: WaiterState.ABORTED }); }; })]; }); }); }; export var createWaiter = function (options, input, acceptorChecks) { return __awaiter(void 0, void 0, void 0, function () { var params, exitConditions; return __generator(this, function (_a) { params = __assign(__assign({}, waiterServiceDefaults), options); validateWaiterOptions(params); exitConditions = [runPolling(params, input, acceptorChecks)]; if (options.abortController) { exitConditions.push(abortTimeout(options.abortController.signal)); } if (options.abortSignal) { exitConditions.push(abortTimeout(options.abortSignal)); } return [2, Promise.race(exitConditions)]; }); }); };