Skip to content

Commit c1aa705

Browse files
committed
Logs
1 parent 65587ca commit c1aa705

File tree

7 files changed

+52
-26
lines changed

7 files changed

+52
-26
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"@actions/core": "2.0.1",
2424
"@actions/github": "6.0.1",
2525
"nano-spawn": "2.0.0",
26+
"node-style-text": "^2.1.2",
2627
"pretty-ms": "9.3.0"
2728
},
2829
"devDependencies": {

src/execute-command.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import prettyMilliseconds from "pretty-ms";
21
import { runPrettier } from "./run-prettier.ts";
32
import * as logger from "./logger.ts";
43
import { installPrettier } from "./install-prettier.ts";

src/install-prettier.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,22 @@ import path from "node:path";
22
import fs from "node:fs/promises";
33
import assert from "node:assert/strict";
44
import spawn from "nano-spawn";
5-
import prettyMilliseconds from "pretty-ms";
65
import {
76
type PrettierVersion,
87
PRETTIER_PACKAGE_TYPE_PULL_REQUEST,
98
} from "./parse-command.ts";
109
import { writeFile, clearDirectory } from "./utilities.ts";
10+
import { Timing } from "./timing.ts";
1111

1212
export type InstalledPrettier = Awaited<ReturnType<typeof installPrettier>>;
1313

1414
export async function installPrettier(
1515
version: PrettierVersion,
1616
{ cwd }: { cwd: string },
1717
) {
18-
const startTime = process.hrtime.bigint();
19-
console.log(`Installing Prettier(${version.kind}) '${version.raw}' ...`);
18+
const timing = new Timing(
19+
`Install Prettier[${version.kind}] '${version.raw}'`,
20+
);
2021
const directory = await clearDirectory(
2122
path.join(cwd, `${version.kind}-prettier`),
2223
);
@@ -40,9 +41,8 @@ export async function installPrettier(
4041
]);
4142
assert.ok(typeof installedVersion === "string");
4243

43-
console.log(
44-
`Prettier(${version.kind}) '${version.raw}' installed in ${prettyMilliseconds((process.hrtime.bigint() - startTime) / 1_000_000n)}.`,
45-
);
44+
timing.end();
45+
4646
return {
4747
bin: prettierBinary,
4848
version: version,

src/repositories.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import prettyMilliseconds from "pretty-ms";
21
import spawn from "nano-spawn";
32
import path from "node:path";
43
import assert from "node:assert/strict";
54
import { repositoriesDirectory } from "./constants.ts";
65
import { clearDirectory, getCommitHash } from "./utilities.ts";
76
import rawRepositories from "../repositories.json" with { type: "json" };
7+
import { Timing } from "./timing.ts";
88

99
type RawRepository = {
1010
repository: string;
@@ -80,8 +80,7 @@ export async function cloneRepository(repository: Repository) {
8080
// No op
8181
}
8282

83-
const startTime = process.hrtime.bigint();
84-
console.log(`Cloning repository '${repository.repository}' ...`);
83+
const timing = new Timing(`Cloning repository '${repository.repository}'`);
8584

8685
await clearDirectory(directory);
8786
await spawn("git", ["init"], { cwd: directory });
@@ -101,7 +100,5 @@ export async function cloneRepository(repository: Repository) {
101100

102101
assert.equal(await getCommitHash(directory), commitHash);
103102

104-
console.log(
105-
`Repository '${repository.repository}' cloned in ${prettyMilliseconds((process.hrtime.bigint() - startTime) / 1_000_000n)}.`,
106-
);
103+
timing.end();
107104
}

src/run-prettier.ts

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import prettyMilliseconds from "pretty-ms";
21
import path from "node:path";
32
import spawn, { type SubprocessError } from "nano-spawn";
43
import { type Repository } from "./repositories.ts";
54
import { type InstalledPrettier } from "./install-prettier.ts";
65
import { prepareRepository } from "./prepare-repository.ts";
76
import { commitChanges } from "./utilities.ts";
7+
import { Timing } from "./timing.ts";
88

99
async function runPrettierWithVersion({
1010
cwd,
@@ -17,11 +17,9 @@ async function runPrettierWithVersion({
1717
repository: Repository;
1818
reset: () => Promise<void>;
1919
}) {
20-
const startTime = process.hrtime.bigint();
21-
console.log(
22-
`Running Prettier(${prettier.version.kind}) on repository '${repository.repository}' ...`,
20+
const timing = new Timing(
21+
`Run Prettier(${prettier.version.kind}) on repository '${repository.repository}'`,
2322
);
24-
2523
await reset();
2624

2725
const args = [prettier.bin, "--write", "--no-color", ...repository.glob];
@@ -50,9 +48,7 @@ async function runPrettierWithVersion({
5048

5149
await spawn("git", ["branch", prettier.version.kind], { cwd });
5250

53-
console.log(
54-
`Running Prettier(${prettier.version.kind}) on repository '${repository.repository}' finished in ${prettyMilliseconds((process.hrtime.bigint() - startTime) / 1_000_000n)}.`,
55-
);
51+
timing.end();
5652
return commitHash;
5753
}
5854

@@ -78,8 +74,9 @@ export async function runPrettier(
7874
original: InstalledPrettier;
7975
},
8076
) {
81-
const startTime = process.hrtime.bigint();
82-
console.log(`Runing Prettier on repository '${repository.repository}' ...`);
77+
const timing = new Timing(
78+
`Run Prettier on repository '${repository.repository}'`,
79+
);
8380
const directory = path.join(cwd, `repositories/${repository.directoryName}`);
8481

8582
const { reset } = await prepareRepository(directory, repository);
@@ -112,8 +109,6 @@ export async function runPrettier(
112109
{ cwd: directory },
113110
);
114111

115-
console.log(
116-
`Run Prettier on repository '${repository.repository}' finished in ${prettyMilliseconds((process.hrtime.bigint() - startTime) / 1_000_000n)}.`,
117-
);
112+
timing.end();
118113
return stdout;
119114
}

src/timing.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import prettyMilliseconds from "pretty-ms";
2+
import styleText from "node-style-text";
3+
4+
const START_PREFIX = styleText.bgGray("[START]");
5+
const END_PREFIX = styleText.bgGreen("[ END ]");
6+
7+
class Timing {
8+
#message;
9+
#startMark: PerformanceMark | undefined;
10+
11+
constructor(message: string) {
12+
this.#message = message;
13+
this.#startMark = performance.mark("start");
14+
console.log(`${START_PREFIX}: ${message}`);
15+
}
16+
17+
end(message?: string) {
18+
const { duration } = performance.measure(this.#message, this.#startMark);
19+
console.log(
20+
(message ?? `${END_PREFIX}: ${this.#message}`) +
21+
` (${styleText.blue.underline(prettyMilliseconds(duration))})`,
22+
);
23+
}
24+
}
25+
26+
export { Timing };

yarn.lock

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3208,6 +3208,13 @@ __metadata:
32083208
languageName: node
32093209
linkType: hard
32103210

3211+
"node-style-text@npm:^2.1.2":
3212+
version: 2.1.2
3213+
resolution: "node-style-text@npm:2.1.2"
3214+
checksum: 10c0/25eed9636e9d9df05901a85fb2a82fda6a42a897f167762539de68c476924340e908b1dfeec7c30f01741a0820c5d568c6da6ef1a82e0b00411f27b936798dad
3215+
languageName: node
3216+
linkType: hard
3217+
32113218
"nopt@npm:^8.0.0":
32123219
version: 8.1.0
32133220
resolution: "nopt@npm:8.1.0"
@@ -3497,6 +3504,7 @@ __metadata:
34973504
eslint-config-prettier: "npm:10.1.8"
34983505
globals: "npm:16.5.0"
34993506
nano-spawn: "npm:2.0.0"
3507+
node-style-text: "npm:^2.1.2"
35003508
npm-run-all: "npm:4.1.5"
35013509
outdent: "npm:0.8.0"
35023510
prettier: "npm:3.7.4"

0 commit comments

Comments
 (0)