UNPKG

@itwin/imodels-client-management

Version:

iModels API client wrapper for applications that manage iModels.

27 lines 1.39 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ import { Constants } from "../../Constants"; // eslint-disable-next-line @typescript-eslint/no-namespace export 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.time.sleepPeriodInMs; const timeOutInMs = params.timeOutInMs ?? 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 || (UtilityFunctions = {})); //# sourceMappingURL=UtilityFunctions.js.map