@itwin/core-bentley 3.4.0-dev.12 → 3.4.0-dev.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,15 @@
1
1
  # Change Log - @itwin/core-bentley
2
2
 
3
- This log was last generated on Tue, 09 Aug 2022 15:52:41 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 18 Aug 2022 19:08:02 GMT and should not be manually modified.
4
+
5
+ ## 3.3.0
6
+ Thu, 18 Aug 2022 19:08:02 GMT
7
+
8
+ ### Updates
9
+
10
+ - upgrade mocha to version 10.0.0
11
+ - Add ExtractLiterals type.
12
+ - Remove AuthStatus from BentleyError.
4
13
 
5
14
  ## 3.2.8
6
15
  Tue, 09 Aug 2022 15:52:41 GMT
package/lib/cjs/Time.d.ts CHANGED
@@ -104,7 +104,7 @@ export declare class StopWatch {
104
104
  get current(): BeDuration;
105
105
  /** Get the elapsed time, in seconds, since start() on a running timer. */
106
106
  get currentSeconds(): number;
107
- /** Get the elapsed time between start() and stop() on this timer. */
107
+ /** Get the elapsed time between start() and stop() on this timer in milliseconds. */
108
108
  get elapsed(): BeDuration;
109
109
  /** Get the elapsed time, in seconds, between start() and stop() on this timer. */
110
110
  get elapsedSeconds(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO;IAEP,mCAAmC;IACnC,IAAW,YAAY,WAAiC;IACxD,IAAW,OAAO,WAAwC;IAE1D;;OAEG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM;IACzC;;OAEG;WACW,gBAAgB,CAAC,YAAY,EAAE,MAAM;IACnD,qDAAqD;IACrD,IAAW,MAAM,YAAuC;IACxD,8DAA8D;IAC9D,IAAW,eAAe,IAAI,OAAO,CAAmC;IACxE,4DAA4D;IAC5D,IAAW,aAAa,IAAI,OAAO,CAAmC;IACtE,8EAA8E;IACvE,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAC3C,sEAAsE;IAC/D,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAE1C;;;OAGG;WACiB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;OAIG;WACiB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAWnF;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;;OAKG;IACU,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAGjG;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,gGAAgG;IAChG,IAAW,YAAY,WAAiC;IACxD,OAAO;IAEP,2CAA2C;WAC7B,GAAG;IAEjB;;OAEG;WACW,OAAO,CAAC,GAAG,EAAE,UAAU;IAErC;;OAEG;WACW,SAAS,CAAC,GAAG,EAAE,UAAU;IAEvC,uHAAuH;IACvH,IAAW,UAAU,IAAI,OAAO,CAA4C;IAE5E,mIAAmI;IACnI,IAAW,QAAQ,IAAI,OAAO,CAA4C;IAE1E;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAE1C;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAEzC;;OAEG;IACI,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW;IAE/C;;OAEG;IACI,IAAI,CAAC,QAAQ,EAAE,UAAU;CACjC;AAED;;GAEG;AACH,qBAAa,SAAS;IAeD,WAAW,CAAC;IAd/B,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,6DAA6D;IAC7D,IAAW,OAAO,IAAI,UAAU,CAAyH;IACzJ,0EAA0E;IAC1E,IAAW,cAAc,IAAI,MAAM,CAAiC;IACpE,qEAAqE;IACrE,IAAW,OAAO,IAAI,UAAU,CAAoK;IACpM,mFAAmF;IACnF,IAAW,cAAc,IAAI,MAAM,CAAiC;IACpE;;;OAGG;gBACgB,WAAW,CAAC,oBAAQ,EAAE,gBAAgB,UAAQ;IACjE,yFAAyF;IAClF,KAAK,IAAI,IAAI;IACpB,mEAAmE;IAC5D,IAAI,IAAI,UAAU;IACzB,0BAA0B;IACnB,KAAK,IAAI,IAAI;CACrB"}
1
+ {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO;IAEP,mCAAmC;IACnC,IAAW,YAAY,WAAiC;IACxD,IAAW,OAAO,WAAwC;IAE1D;;OAEG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM;IACzC;;OAEG;WACW,gBAAgB,CAAC,YAAY,EAAE,MAAM;IACnD,qDAAqD;IACrD,IAAW,MAAM,YAAuC;IACxD,8DAA8D;IAC9D,IAAW,eAAe,IAAI,OAAO,CAAmC;IACxE,4DAA4D;IAC5D,IAAW,aAAa,IAAI,OAAO,CAAmC;IACtE,8EAA8E;IACvE,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAC3C,sEAAsE;IAC/D,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAE1C;;;OAGG;WACiB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;OAIG;WACiB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAWnF;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;;OAKG;IACU,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAGjG;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,gGAAgG;IAChG,IAAW,YAAY,WAAiC;IACxD,OAAO;IAEP,2CAA2C;WAC7B,GAAG;IAEjB;;OAEG;WACW,OAAO,CAAC,GAAG,EAAE,UAAU;IAErC;;OAEG;WACW,SAAS,CAAC,GAAG,EAAE,UAAU;IAEvC,uHAAuH;IACvH,IAAW,UAAU,IAAI,OAAO,CAA4C;IAE5E,mIAAmI;IACnI,IAAW,QAAQ,IAAI,OAAO,CAA4C;IAE1E;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAE1C;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAEzC;;OAEG;IACI,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW;IAE/C;;OAEG;IACI,IAAI,CAAC,QAAQ,EAAE,UAAU;CACjC;AAED;;GAEG;AACH,qBAAa,SAAS;IAeD,WAAW,CAAC;IAd/B,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,6DAA6D;IAC7D,IAAW,OAAO,IAAI,UAAU,CAAyH;IACzJ,0EAA0E;IAC1E,IAAW,cAAc,IAAI,MAAM,CAAiC;IACpE,qFAAqF;IACrF,IAAW,OAAO,IAAI,UAAU,CAAoK;IACpM,mFAAmF;IACnF,IAAW,cAAc,IAAI,MAAM,CAAiC;IACpE;;;OAGG;gBACgB,WAAW,CAAC,oBAAQ,EAAE,gBAAgB,UAAQ;IACjE,yFAAyF;IAClF,KAAK,IAAI,IAAI;IACpB,mEAAmE;IAC5D,IAAI,IAAI,UAAU;IACzB,0BAA0B;IACnB,KAAK,IAAI,IAAI;CACrB"}
package/lib/cjs/Time.js CHANGED
@@ -132,7 +132,7 @@ class StopWatch {
132
132
  get current() { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }
133
133
  /** Get the elapsed time, in seconds, since start() on a running timer. */
134
134
  get currentSeconds() { return this.current.seconds; }
135
- /** Get the elapsed time between start() and stop() on this timer. */
135
+ /** Get the elapsed time between start() and stop() on this timer in milliseconds. */
136
136
  get elapsed() { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }
137
137
  /** Get the elapsed time, in seconds, between start() and stop() on this timer. */
138
138
  get elapsedSeconds() { return this.elapsed.seconds; }
@@ -1 +1 @@
1
- {"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\n/** A duration of time. Can be either positive (towards future) or negative (in the past).\r\n * BeDurations are immutable.\r\n * @public\r\n */\r\nexport class BeDuration {\r\n private readonly _milliseconds: number;\r\n private constructor(milliseconds: number = 0) { this._milliseconds = milliseconds; }\r\n\r\n /** The duration in milliseconds */\r\n public get milliseconds() { return this._milliseconds; }\r\n public get seconds() { return this._milliseconds / 1000; }\r\n\r\n /** Create a BeDuration from seconds.\r\n * @param seconds the number of seconds for this BeDuration\r\n */\r\n public static fromSeconds(seconds: number) { return new BeDuration(seconds * 1000); }\r\n /** Create a BeDuration from milliseconds.\r\n * @param milliseconds the number of milliseconds for this BeDuration\r\n */\r\n public static fromMilliseconds(milliseconds: number) { return new BeDuration(milliseconds); }\r\n /** Determine whether this BeDuration is 0 seconds */\r\n public get isZero() { return this._milliseconds === 0; }\r\n /** Determine whether this BeDuration is towards the future */\r\n public get isTowardsFuture(): boolean { return this._milliseconds > 0; }\r\n /** Determine whether this BeDuration is towards the past */\r\n public get isTowardsPast(): boolean { return this._milliseconds < 0; }\r\n /** Subtract a BeDuration from this BeDuration, returning a new BeDuration. */\r\n public minus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds - other._milliseconds); }\r\n /** Add a BeDuration to this BeDuration, returning a new BeDuration */\r\n public plus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds + other._milliseconds); }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @param ms Duration in milliseconds to wait\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public static async wait(ms: number): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, ms));\r\n }\r\n\r\n /** Utility function to wait for either the specified time or a promise, whichever resolves first\r\n * @param ms Maximum duration in milliseconds to wait\r\n * @param promise A pending promise to wait for\r\n * @return Promise that resolves after the specified wait period or the provided promise resolves, whichever comes first\r\n */\r\n public static async race<T>(ms: number, promise: PromiseLike<T>): Promise<T | void> {\r\n let timeout: any;\r\n const waitPromise = new Promise<void>((resolve) => {\r\n timeout = setTimeout(resolve, ms);\r\n });\r\n return Promise.race([waitPromise, promise]).finally(() => {\r\n if (timeout)\r\n clearTimeout(timeout);\r\n });\r\n }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public async wait(): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, this._milliseconds));\r\n }\r\n\r\n /** Execute a function after delaying by this duration.\r\n * @param fn the function to execute after the delay\r\n * @param scope An optional object scope to serve as the 'this' pointer when `fn` is invoked.\r\n * @param args optional arguments to `fn`\r\n * @return Promise resolved by `fn`\r\n */\r\n public async executeAfter<T>(fn: (...args: any[]) => T, scope?: any, ...args: any[]): Promise<T> {\r\n return new Promise<T>((resolve: any) => setTimeout(() => resolve(fn.apply(scope, args)), this._milliseconds));\r\n }\r\n}\r\n\r\n/** A specific point in time relative to the current time.\r\n * BeTimePoints are used for timing operations. They are created from a BeDuration relative to the \"now\".\r\n * BeTimePoints are immutable.\r\n * @public\r\n */\r\nexport class BeTimePoint {\r\n private readonly _milliseconds: number;\r\n /** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */\r\n public get milliseconds() { return this._milliseconds; }\r\n private constructor(milliseconds: number) { this._milliseconds = milliseconds; }\r\n\r\n /** Create a BeTimePoint from Date.now() */\r\n public static now() { return new BeTimePoint(Date.now()); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the future from now\r\n * @param val the duration from now\r\n */\r\n public static fromNow(val: BeDuration) { return new BeTimePoint(Date.now() + val.milliseconds); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the past before now\r\n * @param val the duration before now\r\n */\r\n public static beforeNow(val: BeDuration) { return new BeTimePoint(Date.now() - val.milliseconds); }\r\n\r\n /** Determine whether this BeTimePoint is a time in the future from the time this method is called (it calls now()!) */\r\n public get isInFuture(): boolean { return Date.now() < this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint is a time that has already passed before the time this method is called (it calls now()!) */\r\n public get isInPast(): boolean { return Date.now() > this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens before another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public before(other: BeTimePoint): boolean { return this._milliseconds < other._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens after another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public after(other: BeTimePoint): boolean { return this._milliseconds > other._milliseconds; }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public minus(duration: BeDuration): BeTimePoint { return new BeTimePoint(this._milliseconds - duration.milliseconds); }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public plus(duration: BeDuration) { return new BeTimePoint(this._milliseconds + duration.milliseconds); }\r\n}\r\n\r\n/** A StopWatch for timing operations.\r\n * @public\r\n */\r\nexport class StopWatch {\r\n private _start?: BeTimePoint;\r\n private _stop?: BeTimePoint;\r\n /** Get the elapsed time since start() on a running timer. */\r\n public get current(): BeDuration { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, since start() on a running timer. */\r\n public get currentSeconds(): number { return this.current.seconds; }\r\n /** Get the elapsed time between start() and stop() on this timer. */\r\n public get elapsed(): BeDuration { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, between start() and stop() on this timer. */\r\n public get elapsedSeconds(): number { return this.elapsed.seconds; }\r\n /** ctor for StopWatch\r\n * @param description optional string stored with the StopWatch\r\n * @param startImmediately if true, StopWatch is started when created. Otherwise, call start() explicitly.\r\n */\r\n constructor(public description?: string, startImmediately = false) { if (startImmediately) this.start(); }\r\n /** Start the stopwatch. Any future time measurements will be based on this new value. */\r\n public start(): void { this.reset(); this._start = BeTimePoint.now(); }\r\n /** Stop the stopwatch so that the duration can be viewed later. */\r\n public stop(): BeDuration { this._stop = BeTimePoint.now(); return this.elapsed; }\r\n /** Clear the StopWatch */\r\n public reset(): void { this._start = this._stop = undefined; }\r\n}\r\n"]}
1
+ {"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\n/** A duration of time. Can be either positive (towards future) or negative (in the past).\r\n * BeDurations are immutable.\r\n * @public\r\n */\r\nexport class BeDuration {\r\n private readonly _milliseconds: number;\r\n private constructor(milliseconds: number = 0) { this._milliseconds = milliseconds; }\r\n\r\n /** The duration in milliseconds */\r\n public get milliseconds() { return this._milliseconds; }\r\n public get seconds() { return this._milliseconds / 1000; }\r\n\r\n /** Create a BeDuration from seconds.\r\n * @param seconds the number of seconds for this BeDuration\r\n */\r\n public static fromSeconds(seconds: number) { return new BeDuration(seconds * 1000); }\r\n /** Create a BeDuration from milliseconds.\r\n * @param milliseconds the number of milliseconds for this BeDuration\r\n */\r\n public static fromMilliseconds(milliseconds: number) { return new BeDuration(milliseconds); }\r\n /** Determine whether this BeDuration is 0 seconds */\r\n public get isZero() { return this._milliseconds === 0; }\r\n /** Determine whether this BeDuration is towards the future */\r\n public get isTowardsFuture(): boolean { return this._milliseconds > 0; }\r\n /** Determine whether this BeDuration is towards the past */\r\n public get isTowardsPast(): boolean { return this._milliseconds < 0; }\r\n /** Subtract a BeDuration from this BeDuration, returning a new BeDuration. */\r\n public minus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds - other._milliseconds); }\r\n /** Add a BeDuration to this BeDuration, returning a new BeDuration */\r\n public plus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds + other._milliseconds); }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @param ms Duration in milliseconds to wait\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public static async wait(ms: number): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, ms));\r\n }\r\n\r\n /** Utility function to wait for either the specified time or a promise, whichever resolves first\r\n * @param ms Maximum duration in milliseconds to wait\r\n * @param promise A pending promise to wait for\r\n * @return Promise that resolves after the specified wait period or the provided promise resolves, whichever comes first\r\n */\r\n public static async race<T>(ms: number, promise: PromiseLike<T>): Promise<T | void> {\r\n let timeout: any;\r\n const waitPromise = new Promise<void>((resolve) => {\r\n timeout = setTimeout(resolve, ms);\r\n });\r\n return Promise.race([waitPromise, promise]).finally(() => {\r\n if (timeout)\r\n clearTimeout(timeout);\r\n });\r\n }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public async wait(): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, this._milliseconds));\r\n }\r\n\r\n /** Execute a function after delaying by this duration.\r\n * @param fn the function to execute after the delay\r\n * @param scope An optional object scope to serve as the 'this' pointer when `fn` is invoked.\r\n * @param args optional arguments to `fn`\r\n * @return Promise resolved by `fn`\r\n */\r\n public async executeAfter<T>(fn: (...args: any[]) => T, scope?: any, ...args: any[]): Promise<T> {\r\n return new Promise<T>((resolve: any) => setTimeout(() => resolve(fn.apply(scope, args)), this._milliseconds));\r\n }\r\n}\r\n\r\n/** A specific point in time relative to the current time.\r\n * BeTimePoints are used for timing operations. They are created from a BeDuration relative to the \"now\".\r\n * BeTimePoints are immutable.\r\n * @public\r\n */\r\nexport class BeTimePoint {\r\n private readonly _milliseconds: number;\r\n /** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */\r\n public get milliseconds() { return this._milliseconds; }\r\n private constructor(milliseconds: number) { this._milliseconds = milliseconds; }\r\n\r\n /** Create a BeTimePoint from Date.now() */\r\n public static now() { return new BeTimePoint(Date.now()); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the future from now\r\n * @param val the duration from now\r\n */\r\n public static fromNow(val: BeDuration) { return new BeTimePoint(Date.now() + val.milliseconds); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the past before now\r\n * @param val the duration before now\r\n */\r\n public static beforeNow(val: BeDuration) { return new BeTimePoint(Date.now() - val.milliseconds); }\r\n\r\n /** Determine whether this BeTimePoint is a time in the future from the time this method is called (it calls now()!) */\r\n public get isInFuture(): boolean { return Date.now() < this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint is a time that has already passed before the time this method is called (it calls now()!) */\r\n public get isInPast(): boolean { return Date.now() > this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens before another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public before(other: BeTimePoint): boolean { return this._milliseconds < other._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens after another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public after(other: BeTimePoint): boolean { return this._milliseconds > other._milliseconds; }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public minus(duration: BeDuration): BeTimePoint { return new BeTimePoint(this._milliseconds - duration.milliseconds); }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public plus(duration: BeDuration) { return new BeTimePoint(this._milliseconds + duration.milliseconds); }\r\n}\r\n\r\n/** A StopWatch for timing operations.\r\n * @public\r\n */\r\nexport class StopWatch {\r\n private _start?: BeTimePoint;\r\n private _stop?: BeTimePoint;\r\n /** Get the elapsed time since start() on a running timer. */\r\n public get current(): BeDuration { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, since start() on a running timer. */\r\n public get currentSeconds(): number { return this.current.seconds; }\r\n /** Get the elapsed time between start() and stop() on this timer in milliseconds. */\r\n public get elapsed(): BeDuration { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, between start() and stop() on this timer. */\r\n public get elapsedSeconds(): number { return this.elapsed.seconds; }\r\n /** ctor for StopWatch\r\n * @param description optional string stored with the StopWatch\r\n * @param startImmediately if true, StopWatch is started when created. Otherwise, call start() explicitly.\r\n */\r\n constructor(public description?: string, startImmediately = false) { if (startImmediately) this.start(); }\r\n /** Start the stopwatch. Any future time measurements will be based on this new value. */\r\n public start(): void { this.reset(); this._start = BeTimePoint.now(); }\r\n /** Stop the stopwatch so that the duration can be viewed later. */\r\n public stop(): BeDuration { this._stop = BeTimePoint.now(); return this.elapsed; }\r\n /** Clear the StopWatch */\r\n public reset(): void { this._start = this._stop = undefined; }\r\n}\r\n"]}
package/lib/esm/Time.d.ts CHANGED
@@ -104,7 +104,7 @@ export declare class StopWatch {
104
104
  get current(): BeDuration;
105
105
  /** Get the elapsed time, in seconds, since start() on a running timer. */
106
106
  get currentSeconds(): number;
107
- /** Get the elapsed time between start() and stop() on this timer. */
107
+ /** Get the elapsed time between start() and stop() on this timer in milliseconds. */
108
108
  get elapsed(): BeDuration;
109
109
  /** Get the elapsed time, in seconds, between start() and stop() on this timer. */
110
110
  get elapsedSeconds(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO;IAEP,mCAAmC;IACnC,IAAW,YAAY,WAAiC;IACxD,IAAW,OAAO,WAAwC;IAE1D;;OAEG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM;IACzC;;OAEG;WACW,gBAAgB,CAAC,YAAY,EAAE,MAAM;IACnD,qDAAqD;IACrD,IAAW,MAAM,YAAuC;IACxD,8DAA8D;IAC9D,IAAW,eAAe,IAAI,OAAO,CAAmC;IACxE,4DAA4D;IAC5D,IAAW,aAAa,IAAI,OAAO,CAAmC;IACtE,8EAA8E;IACvE,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAC3C,sEAAsE;IAC/D,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAE1C;;;OAGG;WACiB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;OAIG;WACiB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAWnF;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;;OAKG;IACU,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAGjG;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,gGAAgG;IAChG,IAAW,YAAY,WAAiC;IACxD,OAAO;IAEP,2CAA2C;WAC7B,GAAG;IAEjB;;OAEG;WACW,OAAO,CAAC,GAAG,EAAE,UAAU;IAErC;;OAEG;WACW,SAAS,CAAC,GAAG,EAAE,UAAU;IAEvC,uHAAuH;IACvH,IAAW,UAAU,IAAI,OAAO,CAA4C;IAE5E,mIAAmI;IACnI,IAAW,QAAQ,IAAI,OAAO,CAA4C;IAE1E;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAE1C;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAEzC;;OAEG;IACI,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW;IAE/C;;OAEG;IACI,IAAI,CAAC,QAAQ,EAAE,UAAU;CACjC;AAED;;GAEG;AACH,qBAAa,SAAS;IAeD,WAAW,CAAC;IAd/B,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,6DAA6D;IAC7D,IAAW,OAAO,IAAI,UAAU,CAAyH;IACzJ,0EAA0E;IAC1E,IAAW,cAAc,IAAI,MAAM,CAAiC;IACpE,qEAAqE;IACrE,IAAW,OAAO,IAAI,UAAU,CAAoK;IACpM,mFAAmF;IACnF,IAAW,cAAc,IAAI,MAAM,CAAiC;IACpE;;;OAGG;gBACgB,WAAW,CAAC,oBAAQ,EAAE,gBAAgB,UAAQ;IACjE,yFAAyF;IAClF,KAAK,IAAI,IAAI;IACpB,mEAAmE;IAC5D,IAAI,IAAI,UAAU;IACzB,0BAA0B;IACnB,KAAK,IAAI,IAAI;CACrB"}
1
+ {"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO;IAEP,mCAAmC;IACnC,IAAW,YAAY,WAAiC;IACxD,IAAW,OAAO,WAAwC;IAE1D;;OAEG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM;IACzC;;OAEG;WACW,gBAAgB,CAAC,YAAY,EAAE,MAAM;IACnD,qDAAqD;IACrD,IAAW,MAAM,YAAuC;IACxD,8DAA8D;IAC9D,IAAW,eAAe,IAAI,OAAO,CAAmC;IACxE,4DAA4D;IAC5D,IAAW,aAAa,IAAI,OAAO,CAAmC;IACtE,8EAA8E;IACvE,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAC3C,sEAAsE;IAC/D,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAE1C;;;OAGG;WACiB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;OAIG;WACiB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAWnF;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC;;;;;OAKG;IACU,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAGjG;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,gGAAgG;IAChG,IAAW,YAAY,WAAiC;IACxD,OAAO;IAEP,2CAA2C;WAC7B,GAAG;IAEjB;;OAEG;WACW,OAAO,CAAC,GAAG,EAAE,UAAU;IAErC;;OAEG;WACW,SAAS,CAAC,GAAG,EAAE,UAAU;IAEvC,uHAAuH;IACvH,IAAW,UAAU,IAAI,OAAO,CAA4C;IAE5E,mIAAmI;IACnI,IAAW,QAAQ,IAAI,OAAO,CAA4C;IAE1E;;OAEG;IACI,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAE1C;;OAEG;IACI,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAEzC;;OAEG;IACI,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW;IAE/C;;OAEG;IACI,IAAI,CAAC,QAAQ,EAAE,UAAU;CACjC;AAED;;GAEG;AACH,qBAAa,SAAS;IAeD,WAAW,CAAC;IAd/B,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,6DAA6D;IAC7D,IAAW,OAAO,IAAI,UAAU,CAAyH;IACzJ,0EAA0E;IAC1E,IAAW,cAAc,IAAI,MAAM,CAAiC;IACpE,qFAAqF;IACrF,IAAW,OAAO,IAAI,UAAU,CAAoK;IACpM,mFAAmF;IACnF,IAAW,cAAc,IAAI,MAAM,CAAiC;IACpE;;;OAGG;gBACgB,WAAW,CAAC,oBAAQ,EAAE,gBAAgB,UAAQ;IACjE,yFAAyF;IAClF,KAAK,IAAI,IAAI;IACpB,mEAAmE;IAC5D,IAAI,IAAI,UAAU;IACzB,0BAA0B;IACnB,KAAK,IAAI,IAAI;CACrB"}
package/lib/esm/Time.js CHANGED
@@ -127,7 +127,7 @@ export class StopWatch {
127
127
  get current() { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }
128
128
  /** Get the elapsed time, in seconds, since start() on a running timer. */
129
129
  get currentSeconds() { return this.current.seconds; }
130
- /** Get the elapsed time between start() and stop() on this timer. */
130
+ /** Get the elapsed time between start() and stop() on this timer in milliseconds. */
131
131
  get elapsed() { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }
132
132
  /** Get the elapsed time, in seconds, between start() and stop() on this timer. */
133
133
  get elapsedSeconds() { return this.elapsed.seconds; }
@@ -1 +1 @@
1
- {"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\n/** A duration of time. Can be either positive (towards future) or negative (in the past).\r\n * BeDurations are immutable.\r\n * @public\r\n */\r\nexport class BeDuration {\r\n private readonly _milliseconds: number;\r\n private constructor(milliseconds: number = 0) { this._milliseconds = milliseconds; }\r\n\r\n /** The duration in milliseconds */\r\n public get milliseconds() { return this._milliseconds; }\r\n public get seconds() { return this._milliseconds / 1000; }\r\n\r\n /** Create a BeDuration from seconds.\r\n * @param seconds the number of seconds for this BeDuration\r\n */\r\n public static fromSeconds(seconds: number) { return new BeDuration(seconds * 1000); }\r\n /** Create a BeDuration from milliseconds.\r\n * @param milliseconds the number of milliseconds for this BeDuration\r\n */\r\n public static fromMilliseconds(milliseconds: number) { return new BeDuration(milliseconds); }\r\n /** Determine whether this BeDuration is 0 seconds */\r\n public get isZero() { return this._milliseconds === 0; }\r\n /** Determine whether this BeDuration is towards the future */\r\n public get isTowardsFuture(): boolean { return this._milliseconds > 0; }\r\n /** Determine whether this BeDuration is towards the past */\r\n public get isTowardsPast(): boolean { return this._milliseconds < 0; }\r\n /** Subtract a BeDuration from this BeDuration, returning a new BeDuration. */\r\n public minus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds - other._milliseconds); }\r\n /** Add a BeDuration to this BeDuration, returning a new BeDuration */\r\n public plus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds + other._milliseconds); }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @param ms Duration in milliseconds to wait\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public static async wait(ms: number): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, ms));\r\n }\r\n\r\n /** Utility function to wait for either the specified time or a promise, whichever resolves first\r\n * @param ms Maximum duration in milliseconds to wait\r\n * @param promise A pending promise to wait for\r\n * @return Promise that resolves after the specified wait period or the provided promise resolves, whichever comes first\r\n */\r\n public static async race<T>(ms: number, promise: PromiseLike<T>): Promise<T | void> {\r\n let timeout: any;\r\n const waitPromise = new Promise<void>((resolve) => {\r\n timeout = setTimeout(resolve, ms);\r\n });\r\n return Promise.race([waitPromise, promise]).finally(() => {\r\n if (timeout)\r\n clearTimeout(timeout);\r\n });\r\n }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public async wait(): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, this._milliseconds));\r\n }\r\n\r\n /** Execute a function after delaying by this duration.\r\n * @param fn the function to execute after the delay\r\n * @param scope An optional object scope to serve as the 'this' pointer when `fn` is invoked.\r\n * @param args optional arguments to `fn`\r\n * @return Promise resolved by `fn`\r\n */\r\n public async executeAfter<T>(fn: (...args: any[]) => T, scope?: any, ...args: any[]): Promise<T> {\r\n return new Promise<T>((resolve: any) => setTimeout(() => resolve(fn.apply(scope, args)), this._milliseconds));\r\n }\r\n}\r\n\r\n/** A specific point in time relative to the current time.\r\n * BeTimePoints are used for timing operations. They are created from a BeDuration relative to the \"now\".\r\n * BeTimePoints are immutable.\r\n * @public\r\n */\r\nexport class BeTimePoint {\r\n private readonly _milliseconds: number;\r\n /** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */\r\n public get milliseconds() { return this._milliseconds; }\r\n private constructor(milliseconds: number) { this._milliseconds = milliseconds; }\r\n\r\n /** Create a BeTimePoint from Date.now() */\r\n public static now() { return new BeTimePoint(Date.now()); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the future from now\r\n * @param val the duration from now\r\n */\r\n public static fromNow(val: BeDuration) { return new BeTimePoint(Date.now() + val.milliseconds); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the past before now\r\n * @param val the duration before now\r\n */\r\n public static beforeNow(val: BeDuration) { return new BeTimePoint(Date.now() - val.milliseconds); }\r\n\r\n /** Determine whether this BeTimePoint is a time in the future from the time this method is called (it calls now()!) */\r\n public get isInFuture(): boolean { return Date.now() < this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint is a time that has already passed before the time this method is called (it calls now()!) */\r\n public get isInPast(): boolean { return Date.now() > this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens before another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public before(other: BeTimePoint): boolean { return this._milliseconds < other._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens after another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public after(other: BeTimePoint): boolean { return this._milliseconds > other._milliseconds; }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public minus(duration: BeDuration): BeTimePoint { return new BeTimePoint(this._milliseconds - duration.milliseconds); }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public plus(duration: BeDuration) { return new BeTimePoint(this._milliseconds + duration.milliseconds); }\r\n}\r\n\r\n/** A StopWatch for timing operations.\r\n * @public\r\n */\r\nexport class StopWatch {\r\n private _start?: BeTimePoint;\r\n private _stop?: BeTimePoint;\r\n /** Get the elapsed time since start() on a running timer. */\r\n public get current(): BeDuration { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, since start() on a running timer. */\r\n public get currentSeconds(): number { return this.current.seconds; }\r\n /** Get the elapsed time between start() and stop() on this timer. */\r\n public get elapsed(): BeDuration { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, between start() and stop() on this timer. */\r\n public get elapsedSeconds(): number { return this.elapsed.seconds; }\r\n /** ctor for StopWatch\r\n * @param description optional string stored with the StopWatch\r\n * @param startImmediately if true, StopWatch is started when created. Otherwise, call start() explicitly.\r\n */\r\n constructor(public description?: string, startImmediately = false) { if (startImmediately) this.start(); }\r\n /** Start the stopwatch. Any future time measurements will be based on this new value. */\r\n public start(): void { this.reset(); this._start = BeTimePoint.now(); }\r\n /** Stop the stopwatch so that the duration can be viewed later. */\r\n public stop(): BeDuration { this._stop = BeTimePoint.now(); return this.elapsed; }\r\n /** Clear the StopWatch */\r\n public reset(): void { this._start = this._stop = undefined; }\r\n}\r\n"]}
1
+ {"version":3,"file":"Time.js","sourceRoot":"","sources":["../../src/Time.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\n/** A duration of time. Can be either positive (towards future) or negative (in the past).\r\n * BeDurations are immutable.\r\n * @public\r\n */\r\nexport class BeDuration {\r\n private readonly _milliseconds: number;\r\n private constructor(milliseconds: number = 0) { this._milliseconds = milliseconds; }\r\n\r\n /** The duration in milliseconds */\r\n public get milliseconds() { return this._milliseconds; }\r\n public get seconds() { return this._milliseconds / 1000; }\r\n\r\n /** Create a BeDuration from seconds.\r\n * @param seconds the number of seconds for this BeDuration\r\n */\r\n public static fromSeconds(seconds: number) { return new BeDuration(seconds * 1000); }\r\n /** Create a BeDuration from milliseconds.\r\n * @param milliseconds the number of milliseconds for this BeDuration\r\n */\r\n public static fromMilliseconds(milliseconds: number) { return new BeDuration(milliseconds); }\r\n /** Determine whether this BeDuration is 0 seconds */\r\n public get isZero() { return this._milliseconds === 0; }\r\n /** Determine whether this BeDuration is towards the future */\r\n public get isTowardsFuture(): boolean { return this._milliseconds > 0; }\r\n /** Determine whether this BeDuration is towards the past */\r\n public get isTowardsPast(): boolean { return this._milliseconds < 0; }\r\n /** Subtract a BeDuration from this BeDuration, returning a new BeDuration. */\r\n public minus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds - other._milliseconds); }\r\n /** Add a BeDuration to this BeDuration, returning a new BeDuration */\r\n public plus(other: BeDuration): BeDuration { return new BeDuration(this._milliseconds + other._milliseconds); }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @param ms Duration in milliseconds to wait\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public static async wait(ms: number): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, ms));\r\n }\r\n\r\n /** Utility function to wait for either the specified time or a promise, whichever resolves first\r\n * @param ms Maximum duration in milliseconds to wait\r\n * @param promise A pending promise to wait for\r\n * @return Promise that resolves after the specified wait period or the provided promise resolves, whichever comes first\r\n */\r\n public static async race<T>(ms: number, promise: PromiseLike<T>): Promise<T | void> {\r\n let timeout: any;\r\n const waitPromise = new Promise<void>((resolve) => {\r\n timeout = setTimeout(resolve, ms);\r\n });\r\n return Promise.race([waitPromise, promise]).finally(() => {\r\n if (timeout)\r\n clearTimeout(timeout);\r\n });\r\n }\r\n\r\n /** Utility function to just wait for the specified time\r\n * @return Promise that resolves after the specified wait period\r\n */\r\n public async wait(): Promise<void> {\r\n return new Promise<void>((resolve: any) => setTimeout(resolve, this._milliseconds));\r\n }\r\n\r\n /** Execute a function after delaying by this duration.\r\n * @param fn the function to execute after the delay\r\n * @param scope An optional object scope to serve as the 'this' pointer when `fn` is invoked.\r\n * @param args optional arguments to `fn`\r\n * @return Promise resolved by `fn`\r\n */\r\n public async executeAfter<T>(fn: (...args: any[]) => T, scope?: any, ...args: any[]): Promise<T> {\r\n return new Promise<T>((resolve: any) => setTimeout(() => resolve(fn.apply(scope, args)), this._milliseconds));\r\n }\r\n}\r\n\r\n/** A specific point in time relative to the current time.\r\n * BeTimePoints are used for timing operations. They are created from a BeDuration relative to the \"now\".\r\n * BeTimePoints are immutable.\r\n * @public\r\n */\r\nexport class BeTimePoint {\r\n private readonly _milliseconds: number;\r\n /** the time in milliseconds, of this BeTimePoint (relative to January 1, 1970 00:00:00 UTC.) */\r\n public get milliseconds() { return this._milliseconds; }\r\n private constructor(milliseconds: number) { this._milliseconds = milliseconds; }\r\n\r\n /** Create a BeTimePoint from Date.now() */\r\n public static now() { return new BeTimePoint(Date.now()); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the future from now\r\n * @param val the duration from now\r\n */\r\n public static fromNow(val: BeDuration) { return new BeTimePoint(Date.now() + val.milliseconds); }\r\n\r\n /** Create a BeTimePoint at a specified duration in the past before now\r\n * @param val the duration before now\r\n */\r\n public static beforeNow(val: BeDuration) { return new BeTimePoint(Date.now() - val.milliseconds); }\r\n\r\n /** Determine whether this BeTimePoint is a time in the future from the time this method is called (it calls now()!) */\r\n public get isInFuture(): boolean { return Date.now() < this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint is a time that has already passed before the time this method is called (it calls now()!) */\r\n public get isInPast(): boolean { return Date.now() > this._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens before another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public before(other: BeTimePoint): boolean { return this._milliseconds < other._milliseconds; }\r\n\r\n /** Determine whether this BeTimePoint happens after another one.\r\n * @param other the other BeTimePoint.\r\n */\r\n public after(other: BeTimePoint): boolean { return this._milliseconds > other._milliseconds; }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public minus(duration: BeDuration): BeTimePoint { return new BeTimePoint(this._milliseconds - duration.milliseconds); }\r\n\r\n /** Subtract a BeDuration from this BeTimePoint, returning a new BeTimePoint. This moves this BeTimePoint backwards in time if BeDuration.isTowardsFuture() === true\r\n * @param duration the duration to subtract.\r\n */\r\n public plus(duration: BeDuration) { return new BeTimePoint(this._milliseconds + duration.milliseconds); }\r\n}\r\n\r\n/** A StopWatch for timing operations.\r\n * @public\r\n */\r\nexport class StopWatch {\r\n private _start?: BeTimePoint;\r\n private _stop?: BeTimePoint;\r\n /** Get the elapsed time since start() on a running timer. */\r\n public get current(): BeDuration { return BeDuration.fromMilliseconds(BeTimePoint.now().milliseconds - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, since start() on a running timer. */\r\n public get currentSeconds(): number { return this.current.seconds; }\r\n /** Get the elapsed time between start() and stop() on this timer in milliseconds. */\r\n public get elapsed(): BeDuration { return BeDuration.fromMilliseconds((!!this._stop ? this._stop.milliseconds : BeTimePoint.now().milliseconds) - (!!this._start ? this._start.milliseconds : 0)); }\r\n /** Get the elapsed time, in seconds, between start() and stop() on this timer. */\r\n public get elapsedSeconds(): number { return this.elapsed.seconds; }\r\n /** ctor for StopWatch\r\n * @param description optional string stored with the StopWatch\r\n * @param startImmediately if true, StopWatch is started when created. Otherwise, call start() explicitly.\r\n */\r\n constructor(public description?: string, startImmediately = false) { if (startImmediately) this.start(); }\r\n /** Start the stopwatch. Any future time measurements will be based on this new value. */\r\n public start(): void { this.reset(); this._start = BeTimePoint.now(); }\r\n /** Stop the stopwatch so that the duration can be viewed later. */\r\n public stop(): BeDuration { this._stop = BeTimePoint.now(); return this.elapsed; }\r\n /** Clear the StopWatch */\r\n public reset(): void { this._start = this._stop = undefined; }\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/core-bentley",
3
- "version": "3.4.0-dev.12",
3
+ "version": "3.4.0-dev.16",
4
4
  "description": "Bentley JavaScript core components",
5
5
  "main": "lib/cjs/core-bentley.js",
6
6
  "module": "lib/esm/core-bentley.js",
@@ -21,8 +21,8 @@
21
21
  "url": "http://www.bentley.com"
22
22
  },
23
23
  "devDependencies": {
24
- "@itwin/build-tools": "3.4.0-dev.12",
25
- "@itwin/eslint-plugin": "3.4.0-dev.12",
24
+ "@itwin/build-tools": "3.4.0-dev.16",
25
+ "@itwin/eslint-plugin": "3.4.0-dev.16",
26
26
  "@opentelemetry/api": "^1.0.4",
27
27
  "@types/chai": "4.3.1",
28
28
  "@types/chai-as-promised": "^7",