-
-
Notifications
You must be signed in to change notification settings - Fork 34
/
validate.ts
73 lines (58 loc) · 2.35 KB
/
validate.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import fs from 'fs';
import { hashesConst, readmePathConst, coveragePathConst } from './constants';
import { getCoveragePath, getReadmePath } from './helpers';
import { logger } from './logger';
const { logInfo } = logger();
export const doesReadmeFileExist = (readmePath: string): Promise<boolean | string> => {
return new Promise((resolve, reject) => {
const doesItExist = fs.existsSync(getReadmePath(readmePath));
if (doesItExist) return resolve(true);
return reject('Readme file does not exist');
});
};
export const doesCoverageFileExist = (coveragePath: string): Promise<boolean | string> => {
return new Promise((resolve, reject) => {
const currentCoveragePath = getCoveragePath(coveragePath);
const doesItExist = fs.existsSync(currentCoveragePath);
if (doesItExist) return resolve(true);
return reject(`Coverage file does not exist in ${currentCoveragePath}`);
});
};
export const doesCoverageHashesExist = (coveragePath: string): Promise<boolean | string> => {
return new Promise((resolve, reject) => {
const coverageFile = fs.readFileSync(getCoveragePath(coveragePath));
hashesConst.coverage.forEach((hash) => {
if (coverageFile.includes(hash.key)) resolve(true);
});
return reject('Coverage file does contain the needed hashes');
});
};
export const doesReadmeHashExist = (readmePath: string): Promise<boolean | string> => {
return new Promise((resolve, reject) => {
const readmeFile = fs.readFileSync(getReadmePath(readmePath));
hashesConst.coverage.forEach((hash) => {
if (readmeFile.includes(`![${hash.value}]`)) resolve(true);
});
return reject('Readme does not contain the needed hashes');
});
};
export const checkConfig = (): Promise<void> => {
logInfo('Info: 1. Config check process started');
return doesReadmeFileExist(readmePathConst)
.then(() => {
logInfo('- Readme file exists... ✔️.');
})
.then(() => doesCoverageFileExist(coveragePathConst))
.then(() => {
logInfo('- Coverage file exists... ✔️.');
})
.then(() => doesCoverageHashesExist(coveragePathConst))
.then(() => {
logInfo('- Coverage hashes exist... ✔️.');
})
.then(() => doesReadmeHashExist(readmePathConst))
.then(() => {
logInfo('- Readme hashes exist... ✔️.');
})
.then(() => logInfo('Info: 1. Config check process ended'));
};