node-opcua-utils 2.57.0 → 2.63.0

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.
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.get_clock_tick = void 0;
4
- require("browser-process-hrtime");
5
- if (process && process.hrtime) {
6
- const tickOrigin = process.hrtime()[0];
4
+ if (typeof process === "object" && process.hrtime) {
5
+ const tickOrigin = process.hrtime();
7
6
  // clock it as a double in millisecond
8
7
  // so we can measure very tiny time intervals
9
8
  exports.get_clock_tick = () => {
10
- const hrt = process.hrtime();
11
- const r = (hrt[0] - tickOrigin) * 1000.0 + Math.ceil((hrt[1] / 1e6) * 1000) / 1000;
9
+ const hrt = process.hrtime(tickOrigin);
10
+ const r = (hrt[0]) * 1000.0 + Math.ceil((hrt[1] / 1e6) * 1000) / 1000;
12
11
  return r;
13
12
  };
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get_clock_tick.js","sourceRoot":"","sources":["../source/get_clock_tick.ts"],"names":[],"mappings":";;;AAIA,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAElC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;IAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,sCAAsC;IACtC,6CAA6C;IAC7C,sBAAc,GAAG,GAAG,EAAE;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACnF,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;CACL;KAAM;IACH,sBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;CACrC"}
1
+ {"version":3,"file":"get_clock_tick.js","sourceRoot":"","sources":["../source/get_clock_tick.ts"],"names":[],"mappings":";;;AAMA,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACpC,sCAAsC;IACtC,6CAA6C;IAC7C,sBAAc,GAAG,GAAG,EAAE;QAClB,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACtE,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;CACL;KAAM;IACH,sBAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;CACrC"}
@@ -0,0 +1,2 @@
1
+ export declare type HRTimeFunc = (time?: [number, number]) => [number, number];
2
+ export declare const hrtime: HRTimeFunc;
package/dist/hrtime.js ADDED
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hrtime = void 0;
4
+ // polyfil for window.performance.now
5
+ const performance = (typeof global === "object" && global.performance) || {};
6
+ const performanceNow = performance.now ||
7
+ performance.mozNow ||
8
+ performance.msNow ||
9
+ performance.oNow ||
10
+ performance.webkitNow ||
11
+ function () {
12
+ return new Date().getTime();
13
+ };
14
+ // generate timestamp or delta
15
+ // see http://nodejs.org/api/process.html#process_process_hrtime
16
+ function hrtime_for_browser(previousTimestamp) {
17
+ if (typeof process === "object") {
18
+ console.log("SHould not use hrtime_for_browser in a node js app");
19
+ process.exit(1);
20
+ }
21
+ previousTimestamp = previousTimestamp || [0, 0];
22
+ const clocktime = performanceNow.call(performance) * 1e-3;
23
+ let seconds = Math.floor(clocktime);
24
+ let nanoseconds = Math.floor((clocktime % 1) * 1e9);
25
+ if (previousTimestamp) {
26
+ seconds = seconds - previousTimestamp[0];
27
+ nanoseconds = nanoseconds - previousTimestamp[1];
28
+ if (nanoseconds < 0) {
29
+ seconds--;
30
+ nanoseconds += 1e9;
31
+ }
32
+ }
33
+ return [seconds, nanoseconds];
34
+ }
35
+ exports.hrtime = typeof process === "object" ? process.hrtime : hrtime_for_browser;
36
+ //# sourceMappingURL=hrtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hrtime.js","sourceRoot":"","sources":["../source/hrtime.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,MAAM,WAAW,GAAQ,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAK,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACnF,MAAM,cAAc,GAChB,WAAW,CAAC,GAAG;IACf,WAAW,CAAC,MAAM;IAClB,WAAW,CAAC,KAAK;IACjB,WAAW,CAAC,IAAI;IAChB,WAAW,CAAC,SAAS;IACrB;QACI,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC,CAAC;AAEN,8BAA8B;AAC9B,gEAAgE;AAChE,SAAS,kBAAkB,CAAC,iBAAoC;IAE5D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAG;QAC9B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;IACD,iBAAiB,GAAG,iBAAiB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC1D,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACpD,IAAI,iBAAiB,EAAE;QACnB,OAAO,GAAG,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACzC,WAAW,GAAG,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,WAAW,GAAG,CAAC,EAAE;YACjB,OAAO,EAAE,CAAC;YACV,WAAW,IAAI,GAAG,CAAC;SACtB;KACJ;IACD,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAClC,CAAC;AAEY,QAAA,MAAM,GAAe,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAE,OAAO,CAAC,MAAqB,CAAC,CAAC,CAAC,kBAAkB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -25,3 +25,4 @@ export { replaceBufferWithHexDump } from "./replace_buffer_with_hex_dump";
25
25
  export * from "./timestamp";
26
26
  export * from "./line_file";
27
27
  export * from "./match_uri";
28
+ export { hrtime } from "./hrtime";
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.replaceBufferWithHexDump = exports.setDeprecated = exports.getFunctionParameterNames = exports.compare_buffers = exports.get_clock_tick = exports.getObjectClassName = exports.lowerFirstLetter = exports.capitalizeFirstLetter = exports.buffer_ellipsis = exports.isNullOrUndefined = exports.check_flag = exports.set_flag = void 0;
13
+ exports.hrtime = exports.replaceBufferWithHexDump = exports.setDeprecated = exports.getFunctionParameterNames = exports.compare_buffers = exports.get_clock_tick = exports.getObjectClassName = exports.lowerFirstLetter = exports.capitalizeFirstLetter = exports.buffer_ellipsis = exports.isNullOrUndefined = exports.check_flag = exports.set_flag = void 0;
14
14
  /**
15
15
  * @module node-opcua-utils
16
16
  */
@@ -66,4 +66,6 @@ Object.defineProperty(exports, "replaceBufferWithHexDump", { enumerable: true, g
66
66
  __exportStar(require("./timestamp"), exports);
67
67
  __exportStar(require("./line_file"), exports);
68
68
  __exportStar(require("./match_uri"), exports);
69
+ var hrtime_1 = require("./hrtime");
70
+ Object.defineProperty(exports, "hrtime", { enumerable: true, get: function () { return hrtime_1.hrtime; } });
69
71
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;GAEG;AACH,4BAA4B;AAC5B,yDAA2C;AAE3C;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAa,EAAE,IAAgC;IACpE,IAAK,IAAY,CAAC,KAAK,EAAE;QACrB,IAAI,GAAI,IAAY,CAAC,KAAK,CAAC;KAC9B;IACD,IAAA,0BAAM,EAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,IAAA,0BAAM,EAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC3B,OAAO,KAAK,GAAI,IAAe,CAAC;AACpC,CAAC;AAPD,4BAOC;AACD;;;GAGG;AACH,SAAgB,UAAU,CAAC,KAAa,EAAE,IAAgC;IACtE,IAAK,IAAY,CAAC,KAAK,EAAE;QACrB,IAAI,GAAI,IAAY,CAAC,KAAK,CAAC;KAC9B;IACD,IAAA,0BAAM,EAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,GAAI,IAAe,CAAC,KAAM,IAAe,CAAC;AAC3D,CAAC;AAND,gCAMC;AAED,SAAgB,iBAAiB,CAAC,KAA0B;IACxD,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACjD,CAAC;AAFD,8CAEC;AAED,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,+CAAyE;AAAhE,qHAAA,qBAAqB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAChD,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA;AAC3B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,+EAA2E;AAAlE,yIAAA,yBAAyB,OAAA;AAClC,6CAA2B;AAC3B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,+EAA0E;AAAjE,wIAAA,wBAAwB,OAAA;AACjC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA;;GAEG;AACH,4BAA4B;AAC5B,yDAA2C;AAE3C;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAa,EAAE,IAAgC;IACpE,IAAK,IAAY,CAAC,KAAK,EAAE;QACrB,IAAI,GAAI,IAAY,CAAC,KAAK,CAAC;KAC9B;IACD,IAAA,0BAAM,EAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,IAAA,0BAAM,EAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC3B,OAAO,KAAK,GAAI,IAAe,CAAC;AACpC,CAAC;AAPD,4BAOC;AACD;;;GAGG;AACH,SAAgB,UAAU,CAAC,KAAa,EAAE,IAAgC;IACtE,IAAK,IAAY,CAAC,KAAK,EAAE;QACrB,IAAI,GAAI,IAAY,CAAC,KAAK,CAAC;KAC9B;IACD,IAAA,0BAAM,EAAC,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,GAAI,IAAe,CAAC,KAAM,IAAe,CAAC;AAC3D,CAAC;AAND,gCAMC;AAED,SAAgB,iBAAiB,CAAC,KAA0B;IACxD,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACjD,CAAC;AAFD,8CAEC;AAED,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,+CAAyE;AAAhE,qHAAA,qBAAqB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAChD,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA;AAC3B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,+EAA2E;AAAlE,yIAAA,yBAAyB,OAAA;AAClC,6CAA2B;AAC3B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,+EAA0E;AAAjE,wIAAA,wBAAwB,OAAA;AACjC,8CAA4B;AAC5B,8CAA4B;AAC5B,8CAA4B;AAC5B,mCAAgC;AAAxB,gGAAA,MAAM,OAAA"}
package/dist/watchdog.js CHANGED
@@ -6,23 +6,7 @@ exports.WatchDog = void 0;
6
6
  */
7
7
  const events_1 = require("events");
8
8
  const node_opcua_assert_1 = require("node-opcua-assert");
9
- /**
10
- * a arbitrary clock which is system dependant and
11
- * insensible to clock drifts ....
12
- *
13
- */
14
- function _getCurrentSystemTick() {
15
- if (process && process.hrtime) {
16
- const h = process.hrtime();
17
- const n = h[1] / 1000000;
18
- (0, node_opcua_assert_1.assert)(n <= 1000);
19
- return h[0] * 1000 + n;
20
- }
21
- else {
22
- // fallback to Date as process.hrtime doesn't exit
23
- return Date.now();
24
- }
25
- }
9
+ const get_clock_tick_1 = require("./get_clock_tick");
26
10
  function hasExpired(watchDogData, currentTime) {
27
11
  const elapsedTime = currentTime - watchDogData.lastSeen;
28
12
  return elapsedTime > watchDogData.timeout;
@@ -49,7 +33,7 @@ class WatchDog extends events_1.EventEmitter {
49
33
  this._timer = null; // as NodeJS.Timer;
50
34
  }
51
35
  static lastSeenToDuration(lastSeen) {
52
- return _getCurrentSystemTick() - lastSeen;
36
+ return (0, get_clock_tick_1.get_clock_tick)() - lastSeen;
53
37
  }
54
38
  /**
55
39
  * returns the number of subscribers using the WatchDog object.
@@ -124,7 +108,7 @@ class WatchDog extends events_1.EventEmitter {
124
108
  (0, node_opcua_assert_1.assert)(this._timer === null && Object.keys(this._watchdogDataMap).length === 0, " leaking subscriber in watchdog");
125
109
  }
126
110
  getCurrentSystemTick() {
127
- return _getCurrentSystemTick();
111
+ return (0, get_clock_tick_1.get_clock_tick)();
128
112
  }
129
113
  _visit_subscriber() {
130
114
  this._currentTime = this.getCurrentSystemTick();
@@ -1 +1 @@
1
- {"version":3,"file":"watchdog.js","sourceRoot":"","sources":["../source/watchdog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watchdog.js","sourceRoot":"","sources":["../source/watchdog.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-opcua-utils",
3
- "version": "2.57.0",
3
+ "version": "2.63.0",
4
4
  "description": "pure nodejs OPCUA SDK - module -utils",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -12,14 +12,13 @@
12
12
  "clean": "node -e \"require('rimraf').sync('dist');\""
13
13
  },
14
14
  "dependencies": {
15
- "browser-process-hrtime": "^1.0.0",
16
15
  "chalk": "4.1.2",
17
- "node-opcua-assert": "2.55.0"
16
+ "node-opcua-assert": "2.63.0"
18
17
  },
19
18
  "devDependencies": {
20
- "@types/node": "16.10.1",
19
+ "@types/node": "17.0.10",
21
20
  "should": "^13.2.3",
22
- "sinon": "^11.1.2"
21
+ "sinon": "^12.0.1"
23
22
  },
24
23
  "author": "Etienne Rossignon",
25
24
  "license": "MIT",
@@ -36,5 +35,5 @@
36
35
  "internet of things"
37
36
  ],
38
37
  "homepage": "http://node-opcua.github.io/",
39
- "gitHead": "cb6a995ab35ea6231ffca85fbd0b624fe37119d2"
38
+ "gitHead": "df4335584455009c6caa21ed6a2fa42caa9104ed"
40
39
  }
@@ -2,15 +2,15 @@
2
2
  * @module node-opcua-utils
3
3
  */
4
4
  export let get_clock_tick: () => number;
5
- require("browser-process-hrtime");
5
+ import { hrtime } from "./hrtime";
6
6
 
7
- if (process && process.hrtime) {
8
- const tickOrigin = process.hrtime()[0];
7
+ if (typeof process === "object" && process.hrtime) {
8
+ const tickOrigin = process.hrtime();
9
9
  // clock it as a double in millisecond
10
10
  // so we can measure very tiny time intervals
11
11
  get_clock_tick = () => {
12
- const hrt = process.hrtime();
13
- const r = (hrt[0] - tickOrigin) * 1000.0 + Math.ceil((hrt[1] / 1e6) * 1000) / 1000;
12
+ const hrt = process.hrtime(tickOrigin);
13
+ const r = (hrt[0]) * 1000.0 + Math.ceil((hrt[1] / 1e6) * 1000) / 1000;
14
14
  return r;
15
15
  };
16
16
  } else {
@@ -0,0 +1,37 @@
1
+ // polyfil for window.performance.now
2
+ const performance: any = (typeof global === "object" && global.performance) || {};
3
+ const performanceNow =
4
+ performance.now ||
5
+ performance.mozNow ||
6
+ performance.msNow ||
7
+ performance.oNow ||
8
+ performance.webkitNow ||
9
+ function () {
10
+ return new Date().getTime();
11
+ };
12
+
13
+ // generate timestamp or delta
14
+ // see http://nodejs.org/api/process.html#process_process_hrtime
15
+ function hrtime_for_browser(previousTimestamp?: [number, number]): [number, number] {
16
+
17
+ if (typeof process === "object" ) {
18
+ console.log("SHould not use hrtime_for_browser in a node js app");
19
+ process.exit(1)
20
+ }
21
+ previousTimestamp = previousTimestamp || [0, 0];
22
+
23
+ const clocktime = performanceNow.call(performance) * 1e-3;
24
+ let seconds = Math.floor(clocktime);
25
+ let nanoseconds = Math.floor((clocktime % 1) * 1e9);
26
+ if (previousTimestamp) {
27
+ seconds = seconds - previousTimestamp[0];
28
+ nanoseconds = nanoseconds - previousTimestamp[1];
29
+ if (nanoseconds < 0) {
30
+ seconds--;
31
+ nanoseconds += 1e9;
32
+ }
33
+ }
34
+ return [seconds, nanoseconds];
35
+ }
36
+ export type HRTimeFunc = (time?: [number, number]) => [number, number];
37
+ export const hrtime: HRTimeFunc = typeof process === "object" ? (process.hrtime as HRTimeFunc) : hrtime_for_browser;
package/source/index.ts CHANGED
@@ -44,3 +44,4 @@ export { replaceBufferWithHexDump } from "./replace_buffer_with_hex_dump";
44
44
  export * from "./timestamp";
45
45
  export * from "./line_file";
46
46
  export * from "./match_uri";
47
+ export {hrtime} from "./hrtime";
@@ -3,26 +3,11 @@
3
3
  */
4
4
  import { EventEmitter } from "events";
5
5
  import { assert } from "node-opcua-assert";
6
+ import { get_clock_tick } from "./get_clock_tick";
6
7
 
7
8
  type ArbitraryClockTick = number; // in millisecond
8
9
  type DurationInMillisecond = number;
9
10
 
10
- /**
11
- * a arbitrary clock which is system dependant and
12
- * insensible to clock drifts ....
13
- *
14
- */
15
- function _getCurrentSystemTick(): ArbitraryClockTick {
16
- if (process && process.hrtime) {
17
- const h = process.hrtime();
18
- const n = h[1] / 1000000;
19
- assert(n <= 1000);
20
- return h[0] * 1000 + n;
21
- } else {
22
- // fallback to Date as process.hrtime doesn't exit
23
- return Date.now();
24
- }
25
- }
26
11
 
27
12
  export interface IWatchdogData2 {
28
13
  key: number;
@@ -60,9 +45,8 @@ function keepAliveFunc(this: ISubscriber) {
60
45
  }
61
46
 
62
47
  export class WatchDog extends EventEmitter {
63
-
64
48
  static lastSeenToDuration(lastSeen: number): number {
65
- return _getCurrentSystemTick() - lastSeen;
49
+ return get_clock_tick() - lastSeen;
66
50
  }
67
51
 
68
52
  static emptyKeepAlive = (): void => {
@@ -170,7 +154,7 @@ export class WatchDog extends EventEmitter {
170
154
  }
171
155
 
172
156
  public getCurrentSystemTick(): ArbitraryClockTick {
173
- return _getCurrentSystemTick();
157
+ return get_clock_tick();
174
158
  }
175
159
 
176
160
  private _visit_subscriber() {
package/.mocharc.yml DELETED
@@ -1,10 +0,0 @@
1
- recursive: true
2
- require:
3
- - ../../node_modules/source-map-support/register
4
- - ../../node_modules/ts-node/register
5
- - ../../node_modules/should
6
- timeout: 20000
7
- files:
8
- - test/**/*.ts
9
- - test/**/*.js
10
-