1 | 'use strict';
|
2 |
|
3 | const fs = require('fs-extra');
|
4 | const exitHook = require('async-exit-hook');
|
5 | const {uniq} = require('lodash');
|
6 | const debug = require('debug')('critical:gc');
|
7 |
|
8 | let files = [];
|
9 |
|
10 | function cleanup() {
|
11 | files = uniq(files);
|
12 |
|
13 | if (files.length > 0) {
|
14 | debug('cleanup triggered. Unlinking temp files', files);
|
15 | }
|
16 |
|
17 | return Promise.all(files.map(file => {
|
18 | if (fs.existsSync(file)) {
|
19 | return fs.unlink(file);
|
20 | }
|
21 |
|
22 | return Promise.resolve();
|
23 | })).then(() => {
|
24 | files = [];
|
25 | });
|
26 | }
|
27 |
|
28 | exitHook(done => cleanup().then(() => done()));
|
29 | process.on('cleanup', cleanup);
|
30 |
|
31 | module.exports.cleanup = cleanup;
|
32 | module.exports.addFile = file => {
|
33 | files.push(file);
|
34 | };
|