Skip to content

Commit 79690ca

Browse files
committed
Fix writeFile
1 parent 4a89927 commit 79690ca

File tree

6 files changed

+29
-24
lines changed

6 files changed

+29
-24
lines changed

src/artifact.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { DefaultArtifactClient } from "@actions/artifact";
22
import * as github from "@actions/github";
33
import * as path from "path";
4-
import * as fs from "fs";
54
import { getOctokit } from "./octokit.ts";
5+
import { writeFile } from "./utilities.ts";
66

77
export async function uploadToArtifact(
88
texts: string[],
@@ -18,9 +18,11 @@ export async function uploadToArtifact(
1818
text,
1919
}));
2020

21-
for (const { file, text } of filePaths) {
22-
fs.writeFileSync(path.join(GITHUB_WORKSPACE, file), text, "utf-8");
23-
}
21+
await Promise.all(
22+
filePaths.map(({ file, text }) =>
23+
writeFile(path.join(GITHUB_WORKSPACE, file), text),
24+
),
25+
);
2426

2527
const artifactClient = new DefaultArtifactClient();
2628
const artifactName = "reports" + Date.now().toString();

src/execute/index.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ import { runPrettier } from "./run-prettier.ts";
22
import * as logger from "../logger.ts";
33
import { installPrettiers } from "../install-prettier.ts";
44
import { parseCommand } from "../parse-command.ts";
5-
import { createTemporaryDirectory } from "../directory.ts";
5+
import { createTemporaryDirectory, writeFile } from "../utilities.ts";
66
import path from "node:path";
7-
import fs from "node:fs/promises";
87

98
export async function execute(commandString: string) {
109
const { alternative, original, repositories } = parseCommand(commandString);
@@ -33,10 +32,7 @@ export async function execute(commandString: string) {
3332
project,
3433
});
3534

36-
await fs.writeFile(
37-
path.join(`reports/${project.directoryName}.diff`),
38-
diff,
39-
);
35+
await writeFile(path.join(`reports/${project.directoryName}.diff`), diff);
4036

4137
result.push({
4238
project,
Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
11
import path from "node:path";
2-
import fs from "node:fs/promises";
32
import { type Project } from "../projects.ts";
4-
5-
async function readFile(file: string) {
6-
try {
7-
return await fs.readFile(file, "utf8");
8-
} catch {
9-
return "";
10-
}
11-
}
12-
13-
const unique = <T>(array: T[]): T[] => [...new Set(array)];
3+
import { writeFile, readFile, unique } from "../utilities.ts";
144

155
export async function preparePrettierIgnoreFile({
166
directory,
@@ -28,5 +18,5 @@ export async function preparePrettierIgnoreFile({
2818
const content = [...contents, ...project.ignore].join("\n");
2919

3020
const prettierIgnoreFile = path.join(directory, ".prettierignore");
31-
await fs.writeFile(prettierIgnoreFile, content);
21+
await writeFile(prettierIgnoreFile, content);
3222
}

src/install-prettier.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
PrettierPullRequest,
88
PRETTIER_PACKAGE_TYPE_PULL_REQUEST,
99
} from "./parse-command.ts";
10+
import { writeFile } from "./utilities.ts";
1011

1112
export type InstalledPrettier = Awaited<ReturnType<typeof installPrettier>>;
1213

@@ -55,7 +56,7 @@ async function installPrettier(
5556
}
5657

5758
await spawn("yarn", ["init", "-y"], { cwd });
58-
await fs.writeFile(path.join(cwd, "yarn.lock"), "");
59+
await writeFile(path.join(cwd, "yarn.lock"), "");
5960
await spawn("yarn", ["add", `prettier@${version}`], { cwd });
6061

6162
const prettierBinary = path.join(

src/projects.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import path from "node:path";
33
import assert from "node:assert/strict";
44
import Ajv, { DefinedError } from "ajv";
55
import { repositoriesDirectory } from "./constants.ts";
6-
import { clearDirectory } from "./directory.ts";
6+
import { clearDirectory } from "./utilities.ts";
77
import rawProjects from "../projects.json" with { type: "json" };
88

99
type RawProject = {

src/directory.ts renamed to src/utilities.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,19 @@ export async function clearDirectory(directory: string) {
2323
await fs.mkdir(directory, { recursive: true });
2424
return directory;
2525
}
26+
27+
export async function writeFile(file: string, content: string) {
28+
const directory = path.dirname(file);
29+
await fs.mkdir(directory, { recursive: true });
30+
await fs.writeFile(file, content);
31+
}
32+
33+
export async function readFile(file: string) {
34+
try {
35+
return await fs.readFile(file, "utf8");
36+
} catch {
37+
return "";
38+
}
39+
}
40+
41+
export const unique = <T>(array: T[]): T[] => [...new Set(array)];

0 commit comments

Comments
 (0)