1
1
mirror of https://github.com/leon-ai/leon.git synced 2024-12-28 11:13:14 +03:00
leon/scripts/clean-test-dbs.js

44 lines
1.3 KiB
JavaScript
Raw Normal View History

import fs from 'node:fs'
import { join } from 'node:path'
import { LogHelper } from '@/helpers/log-helper'
import { SkillDomainHelper } from '@/helpers/skill-domain-helper'
/**
* This script delete test DB files if they exist
*/
2022-09-03 14:12:41 +03:00
export default () =>
new Promise(async (resolve, reject) => {
LogHelper.info('Cleaning test DB files...')
2022-09-03 14:12:41 +03:00
const skillDomains = await SkillDomainHelper.getSkillDomains()
2022-09-03 14:12:41 +03:00
for (const currentDomain of skillDomains.values()) {
2022-09-03 14:12:41 +03:00
const skillKeys = Object.keys(currentDomain.skills)
for (let j = 0; j < skillKeys.length; j += 1) {
const currentSkill = currentDomain.skills[skillKeys[j]]
try {
// TODO: handle case where the memory folder contain multiple DB nodes
const dbFolder = join(currentSkill.path, 'memory')
const dbTestFiles = fs
.readdirSync(dbFolder)
.filter((entity) => entity.indexOf('.spec.json') !== -1)
if (dbTestFiles.length > 0) {
LogHelper.info(`Deleting ${dbTestFiles[0]}...`)
2022-09-03 14:12:41 +03:00
fs.unlinkSync(join(dbFolder, dbTestFiles[0]))
LogHelper.success(`${dbTestFiles[0]} deleted`)
2022-09-03 14:12:41 +03:00
}
} catch (e) {
LogHelper.error(`Failed to clean: "${skillKeys[j]}" test DB file`)
2022-09-03 14:12:41 +03:00
reject(e)
}
}
}
LogHelper.success('Cleaning done')
2022-09-03 14:12:41 +03:00
resolve()
})