-
Notifications
You must be signed in to change notification settings - Fork 2
/
build.ts
35 lines (32 loc) · 797 Bytes
/
build.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
import fs from 'fs';
import childProcess from 'child_process';
(async () => {
try {
// Remove current build
await remove('./dist/');
// Build
await exec(
'tsc --build tsconfig.prod.json && tsc-alias -p tsconfig.prod.json',
'./'
);
} catch (err) {
console.error(err);
process.exit(1);
}
})();
function remove(loc: string): Promise<void> {
return fs.promises.rm(loc, { recursive: true, force: true });
}
function exec(cmd: string, loc: string): Promise<void> {
return new Promise((res, rej) => {
return childProcess.exec(cmd, { cwd: loc }, (err, stdout, stderr) => {
if (!!stdout) {
console.log(stdout);
}
if (!!stderr) {
console.error(stderr);
}
return !!err ? rej(err) : res();
});
});
}