@monorepolint/utils 0.5.0-alpha.9 → 0.5.0-alpha.95
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/lib/AggregateTiming.d.ts +15 -0
- package/lib/AggregateTiming.d.ts.map +1 -0
- package/lib/AggregateTiming.js +70 -0
- package/lib/AggregateTiming.js.map +1 -0
- package/lib/CachingHost.d.ts +39 -0
- package/lib/CachingHost.d.ts.map +1 -0
- package/lib/CachingHost.js +366 -0
- package/lib/CachingHost.js.map +1 -0
- package/lib/Host.d.ts +38 -0
- package/lib/Host.d.ts.map +1 -0
- package/lib/Host.js +9 -0
- package/lib/Host.js.map +1 -0
- package/lib/SimpleHost.d.ts +35 -0
- package/lib/SimpleHost.d.ts.map +1 -0
- package/lib/SimpleHost.js +56 -0
- package/lib/SimpleHost.js.map +1 -0
- package/lib/Table.d.ts +53 -0
- package/lib/Table.d.ts.map +1 -0
- package/lib/Table.js +234 -0
- package/lib/Table.js.map +1 -0
- package/lib/Timing.d.ts +9 -0
- package/lib/Timing.d.ts.map +1 -0
- package/lib/Timing.js +57 -0
- package/lib/Timing.js.map +1 -0
- package/lib/__tests__/CachingHost.spec.d.ts +8 -0
- package/lib/__tests__/CachingHost.spec.d.ts.map +1 -0
- package/lib/__tests__/CachingHost.spec.js +178 -0
- package/lib/__tests__/CachingHost.spec.js.map +1 -0
- package/lib/findWorkspaceDir.d.ts +2 -1
- package/lib/findWorkspaceDir.d.ts.map +1 -1
- package/lib/findWorkspaceDir.js +5 -6
- package/lib/findWorkspaceDir.js.map +1 -1
- package/lib/getPackageNameToDir.d.ts +2 -1
- package/lib/getPackageNameToDir.d.ts.map +1 -1
- package/lib/getPackageNameToDir.js +5 -5
- package/lib/getPackageNameToDir.js.map +1 -1
- package/lib/getWorkspacePackageDirs.d.ts +2 -1
- package/lib/getWorkspacePackageDirs.d.ts.map +1 -1
- package/lib/getWorkspacePackageDirs.js +6 -6
- package/lib/getWorkspacePackageDirs.js.map +1 -1
- package/lib/index.d.ts +8 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -8
- package/lib/index.js.map +1 -1
- package/lib/matchesAnyGlob.d.ts +17 -0
- package/lib/matchesAnyGlob.d.ts.map +1 -0
- package/lib/matchesAnyGlob.js +131 -0
- package/lib/matchesAnyGlob.js.map +1 -0
- package/lib/mutateJson.d.ts +2 -1
- package/lib/mutateJson.d.ts.map +1 -1
- package/lib/mutateJson.js +4 -5
- package/lib/mutateJson.js.map +1 -1
- package/lib/nanosecondsToSanity.d.ts +8 -0
- package/lib/nanosecondsToSanity.d.ts.map +1 -0
- package/lib/nanosecondsToSanity.js +14 -0
- package/lib/nanosecondsToSanity.js.map +1 -0
- package/package.json +12 -10
- package/src/AggregateTiming.ts +71 -0
- package/src/CachingHost.ts +489 -0
- package/src/Host.ts +34 -0
- package/src/SimpleHost.ts +57 -0
- package/src/Table.ts +319 -0
- package/src/Timing.ts +55 -0
- package/src/__tests__/CachingHost.spec.ts +244 -0
- package/src/findWorkspaceDir.ts +5 -6
- package/src/getPackageNameToDir.ts +4 -4
- package/src/getWorkspacePackageDirs.ts +7 -3
- package/src/index.ts +8 -2
- package/src/matchesAnyGlob.ts +145 -0
- package/src/mutateJson.ts +4 -5
- package/src/nanosecondsToSanity.ts +10 -0
- package/tsconfig.tsbuildinfo +1 -1586
- package/lib/readJson.d.ts +0 -8
- package/lib/readJson.d.ts.map +0 -1
- package/lib/readJson.js +0 -15
- package/lib/readJson.js.map +0 -1
- package/lib/writeJson.d.ts +0 -8
- package/lib/writeJson.d.ts.map +0 -1
- package/lib/writeJson.js +0 -14
- package/lib/writeJson.js.map +0 -1
- package/src/readJson.ts +0 -13
- package/src/writeJson.ts +0 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachingHost.spec.js","sourceRoot":"","sources":["../../src/__tests__/CachingHost.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,6 @@
|
|
|
4
4
|
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
import { Host } from "./Host";
|
|
8
|
+
export declare function findWorkspaceDir(host: Pick<Host, "readJson" | "exists">, dir: string): string | undefined;
|
|
8
9
|
//# sourceMappingURL=findWorkspaceDir.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findWorkspaceDir.d.ts","sourceRoot":"","sources":["../src/findWorkspaceDir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"findWorkspaceDir.d.ts","sourceRoot":"","sources":["../src/findWorkspaceDir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAezG"}
|
package/lib/findWorkspaceDir.js
CHANGED
|
@@ -6,14 +6,13 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.findWorkspaceDir = void 0;
|
|
9
10
|
const tslib_1 = require("tslib");
|
|
10
|
-
const fs_1 = require("fs");
|
|
11
11
|
const path = tslib_1.__importStar(require("path"));
|
|
12
|
-
|
|
13
|
-
function findWorkspaceDir(dir) {
|
|
12
|
+
function findWorkspaceDir(host, dir) {
|
|
14
13
|
const packagePath = path.join(dir, "package.json");
|
|
15
|
-
if (
|
|
16
|
-
const packageJson =
|
|
14
|
+
if (host.exists(packagePath)) {
|
|
15
|
+
const packageJson = host.readJson(packagePath);
|
|
17
16
|
if (packageJson.workspaces !== undefined) {
|
|
18
17
|
return dir;
|
|
19
18
|
}
|
|
@@ -22,7 +21,7 @@ function findWorkspaceDir(dir) {
|
|
|
22
21
|
if (nextDir === dir) {
|
|
23
22
|
return undefined;
|
|
24
23
|
}
|
|
25
|
-
return findWorkspaceDir(nextDir);
|
|
24
|
+
return findWorkspaceDir(host, nextDir);
|
|
26
25
|
}
|
|
27
26
|
exports.findWorkspaceDir = findWorkspaceDir;
|
|
28
27
|
//# sourceMappingURL=findWorkspaceDir.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findWorkspaceDir.js","sourceRoot":"","sources":["../src/findWorkspaceDir.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"findWorkspaceDir.js","sourceRoot":"","sources":["../src/findWorkspaceDir.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,mDAA6B;AAI7B,SAAgB,gBAAgB,CAAC,IAAuC,EAAE,GAAW;IACnF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAgB,CAAC;QAC9D,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE;YACxC,OAAO,GAAG,CAAC;SACZ;KACF;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,KAAK,GAAG,EAAE;QACnB,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAfD,4CAeC"}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
|
+
import { Host } from "./Host";
|
|
7
8
|
/**
|
|
8
9
|
* returns a map of package names to their directories in the workspace.
|
|
9
10
|
* if `resolvePaths` is true, the returned directory names are absolute paths
|
|
10
11
|
* resolved against the `workspaceDir`.
|
|
11
12
|
*/
|
|
12
|
-
export declare function getPackageNameToDir(workspaceDir: string, resolvePaths?: boolean): Map<string, string>;
|
|
13
|
+
export declare function getPackageNameToDir(host: Pick<Host, "readJson">, workspaceDir: string, resolvePaths?: boolean): Map<string, string>;
|
|
13
14
|
//# sourceMappingURL=getPackageNameToDir.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPackageNameToDir.d.ts","sourceRoot":"","sources":["../src/getPackageNameToDir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"getPackageNameToDir.d.ts","sourceRoot":"","sources":["../src/getPackageNameToDir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,uBAYpH"}
|
|
@@ -6,19 +6,19 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.getPackageNameToDir = void 0;
|
|
9
10
|
const path_1 = require("path");
|
|
10
11
|
const getWorkspacePackageDirs_1 = require("./getWorkspacePackageDirs");
|
|
11
|
-
const readJson_1 = require("./readJson");
|
|
12
12
|
/**
|
|
13
13
|
* returns a map of package names to their directories in the workspace.
|
|
14
14
|
* if `resolvePaths` is true, the returned directory names are absolute paths
|
|
15
15
|
* resolved against the `workspaceDir`.
|
|
16
16
|
*/
|
|
17
|
-
function getPackageNameToDir(workspaceDir, resolvePaths = false) {
|
|
17
|
+
function getPackageNameToDir(host, workspaceDir, resolvePaths = false) {
|
|
18
18
|
const ret = new Map();
|
|
19
|
-
for (const packageDir of getWorkspacePackageDirs_1.getWorkspacePackageDirs(workspaceDir, resolvePaths)) {
|
|
20
|
-
const packagePath = path_1.join(packageDir, "package.json");
|
|
21
|
-
const { name } =
|
|
19
|
+
for (const packageDir of (0, getWorkspacePackageDirs_1.getWorkspacePackageDirs)(host, workspaceDir, resolvePaths)) {
|
|
20
|
+
const packagePath = (0, path_1.join)(packageDir, "package.json");
|
|
21
|
+
const { name } = host.readJson(packagePath);
|
|
22
22
|
if (name === undefined) {
|
|
23
23
|
throw new Error(`Package needs a name: ${packagePath}`);
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPackageNameToDir.js","sourceRoot":"","sources":["../src/getPackageNameToDir.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"getPackageNameToDir.js","sourceRoot":"","sources":["../src/getPackageNameToDir.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,+BAAwC;AACxC,uEAAoE;AAIpE;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,IAA4B,EAAE,YAAoB,EAAE,eAAwB,KAAK;IACnH,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtC,KAAK,MAAM,UAAU,IAAI,IAAA,iDAAuB,EAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE;QAClF,MAAM,WAAW,GAAG,IAAA,WAAQ,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACzD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAgB,CAAC;QAC3D,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;SACzD;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAC3B;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAZD,kDAYC"}
|
|
@@ -4,5 +4,6 @@
|
|
|
4
4
|
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
import { Host } from "./Host";
|
|
8
|
+
export declare function getWorkspacePackageDirs(host: Pick<Host, "readJson">, workspaceDir: string, resolvePaths?: boolean): string[];
|
|
8
9
|
//# sourceMappingURL=getWorkspacePackageDirs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWorkspacePackageDirs.d.ts","sourceRoot":"","sources":["../src/getWorkspacePackageDirs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"getWorkspacePackageDirs.d.ts","sourceRoot":"","sources":["../src/getWorkspacePackageDirs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAC5B,YAAY,EAAE,MAAM,EACpB,YAAY,GAAE,OAAe,YA6B9B"}
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.getWorkspacePackageDirs = void 0;
|
|
9
10
|
const tslib_1 = require("tslib");
|
|
10
11
|
const fs_1 = require("fs");
|
|
11
12
|
const glob_1 = tslib_1.__importDefault(require("glob"));
|
|
12
13
|
const path_1 = require("path");
|
|
13
|
-
|
|
14
|
-
function getWorkspacePackageDirs(workspaceDir, resolvePaths = false) {
|
|
14
|
+
function getWorkspacePackageDirs(host, workspaceDir, resolvePaths = false) {
|
|
15
15
|
const ret = [];
|
|
16
|
-
const packageJson =
|
|
16
|
+
const packageJson = host.readJson((0, path_1.join)(workspaceDir, "package.json"));
|
|
17
17
|
if (packageJson.workspaces === undefined) {
|
|
18
18
|
throw new Error("Invalid workspaceDir: " + workspaceDir);
|
|
19
19
|
}
|
|
@@ -22,10 +22,10 @@ function getWorkspacePackageDirs(workspaceDir, resolvePaths = false) {
|
|
|
22
22
|
: packageJson.workspaces.packages || [];
|
|
23
23
|
for (const pattern of packageGlobs) {
|
|
24
24
|
for (const packagePath of glob_1.default.sync(pattern, { cwd: workspaceDir })) {
|
|
25
|
-
const packageJsonPath = path_1.join(workspaceDir, packagePath, "package.json");
|
|
26
|
-
if (fs_1.existsSync(packageJsonPath)) {
|
|
25
|
+
const packageJsonPath = (0, path_1.join)(workspaceDir, packagePath, "package.json");
|
|
26
|
+
if ((0, fs_1.existsSync)(packageJsonPath)) {
|
|
27
27
|
if (resolvePaths === true) {
|
|
28
|
-
ret.push(path_1.resolve(path_1.join(workspaceDir, packagePath)));
|
|
28
|
+
ret.push((0, path_1.resolve)((0, path_1.join)(workspaceDir, packagePath)));
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
31
|
ret.push(packagePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWorkspacePackageDirs.js","sourceRoot":"","sources":["../src/getWorkspacePackageDirs.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"getWorkspacePackageDirs.js","sourceRoot":"","sources":["../src/getWorkspacePackageDirs.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,2BAAgC;AAChC,wDAAwB;AACxB,+BAAgE;AAIhE,SAAgB,uBAAuB,CACrC,IAA4B,EAC5B,YAAoB,EACpB,eAAwB,KAAK;IAE7B,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,MAAM,WAAW,GAAgB,IAAI,CAAC,QAAQ,CAAC,IAAA,WAAQ,EAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEvF,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE;QACxC,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,YAAY,CAAC,CAAC;KAC1D;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;QACxD,CAAC,CAAC,WAAW,CAAC,UAAU;QACxB,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;IAE1C,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE;QAClC,KAAK,MAAM,WAAW,IAAI,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE;YACnE,MAAM,eAAe,GAAG,IAAA,WAAQ,EAAC,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YAE5E,IAAI,IAAA,eAAU,EAAC,eAAe,CAAC,EAAE;gBAC/B,IAAI,YAAY,KAAK,IAAI,EAAE;oBACzB,GAAG,CAAC,IAAI,CAAC,IAAA,cAAW,EAAC,IAAA,WAAQ,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;iBAC5D;qBAAM;oBACL,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACvB;aACF;SACF;KACF;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAhCD,0DAgCC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -5,10 +5,16 @@
|
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
7
|
export { getWorkspacePackageDirs } from "./getWorkspacePackageDirs";
|
|
8
|
-
export { readJson } from "./readJson";
|
|
9
|
-
export { writeJson } from "./writeJson";
|
|
10
8
|
export { mutateJson } from "./mutateJson";
|
|
11
9
|
export { PackageJson } from "./PackageJson";
|
|
12
10
|
export { findWorkspaceDir } from "./findWorkspaceDir";
|
|
13
11
|
export { getPackageNameToDir } from "./getPackageNameToDir";
|
|
12
|
+
export { Host } from "./Host";
|
|
13
|
+
export { SimpleHost } from "./SimpleHost";
|
|
14
|
+
export { CachingHost } from "./CachingHost";
|
|
15
|
+
export { matchesAnyGlob } from "./matchesAnyGlob";
|
|
16
|
+
export { nanosecondsToSanity } from "./nanosecondsToSanity";
|
|
17
|
+
export { AggregateTiming } from "./AggregateTiming";
|
|
18
|
+
export { Timing } from "./Timing";
|
|
19
|
+
export { Table } from "./Table";
|
|
14
20
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -6,16 +6,27 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.Table = exports.Timing = exports.AggregateTiming = exports.nanosecondsToSanity = exports.matchesAnyGlob = exports.CachingHost = exports.SimpleHost = exports.getPackageNameToDir = exports.findWorkspaceDir = exports.mutateJson = exports.getWorkspacePackageDirs = void 0;
|
|
9
10
|
var getWorkspacePackageDirs_1 = require("./getWorkspacePackageDirs");
|
|
10
|
-
exports
|
|
11
|
-
var readJson_1 = require("./readJson");
|
|
12
|
-
exports.readJson = readJson_1.readJson;
|
|
13
|
-
var writeJson_1 = require("./writeJson");
|
|
14
|
-
exports.writeJson = writeJson_1.writeJson;
|
|
11
|
+
Object.defineProperty(exports, "getWorkspacePackageDirs", { enumerable: true, get: function () { return getWorkspacePackageDirs_1.getWorkspacePackageDirs; } });
|
|
15
12
|
var mutateJson_1 = require("./mutateJson");
|
|
16
|
-
exports
|
|
13
|
+
Object.defineProperty(exports, "mutateJson", { enumerable: true, get: function () { return mutateJson_1.mutateJson; } });
|
|
17
14
|
var findWorkspaceDir_1 = require("./findWorkspaceDir");
|
|
18
|
-
exports
|
|
15
|
+
Object.defineProperty(exports, "findWorkspaceDir", { enumerable: true, get: function () { return findWorkspaceDir_1.findWorkspaceDir; } });
|
|
19
16
|
var getPackageNameToDir_1 = require("./getPackageNameToDir");
|
|
20
|
-
exports
|
|
17
|
+
Object.defineProperty(exports, "getPackageNameToDir", { enumerable: true, get: function () { return getPackageNameToDir_1.getPackageNameToDir; } });
|
|
18
|
+
var SimpleHost_1 = require("./SimpleHost");
|
|
19
|
+
Object.defineProperty(exports, "SimpleHost", { enumerable: true, get: function () { return SimpleHost_1.SimpleHost; } });
|
|
20
|
+
var CachingHost_1 = require("./CachingHost");
|
|
21
|
+
Object.defineProperty(exports, "CachingHost", { enumerable: true, get: function () { return CachingHost_1.CachingHost; } });
|
|
22
|
+
var matchesAnyGlob_1 = require("./matchesAnyGlob");
|
|
23
|
+
Object.defineProperty(exports, "matchesAnyGlob", { enumerable: true, get: function () { return matchesAnyGlob_1.matchesAnyGlob; } });
|
|
24
|
+
var nanosecondsToSanity_1 = require("./nanosecondsToSanity");
|
|
25
|
+
Object.defineProperty(exports, "nanosecondsToSanity", { enumerable: true, get: function () { return nanosecondsToSanity_1.nanosecondsToSanity; } });
|
|
26
|
+
var AggregateTiming_1 = require("./AggregateTiming");
|
|
27
|
+
Object.defineProperty(exports, "AggregateTiming", { enumerable: true, get: function () { return AggregateTiming_1.AggregateTiming; } });
|
|
28
|
+
var Timing_1 = require("./Timing");
|
|
29
|
+
Object.defineProperty(exports, "Timing", { enumerable: true, get: function () { return Timing_1.Timing; } });
|
|
30
|
+
var Table_1 = require("./Table");
|
|
31
|
+
Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return Table_1.Table; } });
|
|
21
32
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qEAAoE;AAA3D,kIAAA,uBAAuB,OAAA;AAChC,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAEnB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAE5B,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,iCAAgC;AAAvB,8FAAA,KAAK,OAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 Palantir Technologies, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
interface MatchesAnyGlob {
|
|
8
|
+
(needle: string, haystack: readonly string[]): boolean | undefined;
|
|
9
|
+
printStats?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const matchesAnyGlob: MatchesAnyGlob;
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Don't use this directly. We manually inline it above
|
|
14
|
+
*/
|
|
15
|
+
export declare function needleInPattern(needle: string, pattern: string): boolean;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=matchesAnyGlob.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchesAnyGlob.d.ts","sourceRoot":"","sources":["../src/matchesAnyGlob.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiCH,UAAU,cAAc;IACtB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC;IACnE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AACD,eAAO,MAAM,cAAc,EAAE,cAgD5B,CAAC;AAsBF;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WA6B9D"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright 2022 Palantir Technologies, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.needleInPattern = exports.matchesAnyGlob = void 0;
|
|
10
|
+
const micromatch_1 = require("micromatch");
|
|
11
|
+
const nanosecondsToSanity_1 = require("./nanosecondsToSanity");
|
|
12
|
+
const Table_1 = require("./Table");
|
|
13
|
+
// This file requires a LOT of caching to be performant. We have three layers to avoid work.
|
|
14
|
+
/**
|
|
15
|
+
* Multimap cache of whether a needle was found in the glob haystack. Short circuits many
|
|
16
|
+
* individual checks against the globs.
|
|
17
|
+
*/
|
|
18
|
+
const cache = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* Multimap cache of whether a needle matches a glob. Allows us to avoid regexp's.
|
|
21
|
+
*/
|
|
22
|
+
const singleMatcherCache = new Map();
|
|
23
|
+
/**
|
|
24
|
+
* Cache of glob to regular expression. Compiling the regular expression is expensive.
|
|
25
|
+
*/
|
|
26
|
+
const compiledGlobCache = new Map();
|
|
27
|
+
let haystackMiss = 0;
|
|
28
|
+
let haystackHit = 0;
|
|
29
|
+
let matchTime = BigInt(0);
|
|
30
|
+
let singleMatcherHits = 0;
|
|
31
|
+
let singleMatcherMisses = 0;
|
|
32
|
+
let singleMatcherSaves = 0; // hits + hits you would have had if the haystack didn't save you
|
|
33
|
+
const matchesAnyGlob = function matchesAnyGlobFunc(needle, haystack) {
|
|
34
|
+
matchTime -= process.hrtime.bigint();
|
|
35
|
+
let cacheForHaystack = cache.get(haystack);
|
|
36
|
+
if (cacheForHaystack === undefined) {
|
|
37
|
+
cacheForHaystack = new Map();
|
|
38
|
+
cache.set(haystack, cacheForHaystack);
|
|
39
|
+
}
|
|
40
|
+
let result = cacheForHaystack.get(needle);
|
|
41
|
+
if (result === undefined) {
|
|
42
|
+
haystackMiss++;
|
|
43
|
+
result = false;
|
|
44
|
+
for (const pattern of haystack) {
|
|
45
|
+
// result = needleInPattern(needle, pattern); // commented out as a reminder to update both
|
|
46
|
+
// BEGIN INLINE of needleInPattern
|
|
47
|
+
let patternCache = singleMatcherCache.get(pattern);
|
|
48
|
+
if (patternCache === undefined) {
|
|
49
|
+
patternCache = new Map();
|
|
50
|
+
singleMatcherCache.set(pattern, patternCache);
|
|
51
|
+
}
|
|
52
|
+
// N.B. true/false/undefined
|
|
53
|
+
result = patternCache.get(needle); // only thing different from the inline is we need to reuse `result`
|
|
54
|
+
if (result === undefined) {
|
|
55
|
+
let regexp = compiledGlobCache.get(pattern);
|
|
56
|
+
if (regexp === undefined) {
|
|
57
|
+
regexp = (0, micromatch_1.makeRe)(pattern);
|
|
58
|
+
compiledGlobCache.set(pattern, regexp);
|
|
59
|
+
}
|
|
60
|
+
singleMatcherMisses++;
|
|
61
|
+
result = regexp.test(needle);
|
|
62
|
+
patternCache.set(needle, result);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
singleMatcherHits++;
|
|
66
|
+
singleMatcherSaves++;
|
|
67
|
+
}
|
|
68
|
+
// END INLINE of needleInPattern
|
|
69
|
+
if (result)
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
cacheForHaystack.set(needle, result);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
singleMatcherSaves += haystack.length;
|
|
76
|
+
haystackHit++;
|
|
77
|
+
}
|
|
78
|
+
matchTime += process.hrtime.bigint();
|
|
79
|
+
return result;
|
|
80
|
+
};
|
|
81
|
+
exports.matchesAnyGlob = matchesAnyGlob;
|
|
82
|
+
exports.matchesAnyGlob.printStats = () => {
|
|
83
|
+
const table = new Table_1.Table({
|
|
84
|
+
title: "matchesAnyGlob stats",
|
|
85
|
+
showHeader: true,
|
|
86
|
+
showFooter: false,
|
|
87
|
+
columns: [
|
|
88
|
+
{ header: "Stat", type: "string" },
|
|
89
|
+
{ header: "Value", type: "string" },
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
table.addRow("Haystack Miss", "" + haystackMiss);
|
|
93
|
+
table.addRow("Haystack Hit", "" + haystackHit);
|
|
94
|
+
table.addRow("Single Glob Hits", "" + singleMatcherHits);
|
|
95
|
+
table.addRow("Single Glob Misses", "" + singleMatcherMisses);
|
|
96
|
+
table.addRow("Single Glob Saves", "" + singleMatcherSaves);
|
|
97
|
+
table.addRow("Total Time", (0, nanosecondsToSanity_1.nanosecondsToSanity)(matchTime, 6));
|
|
98
|
+
table.print();
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* @deprecated Don't use this directly. We manually inline it above
|
|
102
|
+
*/
|
|
103
|
+
function needleInPattern(needle, pattern) {
|
|
104
|
+
// benchmark says the uncommented version is best
|
|
105
|
+
// https://jsben.ch/Y8TWs
|
|
106
|
+
// option 2
|
|
107
|
+
let patternCache = singleMatcherCache.get(pattern);
|
|
108
|
+
if (patternCache === undefined) {
|
|
109
|
+
patternCache = new Map();
|
|
110
|
+
singleMatcherCache.set(pattern, patternCache);
|
|
111
|
+
}
|
|
112
|
+
// N.B. true/false/undefined
|
|
113
|
+
let result = patternCache.get(needle);
|
|
114
|
+
if (result === undefined) {
|
|
115
|
+
let regexp = compiledGlobCache.get(pattern);
|
|
116
|
+
if (regexp === undefined) {
|
|
117
|
+
regexp = (0, micromatch_1.makeRe)(pattern);
|
|
118
|
+
compiledGlobCache.set(pattern, regexp);
|
|
119
|
+
}
|
|
120
|
+
singleMatcherMisses++;
|
|
121
|
+
result = regexp.test(needle);
|
|
122
|
+
patternCache.set(needle, result);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
singleMatcherHits++;
|
|
126
|
+
singleMatcherSaves++;
|
|
127
|
+
}
|
|
128
|
+
return result;
|
|
129
|
+
}
|
|
130
|
+
exports.needleInPattern = needleInPattern;
|
|
131
|
+
//# sourceMappingURL=matchesAnyGlob.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchesAnyGlob.js","sourceRoot":"","sources":["../src/matchesAnyGlob.ts"],"names":[],"mappings":"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"}
|
package/lib/mutateJson.d.ts
CHANGED
|
@@ -4,5 +4,6 @@
|
|
|
4
4
|
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
5
|
*
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
import { Host } from "./Host";
|
|
8
|
+
export declare function mutateJson<T extends object>(path: string, host: Host, mutator: (f: T) => T): void;
|
|
8
9
|
//# sourceMappingURL=mutateJson.d.ts.map
|
package/lib/mutateJson.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutateJson.d.ts","sourceRoot":"","sources":["../src/mutateJson.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"mutateJson.d.ts","sourceRoot":"","sources":["../src/mutateJson.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAI1F"}
|
package/lib/mutateJson.js
CHANGED
|
@@ -6,12 +6,11 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
let file = readJson_1.readJson(path);
|
|
9
|
+
exports.mutateJson = void 0;
|
|
10
|
+
function mutateJson(path, host, mutator) {
|
|
11
|
+
let file = host.readJson(path);
|
|
13
12
|
file = mutator(file);
|
|
14
|
-
|
|
13
|
+
host.writeJson(path, file);
|
|
15
14
|
}
|
|
16
15
|
exports.mutateJson = mutateJson;
|
|
17
16
|
//# sourceMappingURL=mutateJson.js.map
|
package/lib/mutateJson.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutateJson.js","sourceRoot":"","sources":["../src/mutateJson.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"mutateJson.js","sourceRoot":"","sources":["../src/mutateJson.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,SAAgB,UAAU,CAAmB,IAAY,EAAE,IAAU,EAAE,OAAoB;IACzF,IAAI,IAAI,GAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC;AAJD,gCAIC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 Palantir Technologies, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
export declare function nanosecondsToSanity(n: bigint, precision?: number): string;
|
|
8
|
+
//# sourceMappingURL=nanosecondsToSanity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nanosecondsToSanity.d.ts","sourceRoot":"","sources":["../src/nanosecondsToSanity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,UAEnE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* Copyright 2022 Palantir Technologies, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.nanosecondsToSanity = void 0;
|
|
10
|
+
function nanosecondsToSanity(n, precision = 9) {
|
|
11
|
+
return n / BigInt(1000000000) + "." + ("" + (n % BigInt(1000000000))).padStart(9, "0").substring(0, precision) + "s";
|
|
12
|
+
}
|
|
13
|
+
exports.nanosecondsToSanity = nanosecondsToSanity;
|
|
14
|
+
//# sourceMappingURL=nanosecondsToSanity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nanosecondsToSanity.js","sourceRoot":"","sources":["../src/nanosecondsToSanity.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,SAAgB,mBAAmB,CAAC,CAAS,EAAE,YAAoB,CAAC;IAClE,OAAO,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,GAAG,CAAC;AACvH,CAAC;AAFD,kDAEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monorepolint/utils",
|
|
3
|
-
"version": "0.5.0-alpha.
|
|
3
|
+
"version": "0.5.0-alpha.95+2af8792",
|
|
4
4
|
"author": "Eric L Anderson (https://github.com/ericanderson)",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Mac Lockard (https://github.com/maclockard)"
|
|
@@ -10,23 +10,25 @@
|
|
|
10
10
|
"main": "lib/index.js",
|
|
11
11
|
"typings": "lib/index.d.ts",
|
|
12
12
|
"scripts": {
|
|
13
|
-
"clean": "rm -rf build lib node_modules *.tgz",
|
|
13
|
+
"clean": "rm -rf build lib node_modules *.tgz tsconfig.tsbuildinfo",
|
|
14
14
|
"compile:typescript": "../../node_modules/.bin/tsc",
|
|
15
|
-
"jest:watch": "../../node_modules/.bin/jest --config ../../jest.config.js --watch",
|
|
16
|
-
"jest": "../../node_modules/.bin/jest --config ../../jest.config.js",
|
|
17
|
-
"lint:typescript": "../../node_modules/.bin/tslint --config ../../tslint.json --project .",
|
|
18
15
|
"lint": "../../node_modules/.bin/tslint --config ../../tslint.json --project .",
|
|
19
|
-
"
|
|
20
|
-
"test": "../../node_modules/.bin/jest --colors --passWithNoTests"
|
|
16
|
+
"lint:typescript": "../../node_modules/.bin/tslint --config ../../tslint.json --project .",
|
|
17
|
+
"test": "../../node_modules/.bin/jest --colors --passWithNoTests",
|
|
18
|
+
"test:watch": "../../node_modules/.bin/jest --colors --passWithNoTests --watch"
|
|
21
19
|
},
|
|
22
20
|
"dependencies": {
|
|
23
|
-
"glob": "^7.1.3"
|
|
21
|
+
"glob": "^7.1.3",
|
|
22
|
+
"micromatch": "^4.0.5",
|
|
23
|
+
"tslib": "^2.3.1"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@types/glob": "^7.1.1"
|
|
26
|
+
"@types/glob": "^7.1.1",
|
|
27
|
+
"@types/micromatch": "^2.3.31",
|
|
28
|
+
"@types/node": "^14.0.12"
|
|
27
29
|
},
|
|
28
30
|
"publishConfig": {
|
|
29
31
|
"access": "public"
|
|
30
32
|
},
|
|
31
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "2af87920f7f0788e5be9bb4629021e3db8e68a45"
|
|
32
34
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright 2022 Palantir Technologies, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the MIT license. See LICENSE file in the project root for details.
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
// tslint:disable:no-console
|
|
8
|
+
|
|
9
|
+
import { Table } from "./Table";
|
|
10
|
+
|
|
11
|
+
export class AggregateTiming {
|
|
12
|
+
#data = new Map<string, { count: number; total: bigint }>();
|
|
13
|
+
#last: { count: number; total: bigint } | undefined;
|
|
14
|
+
|
|
15
|
+
constructor(private title: string) {}
|
|
16
|
+
|
|
17
|
+
public start(name: string) {
|
|
18
|
+
const time = process.hrtime.bigint();
|
|
19
|
+
if (this.#last) {
|
|
20
|
+
this.#last.total += time;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
let data = this.#data.get(name);
|
|
24
|
+
if (data === undefined) {
|
|
25
|
+
data = { count: 1, total: -time };
|
|
26
|
+
this.#data.set(name, data);
|
|
27
|
+
} else {
|
|
28
|
+
data.total -= time;
|
|
29
|
+
data.count++;
|
|
30
|
+
}
|
|
31
|
+
this.#last = data;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public stop() {
|
|
35
|
+
const time = process.hrtime.bigint();
|
|
36
|
+
if (this.#last) {
|
|
37
|
+
this.#last.total += time;
|
|
38
|
+
this.#last = undefined;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public printResults() {
|
|
43
|
+
const table = new Table<[bigint, string, bigint, bigint]>({
|
|
44
|
+
sortColumn: -1,
|
|
45
|
+
showFooter: true,
|
|
46
|
+
showHeader: true,
|
|
47
|
+
title: this.title,
|
|
48
|
+
columns: [
|
|
49
|
+
{
|
|
50
|
+
header: "Duration",
|
|
51
|
+
type: "bigint",
|
|
52
|
+
renderAs: "nanoseconds",
|
|
53
|
+
footer: { aggregate: "sum" },
|
|
54
|
+
},
|
|
55
|
+
{ header: "Task", type: "string", alignment: "left", footer: "TOTAL" },
|
|
56
|
+
{ header: "Count", type: "bigint", footer: { aggregate: "sum" } },
|
|
57
|
+
{ header: "Avg", type: "bigint", footer: { aggregate: "average" } },
|
|
58
|
+
],
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
for (const [name, value] of this.#data) {
|
|
62
|
+
table.addRow(
|
|
63
|
+
value.total,
|
|
64
|
+
name,
|
|
65
|
+
BigInt(value.count), // fixme this can be a number later
|
|
66
|
+
value.total / BigInt(value.count)
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
table.print();
|
|
70
|
+
}
|
|
71
|
+
}
|