UNPKG

724 BJavaScriptView Raw
1'use strict';
2
3const fs = require('fs-extra');
4const exitHook = require('async-exit-hook');
5const {uniq} = require('lodash');
6const debug = require('debug')('critical:gc');
7
8let files = [];
9
10function 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
28exitHook(done => cleanup().then(() => done()));
29process.on('cleanup', cleanup);
30
31module.exports.cleanup = cleanup;
32module.exports.addFile = file => {
33 files.push(file);
34};