diff --git a/packages/api/package.json b/packages/api/package.json index 33423c47e..c50faa68e 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -20,7 +20,6 @@ "express-basic-auth": "^1.2.0", "express-fileupload": "^1.2.0", "find-free-port": "^2.0.0", - "find-remove": "^2.0.3", "fs-extra": "^8.1.0", "http": "^0.0.0", "line-reader": "^0.4.0", diff --git a/packages/api/src/utility/cleanDirectory.js b/packages/api/src/utility/cleanDirectory.js index 5e18f97b3..e1e659912 100644 --- a/packages/api/src/utility/cleanDirectory.js +++ b/packages/api/src/utility/cleanDirectory.js @@ -1,11 +1,24 @@ -// const findRemoveSync = require('find-remove'); +const fs = require('fs-extra'); +const path = require('path'); +const ageSeconds = 3600; -function cleanDirectory(directory) { -// findRemoveSync(directory, { -// age: { seconds: 3600 }, -// files: '*.*', -// dir: '*', -// }); +async function cleanDirectory(directory) { + const files = await fs.readdir(directory); + const now = new Date().getTime(); + + for (const file of files) { + const full = path.join(directory, file); + const stat = await fs.stat(full); + const mtime = stat.mtime.getTime(); + const expirationTime = mtime + ageSeconds * 1000; + if (now > expirationTime) { + if (stat.isDirectory()) { + await fs.rmdir(full, { recursive: true }); + } else { + await fs.unlink(full); + } + } + } } module.exports = cleanDirectory; diff --git a/yarn.lock b/yarn.lock index 9e64febb0..e8d6a0e07 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5291,14 +5291,6 @@ find-free-port@^2.0.0: resolved "https://registry.yarnpkg.com/find-free-port/-/find-free-port-2.0.0.tgz#4b22e5f6579eb1a38c41ac6bcb3efed1b6da9b1b" integrity sha1-SyLl9leesaOMQaxryz7+0bbamxs= -find-remove@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/find-remove/-/find-remove-2.0.3.tgz#46e1cb12ca247963bc594c3af4c4878ba2244a79" - integrity sha512-T7v/mSYhz2mv3ZM37BJH6Ny9tudA1qjJtH9N8MAZQKskJ546ciyMjPxsT7N/9OcbpN9+vfxMNHefzLbXOdMrhQ== - dependencies: - fmerge "1.2.0" - rimraf "3.0.2" - find-root@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -5387,11 +5379,6 @@ flux@^3.1.3: fbemitter "^2.0.0" fbjs "^0.8.0" -fmerge@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fmerge/-/fmerge-1.2.0.tgz#36e99d2ae255e3ee1af666b4df780553671cf692" - integrity sha1-NumdKuJV4+4a9ma033gFU2cc9pI= - follow-redirects@1.5.10: version "1.5.10" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" @@ -10697,7 +10684,7 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -rimraf@3.0.2, rimraf@^3.0.0: +rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==