@itwin/imodels-client-management
Version:
iModels API client wrapper for applications that manage iModels.
27 lines • 1.39 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* 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