@appium/support 2.61.1 → 3.0.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.
- package/build/lib/console.d.ts +1 -1
- package/build/lib/console.js +169 -105
- package/build/lib/console.js.map +1 -1
- package/build/lib/env.js +142 -117
- package/build/lib/env.js.map +1 -1
- package/build/lib/fs.d.ts +9 -2
- package/build/lib/fs.d.ts.map +1 -1
- package/build/lib/fs.js +358 -246
- package/build/lib/fs.js.map +1 -1
- package/build/lib/image-util.js +139 -124
- package/build/lib/image-util.js.map +1 -1
- package/build/lib/index.js +64 -103
- package/build/lib/index.js.map +1 -1
- package/build/lib/log-internal.d.ts +4 -27
- package/build/lib/log-internal.d.ts.map +1 -1
- package/build/lib/log-internal.js +141 -123
- package/build/lib/log-internal.js.map +1 -1
- package/build/lib/logger.d.ts +1 -1
- package/build/lib/logger.d.ts.map +1 -1
- package/build/lib/logger.js +5 -14
- package/build/lib/logger.js.map +1 -1
- package/build/lib/logging.d.ts +3 -4
- package/build/lib/logging.d.ts.map +1 -1
- package/build/lib/logging.js +139 -110
- package/build/lib/logging.js.map +1 -1
- package/build/lib/mjpeg.js +169 -141
- package/build/lib/mjpeg.js.map +1 -1
- package/build/lib/mkdirp.js +7 -13
- package/build/lib/mkdirp.js.map +1 -1
- package/build/lib/net.d.ts.map +1 -1
- package/build/lib/net.js +278 -254
- package/build/lib/net.js.map +1 -1
- package/build/lib/node.js +203 -192
- package/build/lib/node.js.map +1 -1
- package/build/lib/npm.d.ts +19 -4
- package/build/lib/npm.d.ts.map +1 -1
- package/build/lib/npm.js +277 -228
- package/build/lib/npm.js.map +1 -1
- package/build/lib/plist.js +145 -136
- package/build/lib/plist.js.map +1 -1
- package/build/lib/process.js +41 -42
- package/build/lib/process.js.map +1 -1
- package/build/lib/system.js +39 -56
- package/build/lib/system.js.map +1 -1
- package/build/lib/tempdir.js +112 -73
- package/build/lib/tempdir.js.map +1 -1
- package/build/lib/timing.js +99 -84
- package/build/lib/timing.js.map +1 -1
- package/build/lib/util.js +454 -356
- package/build/lib/util.js.map +1 -1
- package/build/lib/zip.js +469 -423
- package/build/lib/zip.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/fs.js +15 -1
- package/lib/log-internal.js +12 -16
- package/lib/logging.js +2 -3
- package/lib/net.js +15 -6
- package/lib/npm.js +28 -18
- package/package.json +19 -18
package/build/lib/system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../lib/system.js"],"names":[],"mappings":";;;;;;AAAA,+CAAkC;AAClC,oDAAuB;AACvB,4CAAoB;AAEpB,MAAM,eAAe,GAAG,cAAc,CAAC;AAEvC,SAAS,SAAS;IAChB,OAAO,YAAE,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC;AACpC,CAAC;AAuCO,8BAAS;AArCjB,SAAS,KAAK;IACZ,OAAO,YAAE,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC;AAChC,CAAC;AAmCkB,sBAAK;AAjCxB,SAAS,OAAO;IACd,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC;AA+ByB,0BAAO;AA7BjC,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,gBAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC;AAChF,CAAC;AA2BkC,8BAAS;AAzB5C,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,EAAE,IAAI,KAAK,EAAE,EAAE;QACxB,IAAI,EAAC,MAAM,EAAC,GAAG,MAAM,IAAA,mBAAI,EAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;KAC/C;SAAM,IAAI,SAAS,EAAE,EAAE;QACtB,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;KAC3B;AACH,CAAC;AAiB6C,oBAAI;AAflD,KAAK,UAAU,aAAa;IAC1B,IAAI,MAAM,CAAC;IACX,IAAI;QACF,MAAM,GAAG,CAAC,MAAM,IAAA,mBAAI,EAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACrE;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;KAC9D;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,2DAA2D,MAAM,GAAG,CAAC,CAAC;KACvF;IACD,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAEmD,sCAAa"}
|
package/build/lib/tempdir.js
CHANGED
|
@@ -1,88 +1,127 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.open =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
require("
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
24
|
-
|
|
25
|
-
const RDWR_EXCL = _constants.default.O_CREAT | _constants.default.O_TRUNC | _constants.default.O_RDWR | _constants.default.O_EXCL;
|
|
26
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.staticDir = exports.openDir = exports.path = exports.open = void 0;
|
|
7
|
+
/* This library is originated from temp.js at http://github.com/bruce/node-temp */
|
|
8
|
+
const fs_1 = __importDefault(require("./fs"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const constants_1 = __importDefault(require("constants"));
|
|
12
|
+
const logger_1 = __importDefault(require("./logger"));
|
|
13
|
+
const RDWR_EXCL = constants_1.default.O_CREAT | constants_1.default.O_TRUNC | constants_1.default.O_RDWR | constants_1.default.O_EXCL;
|
|
14
|
+
/**
|
|
15
|
+
* Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR.
|
|
16
|
+
* e.g.
|
|
17
|
+
* - No `process.env.APPIUM_TMP_DIR`: `/var/folders/34/2222sh8n27d6rcp7jqlkw8km0000gn/T/xxxxxxxx.yyyy`
|
|
18
|
+
* - With `process.env.APPIUM_TMP_DIR = '/path/to/root'`: `/path/to/root/xxxxxxxx.yyyy`
|
|
19
|
+
*
|
|
20
|
+
* @returns {Promise<string>} A path to the temporary directory
|
|
21
|
+
*/
|
|
27
22
|
async function tempDir() {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
const now = new Date();
|
|
24
|
+
const filePath = path_1.default.join(process.env.APPIUM_TMP_DIR || os_1.default.tmpdir(), [
|
|
25
|
+
now.getFullYear(),
|
|
26
|
+
now.getMonth(),
|
|
27
|
+
now.getDate(),
|
|
28
|
+
'-',
|
|
29
|
+
process.pid,
|
|
30
|
+
'-',
|
|
31
|
+
(Math.random() * 0x100000000 + 1).toString(36),
|
|
32
|
+
].join(''));
|
|
33
|
+
// creates a temp directory using the date and a random string
|
|
34
|
+
await fs_1.default.mkdir(filePath);
|
|
35
|
+
return filePath;
|
|
34
36
|
}
|
|
35
|
-
|
|
37
|
+
/**
|
|
38
|
+
* @typedef Affixes
|
|
39
|
+
* @property {string} [prefix] - prefix of the temp directory name
|
|
40
|
+
* @property {string} [suffix] - suffix of the temp directory name
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR
|
|
44
|
+
* with arbitrary prefix/suffix for the directory name.
|
|
45
|
+
*
|
|
46
|
+
* @param {string|Affixes} rawAffixes
|
|
47
|
+
* @param {string} [defaultPrefix]
|
|
48
|
+
* @returns {Promise<string>} A path to the temporary directory with rawAffixes and defaultPrefix
|
|
49
|
+
*/
|
|
36
50
|
async function path(rawAffixes, defaultPrefix) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
51
|
+
const affixes = parseAffixes(rawAffixes, defaultPrefix);
|
|
52
|
+
const name = `${affixes.prefix || ''}${affixes.suffix || ''}`;
|
|
53
|
+
const tempDirectory = await tempDir();
|
|
54
|
+
return path_1.default.join(tempDirectory, name);
|
|
41
55
|
}
|
|
42
|
-
|
|
56
|
+
exports.path = path;
|
|
57
|
+
/**
|
|
58
|
+
* @typedef OpenedAffixes
|
|
59
|
+
* @property {string} path - The path to file
|
|
60
|
+
* @property {number} fd - The file descriptor opened
|
|
61
|
+
*/
|
|
62
|
+
/**
|
|
63
|
+
* Generate a temporary directory in os.tempdir() or process.env.APPIUM_TMP_DIR
|
|
64
|
+
* with arbitrary prefix/suffix for the directory name and return it as open.
|
|
65
|
+
*
|
|
66
|
+
* @param {Affixes} affixes
|
|
67
|
+
* @returns {Promise<OpenedAffixes>}
|
|
68
|
+
*/
|
|
43
69
|
async function open(affixes) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return _logger.default.errorAndThrow(err);
|
|
54
|
-
}
|
|
70
|
+
const filePath = await path(affixes, 'f-');
|
|
71
|
+
try {
|
|
72
|
+
let fd = await fs_1.default.open(filePath, RDWR_EXCL, 0o600);
|
|
73
|
+
// opens the file in mode 384
|
|
74
|
+
return { path: filePath, fd };
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
return logger_1.default.errorAndThrow(err);
|
|
78
|
+
}
|
|
55
79
|
}
|
|
56
|
-
|
|
80
|
+
exports.open = open;
|
|
81
|
+
/**
|
|
82
|
+
*
|
|
83
|
+
* Returns prefix/suffix object
|
|
84
|
+
*
|
|
85
|
+
* @param {string|Affixes} rawAffixes
|
|
86
|
+
* @param {string} [defaultPrefix]
|
|
87
|
+
* @returns {Affixes}
|
|
88
|
+
*/
|
|
57
89
|
function parseAffixes(rawAffixes, defaultPrefix) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
throw new Error(`Unknown affix declaration: ${affixes}`);
|
|
90
|
+
/** @type {Affixes} */
|
|
91
|
+
let affixes = {};
|
|
92
|
+
if (rawAffixes) {
|
|
93
|
+
switch (typeof rawAffixes) {
|
|
94
|
+
case 'string':
|
|
95
|
+
affixes.prefix = rawAffixes;
|
|
96
|
+
break;
|
|
97
|
+
case 'object':
|
|
98
|
+
affixes = rawAffixes;
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
throw new Error(`Unknown affix declaration: ${affixes}`);
|
|
102
|
+
}
|
|
72
103
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return affixes;
|
|
104
|
+
else {
|
|
105
|
+
affixes.prefix = defaultPrefix;
|
|
106
|
+
}
|
|
107
|
+
return affixes;
|
|
78
108
|
}
|
|
79
|
-
|
|
80
109
|
const _static = tempDir();
|
|
81
|
-
|
|
110
|
+
/**
|
|
111
|
+
* Returns a new path to a temporary directory
|
|
112
|
+
*
|
|
113
|
+
* @returns {string} A new tempDir() if tempRootDirectory is not provided
|
|
114
|
+
*/
|
|
82
115
|
const openDir = tempDir;
|
|
83
116
|
exports.openDir = openDir;
|
|
84
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Returns a path to a temporary directory whcih is defined as static in the same process
|
|
119
|
+
*
|
|
120
|
+
* @returns {Promise<string>} A temp directory path whcih is defined as static in the same process
|
|
121
|
+
*/
|
|
122
|
+
// eslint-disable-next-line require-await
|
|
85
123
|
async function staticDir() {
|
|
86
|
-
|
|
124
|
+
return _static;
|
|
87
125
|
}
|
|
88
|
-
|
|
126
|
+
exports.staticDir = staticDir;
|
|
127
|
+
//# sourceMappingURL=tempdir.js.map
|
package/build/lib/tempdir.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tempdir.js","
|
|
1
|
+
{"version":3,"file":"tempdir.js","sourceRoot":"","sources":["../../lib/tempdir.js"],"names":[],"mappings":";;;;;;AAAA,kFAAkF;AAClF,8CAAsB;AACtB,4CAAoB;AACpB,gDAA4B;AAC5B,0DAA6B;AAC7B,sDAA2B;AAE3B,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,GAAG,mBAAI,CAAC,OAAO,GAAG,mBAAI,CAAC,MAAM,GAAG,mBAAI,CAAC,MAAM,CAAC;AAE1E;;;;;;;GAOG;AACH,KAAK,UAAU,OAAO;IACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,cAAQ,CAAC,IAAI,CAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,YAAE,CAAC,MAAM,EAAE,EACzC;QACE,GAAG,CAAC,WAAW,EAAE;QACjB,GAAG,CAAC,QAAQ,EAAE;QACd,GAAG,CAAC,OAAO,EAAE;QACb,GAAG;QACH,OAAO,CAAC,GAAG;QACX,GAAG;QACH,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;KAC/C,CAAC,IAAI,CAAC,EAAE,CAAC,CACX,CAAC;IACF,8DAA8D;IAE9D,MAAM,YAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AAEH;;;;;;;GAOG;AACH,KAAK,UAAU,IAAI,CAAC,UAAU,EAAE,aAAa;IAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;IAC9D,MAAM,aAAa,GAAG,MAAM,OAAO,EAAE,CAAC;IACtC,OAAO,cAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAyEa,oBAAI;AAvElB;;;;GAIG;AAEH;;;;;;GAMG;AACH,KAAK,UAAU,IAAI,CAAC,OAAO;IACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI;QACF,IAAI,EAAE,GAAG,MAAM,YAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACnD,6BAA6B;QAC7B,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC;KAC7B;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,gBAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KAC/B;AACH,CAAC;AAiDO,oBAAI;AA/CZ;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,UAAU,EAAE,aAAa;IAC7C,sBAAsB;IACtB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,UAAU,EAAE;QACd,QAAQ,OAAO,UAAU,EAAE;YACzB,KAAK,QAAQ;gBACX,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC5B,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,GAAG,UAAU,CAAC;gBACrB,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;SAC5D;KACF;SAAM;QACL,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC;KAChC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;AAE1B;;;;GAIG;AACH,MAAM,OAAO,GAAG,OAAO,CAAC;AAYJ,0BAAO;AAV3B;;;;GAIG;AACH,yCAAyC;AACzC,KAAK,UAAU,SAAS;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC;AAE4B,8BAAS"}
|
package/build/lib/timing.js
CHANGED
|
@@ -1,97 +1,112 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
require("source-map-support/register");
|
|
9
|
-
|
|
10
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Duration = exports.Timer = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
14
8
|
const NS_PER_S = 1e9;
|
|
15
9
|
const NS_PER_MS = 1e6;
|
|
16
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Class representing a duration, encapsulating the number and units.
|
|
12
|
+
*/
|
|
17
13
|
class Duration {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
14
|
+
constructor(nanos) {
|
|
15
|
+
this._nanos = nanos;
|
|
16
|
+
}
|
|
17
|
+
get nanos() {
|
|
18
|
+
return this._nanos;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the duration as nanoseconds
|
|
22
|
+
*
|
|
23
|
+
* @returns {number} The duration as nanoseconds
|
|
24
|
+
*/
|
|
25
|
+
get asNanoSeconds() {
|
|
26
|
+
return this.nanos;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get the duration converted into milliseconds
|
|
30
|
+
*
|
|
31
|
+
* @returns {number} The duration as milliseconds
|
|
32
|
+
*/
|
|
33
|
+
get asMilliSeconds() {
|
|
34
|
+
return this.nanos / NS_PER_MS;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the duration converted into seconds
|
|
38
|
+
*
|
|
39
|
+
* @returns {number} The duration fas seconds
|
|
40
|
+
*/
|
|
41
|
+
get asSeconds() {
|
|
42
|
+
return this.nanos / NS_PER_S;
|
|
43
|
+
}
|
|
44
|
+
toString() {
|
|
45
|
+
// default to milliseconds, rounded
|
|
46
|
+
return this.asMilliSeconds.toFixed(0);
|
|
47
|
+
}
|
|
42
48
|
}
|
|
43
|
-
|
|
44
49
|
exports.Duration = Duration;
|
|
45
|
-
|
|
46
50
|
class Timer {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
start() {
|
|
56
|
-
if (!_lodash.default.isNull(this.startTime)) {
|
|
57
|
-
throw new Error('Timer has already been started.');
|
|
51
|
+
/**
|
|
52
|
+
* Creates a timer
|
|
53
|
+
*/
|
|
54
|
+
constructor() {
|
|
55
|
+
this._startTime = null;
|
|
56
|
+
}
|
|
57
|
+
get startTime() {
|
|
58
|
+
return this._startTime;
|
|
58
59
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Start the timer
|
|
62
|
+
*
|
|
63
|
+
* @return {Timer} The current instance, for chaining
|
|
64
|
+
*/
|
|
65
|
+
start() {
|
|
66
|
+
if (!lodash_1.default.isNull(this.startTime)) {
|
|
67
|
+
throw new Error('Timer has already been started.');
|
|
68
|
+
}
|
|
69
|
+
// once Node 10 is no longer supported, this check can be removed
|
|
70
|
+
this._startTime = lodash_1.default.isFunction(process.hrtime.bigint)
|
|
71
|
+
? process.hrtime.bigint()
|
|
72
|
+
: process.hrtime();
|
|
73
|
+
return this;
|
|
67
74
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Get the duration since the timer was started
|
|
77
|
+
*
|
|
78
|
+
* @return {Duration} the duration
|
|
79
|
+
*/
|
|
80
|
+
getDuration() {
|
|
81
|
+
if (lodash_1.default.isNull(this.startTime)) {
|
|
82
|
+
throw new Error(`Unable to get duration. Timer was not started`);
|
|
83
|
+
}
|
|
84
|
+
let nanoDuration;
|
|
85
|
+
if (lodash_1.default.isArray(this.startTime)) {
|
|
86
|
+
// startTime was created using process.hrtime()
|
|
87
|
+
const [seconds, nanos] = process.hrtime(this.startTime);
|
|
88
|
+
nanoDuration = seconds * NS_PER_S + nanos;
|
|
89
|
+
}
|
|
90
|
+
else if (typeof this.startTime === 'bigint' && lodash_1.default.isFunction(process.hrtime.bigint)) {
|
|
91
|
+
// startTime was created using process.hrtime.bigint()
|
|
92
|
+
const endTime = process.hrtime.bigint();
|
|
93
|
+
// get the difference, and convert to number
|
|
94
|
+
nanoDuration = Number(endTime - this.startTime);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
throw new Error(`Unable to get duration. Start time '${this.startTime}' cannot be parsed`);
|
|
98
|
+
}
|
|
99
|
+
return new Duration(nanoDuration);
|
|
79
100
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
} catch (err) {
|
|
88
|
-
return `<err: ${err.message}>`;
|
|
101
|
+
toString() {
|
|
102
|
+
try {
|
|
103
|
+
return this.getDuration().toString();
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
return `<err: ${err.message}>`;
|
|
107
|
+
}
|
|
89
108
|
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
109
|
}
|
|
93
|
-
|
|
94
110
|
exports.Timer = Timer;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOU19QRVJfUyIsIk5TX1BFUl9NUyIsIkR1cmF0aW9uIiwiY29uc3RydWN0b3IiLCJuYW5vcyIsIl9uYW5vcyIsImFzTmFub1NlY29uZHMiLCJhc01pbGxpU2Vjb25kcyIsImFzU2Vjb25kcyIsInRvU3RyaW5nIiwidG9GaXhlZCIsIlRpbWVyIiwiX3N0YXJ0VGltZSIsInN0YXJ0VGltZSIsInN0YXJ0IiwiXyIsImlzTnVsbCIsIkVycm9yIiwiaXNGdW5jdGlvbiIsInByb2Nlc3MiLCJocnRpbWUiLCJiaWdpbnQiLCJnZXREdXJhdGlvbiIsIm5hbm9EdXJhdGlvbiIsImlzQXJyYXkiLCJzZWNvbmRzIiwiZW5kVGltZSIsIk51bWJlciIsImVyciIsIm1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi9saWIvdGltaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IE5TX1BFUl9TID0gMWU5O1xuY29uc3QgTlNfUEVSX01TID0gMWU2O1xuXG4vKipcbiAqIENsYXNzIHJlcHJlc2VudGluZyBhIGR1cmF0aW9uLCBlbmNhcHN1bGF0aW5nIHRoZSBudW1iZXIgYW5kIHVuaXRzLlxuICovXG5jbGFzcyBEdXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG5hbm9zKSB7XG4gICAgdGhpcy5fbmFub3MgPSBuYW5vcztcbiAgfVxuXG4gIGdldCBuYW5vcygpIHtcbiAgICByZXR1cm4gdGhpcy5fbmFub3M7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkdXJhdGlvbiBhcyBuYW5vc2Vjb25kc1xuICAgKlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgZHVyYXRpb24gYXMgbmFub3NlY29uZHNcbiAgICovXG4gIGdldCBhc05hbm9TZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbm9zO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZHVyYXRpb24gY29udmVydGVkIGludG8gbWlsbGlzZWNvbmRzXG4gICAqXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBkdXJhdGlvbiBhcyBtaWxsaXNlY29uZHNcbiAgICovXG4gIGdldCBhc01pbGxpU2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW5vcyAvIE5TX1BFUl9NUztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGR1cmF0aW9uIGNvbnZlcnRlZCBpbnRvIHNlY29uZHNcbiAgICpcbiAgICogQHJldHVybnMge251bWJlcn0gVGhlIGR1cmF0aW9uIGZhcyBzZWNvbmRzXG4gICAqL1xuICBnZXQgYXNTZWNvbmRzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbm9zIC8gTlNfUEVSX1M7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICAvLyBkZWZhdWx0IHRvIG1pbGxpc2Vjb25kcywgcm91bmRlZFxuICAgIHJldHVybiB0aGlzLmFzTWlsbGlTZWNvbmRzLnRvRml4ZWQoMCk7XG4gIH1cbn1cblxuY2xhc3MgVGltZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHRpbWVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9zdGFydFRpbWUgPSBudWxsO1xuICB9XG5cbiAgZ2V0IHN0YXJ0VGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRUaW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHRoZSB0aW1lclxuICAgKlxuICAgKiBAcmV0dXJuIHtUaW1lcn0gVGhlIGN1cnJlbnQgaW5zdGFuY2UsIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgc3RhcnQoKSB7XG4gICAgaWYgKCFfLmlzTnVsbCh0aGlzLnN0YXJ0VGltZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGltZXIgaGFzIGFscmVhZHkgYmVlbiBzdGFydGVkLicpO1xuICAgIH1cbiAgICAvLyBvbmNlIE5vZGUgMTAgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCwgdGhpcyBjaGVjayBjYW4gYmUgcmVtb3ZlZFxuICAgIHRoaXMuX3N0YXJ0VGltZSA9IF8uaXNGdW5jdGlvbihwcm9jZXNzLmhydGltZS5iaWdpbnQpXG4gICAgICA/IHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpXG4gICAgICA6IHByb2Nlc3MuaHJ0aW1lKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBkdXJhdGlvbiBzaW5jZSB0aGUgdGltZXIgd2FzIHN0YXJ0ZWRcbiAgICpcbiAgICogQHJldHVybiB7RHVyYXRpb259IHRoZSBkdXJhdGlvblxuICAgKi9cbiAgZ2V0RHVyYXRpb24oKSB7XG4gICAgaWYgKF8uaXNOdWxsKHRoaXMuc3RhcnRUaW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZ2V0IGR1cmF0aW9uLiBUaW1lciB3YXMgbm90IHN0YXJ0ZWRgKTtcbiAgICB9XG5cbiAgICBsZXQgbmFub0R1cmF0aW9uO1xuICAgIGlmIChfLmlzQXJyYXkodGhpcy5zdGFydFRpbWUpKSB7XG4gICAgICAvLyBzdGFydFRpbWUgd2FzIGNyZWF0ZWQgdXNpbmcgcHJvY2Vzcy5ocnRpbWUoKVxuICAgICAgY29uc3QgW3NlY29uZHMsIG5hbm9zXSA9IHByb2Nlc3MuaHJ0aW1lKHRoaXMuc3RhcnRUaW1lKTtcbiAgICAgIG5hbm9EdXJhdGlvbiA9IHNlY29uZHMgKiBOU19QRVJfUyArIG5hbm9zO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuc3RhcnRUaW1lID09PSAnYmlnaW50JyAmJiBfLmlzRnVuY3Rpb24ocHJvY2Vzcy5ocnRpbWUuYmlnaW50KSkge1xuICAgICAgLy8gc3RhcnRUaW1lIHdhcyBjcmVhdGVkIHVzaW5nIHByb2Nlc3MuaHJ0aW1lLmJpZ2ludCgpXG4gICAgICBjb25zdCBlbmRUaW1lID0gcHJvY2Vzcy5ocnRpbWUuYmlnaW50KCk7XG4gICAgICAvLyBnZXQgdGhlIGRpZmZlcmVuY2UsIGFuZCBjb252ZXJ0IHRvIG51bWJlclxuICAgICAgbmFub0R1cmF0aW9uID0gTnVtYmVyKGVuZFRpbWUgLSB0aGlzLnN0YXJ0VGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGdldCBkdXJhdGlvbi4gU3RhcnQgdGltZSAnJHt0aGlzLnN0YXJ0VGltZX0nIGNhbm5vdCBiZSBwYXJzZWRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IER1cmF0aW9uKG5hbm9EdXJhdGlvbik7XG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RHVyYXRpb24oKS50b1N0cmluZygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIGA8ZXJyOiAke2Vyci5tZXNzYWdlfT5gO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQge1RpbWVyLCBEdXJhdGlvbn07XG5leHBvcnQgZGVmYXVsdCBUaW1lcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsR0FBakI7QUFDQSxNQUFNQyxTQUFTLEdBQUcsR0FBbEI7O0FBS0EsTUFBTUMsUUFBTixDQUFlO0VBQ2JDLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRO0lBQ2pCLEtBQUtDLE1BQUwsR0FBY0QsS0FBZDtFQUNEOztFQUVRLElBQUxBLEtBQUssR0FBRztJQUNWLE9BQU8sS0FBS0MsTUFBWjtFQUNEOztFQU9nQixJQUFiQyxhQUFhLEdBQUc7SUFDbEIsT0FBTyxLQUFLRixLQUFaO0VBQ0Q7O0VBT2lCLElBQWRHLGNBQWMsR0FBRztJQUNuQixPQUFPLEtBQUtILEtBQUwsR0FBYUgsU0FBcEI7RUFDRDs7RUFPWSxJQUFUTyxTQUFTLEdBQUc7SUFDZCxPQUFPLEtBQUtKLEtBQUwsR0FBYUosUUFBcEI7RUFDRDs7RUFFRFMsUUFBUSxHQUFHO0lBRVQsT0FBTyxLQUFLRixjQUFMLENBQW9CRyxPQUFwQixDQUE0QixDQUE1QixDQUFQO0VBQ0Q7O0FBdkNZOzs7O0FBMENmLE1BQU1DLEtBQU4sQ0FBWTtFQUlWUixXQUFXLEdBQUc7SUFDWixLQUFLUyxVQUFMLEdBQWtCLElBQWxCO0VBQ0Q7O0VBRVksSUFBVEMsU0FBUyxHQUFHO0lBQ2QsT0FBTyxLQUFLRCxVQUFaO0VBQ0Q7O0VBT0RFLEtBQUssR0FBRztJQUNOLElBQUksQ0FBQ0MsZUFBQSxDQUFFQyxNQUFGLENBQVMsS0FBS0gsU0FBZCxDQUFMLEVBQStCO01BQzdCLE1BQU0sSUFBSUksS0FBSixDQUFVLGlDQUFWLENBQU47SUFDRDs7SUFFRCxLQUFLTCxVQUFMLEdBQWtCRyxlQUFBLENBQUVHLFVBQUYsQ0FBYUMsT0FBTyxDQUFDQyxNQUFSLENBQWVDLE1BQTVCLElBQ2RGLE9BQU8sQ0FBQ0MsTUFBUixDQUFlQyxNQUFmLEVBRGMsR0FFZEYsT0FBTyxDQUFDQyxNQUFSLEVBRko7SUFHQSxPQUFPLElBQVA7RUFDRDs7RUFPREUsV0FBVyxHQUFHO0lBQ1osSUFBSVAsZUFBQSxDQUFFQyxNQUFGLENBQVMsS0FBS0gsU0FBZCxDQUFKLEVBQThCO01BQzVCLE1BQU0sSUFBSUksS0FBSixDQUFXLCtDQUFYLENBQU47SUFDRDs7SUFFRCxJQUFJTSxZQUFKOztJQUNBLElBQUlSLGVBQUEsQ0FBRVMsT0FBRixDQUFVLEtBQUtYLFNBQWYsQ0FBSixFQUErQjtNQUU3QixNQUFNLENBQUNZLE9BQUQsRUFBVXJCLEtBQVYsSUFBbUJlLE9BQU8sQ0FBQ0MsTUFBUixDQUFlLEtBQUtQLFNBQXBCLENBQXpCO01BQ0FVLFlBQVksR0FBR0UsT0FBTyxHQUFHekIsUUFBVixHQUFxQkksS0FBcEM7SUFDRCxDQUpELE1BSU8sSUFBSSxPQUFPLEtBQUtTLFNBQVosS0FBMEIsUUFBMUIsSUFBc0NFLGVBQUEsQ0FBRUcsVUFBRixDQUFhQyxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsTUFBNUIsQ0FBMUMsRUFBK0U7TUFFcEYsTUFBTUssT0FBTyxHQUFHUCxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsTUFBZixFQUFoQjtNQUVBRSxZQUFZLEdBQUdJLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHLEtBQUtiLFNBQWhCLENBQXJCO0lBQ0QsQ0FMTSxNQUtBO01BQ0wsTUFBTSxJQUFJSSxLQUFKLENBQVcsdUNBQXNDLEtBQUtKLFNBQVUsb0JBQWhFLENBQU47SUFDRDs7SUFFRCxPQUFPLElBQUlYLFFBQUosQ0FBYXFCLFlBQWIsQ0FBUDtFQUNEOztFQUVEZCxRQUFRLEdBQUc7SUFDVCxJQUFJO01BQ0YsT0FBTyxLQUFLYSxXQUFMLEdBQW1CYixRQUFuQixFQUFQO0lBQ0QsQ0FGRCxDQUVFLE9BQU9tQixHQUFQLEVBQVk7TUFDWixPQUFRLFNBQVFBLEdBQUcsQ0FBQ0MsT0FBUSxHQUE1QjtJQUNEO0VBQ0Y7O0FBN0RTOzs7ZUFpRUdsQixLIn0=
|
|
111
|
+
exports.default = Timer;
|
|
112
|
+
//# sourceMappingURL=timing.js.map
|
package/build/lib/timing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","
|
|
1
|
+
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../lib/timing.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AAEvB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB;;GAEG;AACH,MAAM,QAAQ;IACZ,YAAY,KAAK;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,mCAAmC;QACnC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;CACF;AAkEc,4BAAQ;AAhEvB,MAAM,KAAK;IACT;;OAEG;IACH;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QACD,iEAAiE;QACjE,IAAI,CAAC,UAAU,GAAG,gBAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;YACnD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YACzB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,WAAW;QACT,IAAI,gBAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QAED,IAAI,YAAY,CAAC;QACjB,IAAI,gBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC7B,+CAA+C;YAC/C,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxD,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;SAC3C;aAAM,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,gBAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACpF,sDAAsD;YACtD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxC,4CAA4C;YAC5C,YAAY,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;SACjD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,oBAAoB,CAAC,CAAC;SAC5F;QAED,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ;QACN,IAAI;YACF,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,SAAS,GAAG,CAAC,OAAO,GAAG,CAAC;SAChC;IACH,CAAC;CACF;AAEO,sBAAK;AACb,kBAAe,KAAK,CAAC"}
|