UNPKG

@itwin/imodels-client-management

Version:

iModels API client wrapper for applications that manage iModels.

30 lines 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.UtilityFunctions = void 0; /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ const Constants_1 = require("../../Constants"); // eslint-disable-next-line @typescript-eslint/no-namespace var UtilityFunctions; (function (UtilityFunctions) { async function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); } UtilityFunctions.sleep = sleep; async function waitForCondition(params) { const sleepPeriodInMs = Constants_1.Constants.time.sleepPeriodInMs; const timeOutInMs = params.timeOutInMs ?? Constants_1.Constants.time.iModelInitializationTimeOutInMs; for (let retries = Math.ceil(timeOutInMs / sleepPeriodInMs); retries > 0; --retries) { const isTargetStateReached = await params.conditionToSatisfy(); if (isTargetStateReached) return; await sleep(sleepPeriodInMs); } const timeoutError = params.timeoutErrorFactory(); throw timeoutError; } UtilityFunctions.waitForCondition = waitForCondition; })(UtilityFunctions || (exports.UtilityFunctions = UtilityFunctions = {})); //# sourceMappingURL=UtilityFunctions.js.map