8000 refactor: extract fs utilities · argos-ci/argos-javascript@19f2970 · GitHub
[go: up one dir, main page]

Skip to content

Commit 19f2970

Browse files
committed
refactor: extract fs utilities
1 parent ce03297 commit 19f2970

File tree

3 files changed

+33
-31
lines changed

3 files changed

+33
-31
lines changed

packages/playwright/src/reporter.ts

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ import type {
88
import chalk from "chalk";
99
import { readConfig, upload } from "@argos-ci/core";
1010
import type { UploadParameters } from "@argos-ci/core";
11-
import { randomBytes } from "node:crypto";
12-
import { copyFile, mkdir, readdir, writeFile } from "node:fs/promises";
13-
import { tmpdir } from "node:os";
11+
import { copyFile, readdir, writeFile } from "node:fs/promises";
1412
import { dirname, join } from "node:path";
1513
import {
1614
checkIsArgosScreenshot,
@@ -21,34 +19,7 @@ import {
2119
} from "./attachment";
2220
import { getMetadataFromTestCase } from "./metadata";
2321
import { debug } from "./debug";
24-
25-
const createDirectoryPromises = new Map<string, Promise<void>>();
26-
27-
/**
28-
* Create a directory if it doesn't exist.
29-
*/
30-
async function createDirectory(pathname: string) {
31-
let promise = createDirectoryPromises.get(pathname);
32-
if (promise) {
33-
return promise;
34-
}
35-
36-
promise = mkdir(pathname, { recursive: true }).then(() => {});
37-
createDirectoryPromises.set(pathname, promise);
38-
return promise;
39-
}
40-
41-
/**
42-
* Create temporary directory.
43-
*/
44-
async function createTemporaryDirectory() {
45-
debug("Creating temporary directory");
46-
const osTmpDirectory = tmpdir();
47-
const path = join(osTmpDirectory, "argos." + randomBytes(16).toString("hex"));
48-
await createDirectory(path);
49-
debug(`Temporary directory created: ${path}`);
50-
return path;
51-
}
22+
import { createDirectory, createTemporaryDirectory } from "@argos-ci/util";
5223

5324
/**
5425
* Dynamic build name.

packages/util/src/fs.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { randomBytes } from "node:crypto";
2+
import { mkdir } from "node:fs/promises";
3+
import { tmpdir } from "node:os";
4+
import { join } from "node:path";
5+
6+
const createDirectoryPromises = new Map<string, Promise<void>>();
7+
8+
/**
9+
* Create a directory if it doesn't exist.
10+
*/
11+
export async function createDirectory(pathname: string) {
12+
let promise = createDirectoryPromises.get(pathname);
13+
if (promise) {
14+
return promise;
15+
}
16+
17+
promise = mkdir(pathname, { recursive: true }).then(() => {});
18+
createDirectoryPromises.set(pathname, promise);
19+
return promise;
20+
}
21+
22+
/**
23+
* Create temporary directory.
24+
*/
25+
export async function createTemporaryDirectory() {
26+
const osTmpDirectory = tmpdir();
27+
const path = join(osTmpDirectory, "argos." + randomBytes(16).toString("hex"));
28+
await createDirectory(path);
29+
return path;
30+
}

packages/util/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export * from "./fs";
12
export * from "./git";
23
export * from "./introspection";
34
export * from "./metadata";

0 commit comments

Comments
 (0)
0