max versions, remove old node_modules
This commit is contained in:
parent
c10ebe3c98
commit
1b563106fe
|
|
@ -5,6 +5,8 @@ import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, realpathSync,
|
|||
import { dirname, join } from 'path'
|
||||
import { Hype } from '@because/hype'
|
||||
|
||||
const MAX_VERSIONS = 5
|
||||
|
||||
interface FileChangeEvent {
|
||||
hash?: string
|
||||
path: string
|
||||
|
|
@ -294,7 +296,7 @@ router.post('/apps/:app/activate', async c => {
|
|||
// Atomic rename over old symlink/directory
|
||||
renameSync(tempLink, currentLink)
|
||||
|
||||
// Clean up old versions (keep 5 most recent)
|
||||
// Clean up old versions
|
||||
try {
|
||||
const entries = readdirSync(appDir, { withFileTypes: true })
|
||||
|
||||
|
|
@ -305,13 +307,24 @@ router.post('/apps/:app/activate', async c => {
|
|||
.sort()
|
||||
.reverse() // Newest first
|
||||
|
||||
// Keep 5 most recent, delete the rest
|
||||
const toDelete = versionDirs.slice(5)
|
||||
// Keep most recent, delete the rest
|
||||
const toDelete = versionDirs.slice(MAX_VERSIONS)
|
||||
for (const dir of toDelete) {
|
||||
const dirPath = join(appDir, dir)
|
||||
rmSync(dirPath, { recursive: true, force: true })
|
||||
console.log(`Cleaned up old version: ${dir}`)
|
||||
}
|
||||
|
||||
// Delete node_modules from old kept versions (not the active one)
|
||||
const toKeep = versionDirs.slice(0, MAX_VERSIONS)
|
||||
for (const dir of toKeep) {
|
||||
if (dir === version) continue
|
||||
const nm = join(appDir, dir, 'node_modules')
|
||||
if (existsSync(nm)) {
|
||||
rmSync(nm, { recursive: true, force: true })
|
||||
console.log(`Removed node_modules from old version: ${dir}`)
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
// Log but don't fail activation if cleanup fails
|
||||
console.error(`Failed to clean up old versions: ${e}`)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user