lux-framework
Version:
Build scalable, Node.js-powered REST APIs with almost no code.
45 lines (39 loc) • 902 B
JavaScript
// @flow
import { join } from 'path';
import { rmdir, readdir, unlink } from 'fs';
export default function removeTmpDir(path: string): Promise<void> {
return new Promise((resolve, reject) => {
readdir(path, (err, files) => {
if (err) {
reject(err);
return;
}
resolve(files);
});
}).then(files => (
removeTmpFiles(files.map(name => join(path, name)))
)).then(() => (
new Promise((resolve, reject) => {
rmdir(path, err => {
if (err) {
reject(err);
return;
}
resolve();
});
})
));
}
function removeTmpFiles(paths: Array<string>): Promise<Array<string>> {
return Promise.all(paths.map(path => (
new Promise((resolve, reject) => {
unlink(path, err => {
if (err) {
reject(err);
return;
}
resolve(path);
});
})
)));
}