28 lines
989 B
JavaScript
28 lines
989 B
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.createWaiter = void 0;
|
||
|
const poller_1 = require("./poller");
|
||
|
const utils_1 = require("./utils");
|
||
|
const waiter_1 = require("./waiter");
|
||
|
const abortTimeout = async (abortSignal) => {
|
||
|
return new Promise((resolve) => {
|
||
|
abortSignal.onabort = () => resolve({ state: waiter_1.WaiterState.ABORTED });
|
||
|
});
|
||
|
};
|
||
|
const createWaiter = async (options, input, acceptorChecks) => {
|
||
|
const params = {
|
||
|
...waiter_1.waiterServiceDefaults,
|
||
|
...options,
|
||
|
};
|
||
|
(0, utils_1.validateWaiterOptions)(params);
|
||
|
const exitConditions = [(0, poller_1.runPolling)(params, input, acceptorChecks)];
|
||
|
if (options.abortController) {
|
||
|
exitConditions.push(abortTimeout(options.abortController.signal));
|
||
|
}
|
||
|
if (options.abortSignal) {
|
||
|
exitConditions.push(abortTimeout(options.abortSignal));
|
||
|
}
|
||
|
return Promise.race(exitConditions);
|
||
|
};
|
||
|
exports.createWaiter = createWaiter;
|