-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.ts
40 lines (36 loc) · 832 Bytes
/
utils.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { tmpdir } from 'os';
import { join } from 'path';
import { mkdir, readFileSync } from 'fs';
export function silenceLog() {
const old = console.log;
console.log = () => {
return;
};
return () => {
console.log = old;
};
}
export async function makeDirectory(path: string): Promise<string> {
return await new Promise((resolve, reject) => {
mkdir(path, (err) => {
if (err) {
reject(err);
}
resolve(path);
});
});
}
export async function makeTmpDirectory(): Promise<string> {
const dirname = join(
tmpdir(),
'TMP' +
Math.random()
.toString(36)
.replace(/[^a-z0-9]+/g, '')
.substr(2, 12),
);
return makeDirectory(dirname);
}
export function loadJson(filename: string) {
return JSON.parse(readFileSync(filename, 'utf-8'));
}