aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Isom <[email protected]>2021-11-19 12:22:27 -0500
committerMax Isom <[email protected]>2021-11-19 12:22:27 -0500
commit34e45d6273463e232168c2f5e273728d594e4d77 (patch)
tree4db9517b3bed9b07bbde16ed6e08aa6b50d93c5d /src
parentf5149dfaba64c62f0a9ea6deab600b3d4d9b0f39 (diff)
downloadmuse-34e45d6273463e232168c2f5e273728d594e4d77.tar.xz
muse-34e45d6273463e232168c2f5e273728d594e4d77.zip
Add .removeOrphans()
Diffstat (limited to 'src')
-rw-r--r--src/services/file-cache.ts14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/services/file-cache.ts b/src/services/file-cache.ts
index 0ecf279..6d9c23f 100644
--- a/src/services/file-cache.ts
+++ b/src/services/file-cache.ts
@@ -1,10 +1,10 @@
+import {promises as fs, createWriteStream} from 'fs';
+import path from 'path';
import {inject, injectable} from 'inversify';
import sequelize from 'sequelize';
import {FileCache} from '../models/index.js';
import {TYPES} from '../types.js';
import Config from './config.js';
-import {promises as fs, createWriteStream} from 'fs';
-import path from 'path';
@injectable()
export default class FileCacheProvider {
@@ -104,6 +104,14 @@ export default class FileCacheProvider {
}
private async removeOrphans() {
- // TODO
+ for await (const dirent of await fs.opendir(this.config.CACHE_DIR)) {
+ if (dirent.isFile()) {
+ const model = await FileCache.findByPk(dirent.name);
+
+ if (!model) {
+ await fs.unlink(path.join(this.config.CACHE_DIR, dirent.name));
+ }
+ }
+ }
}
}