qinglong/back/loaders/db.ts
2021-11-08 22:47:46 +08:00

49 lines
1.2 KiB
TypeScript

import DataStore from 'nedb';
import config from '../config';
import Logger from './logger';
interface Dbs {
cronDb: DataStore;
dependenceDb: DataStore;
envDb: DataStore;
appDb: DataStore;
authDb: DataStore;
}
const db: Dbs = {} as any;
export default () => {
db.cronDb = new DataStore({ filename: config.cronDbFile });
db.dependenceDb = new DataStore({ filename: config.dependenceDbFile });
db.envDb = new DataStore({ filename: config.envDbFile });
db.appDb = new DataStore({ filename: config.appDbFile });
db.authDb = new DataStore({ filename: config.authDbFile });
// compaction data file
db.cronDb.persistence.compactDatafile();
db.envDb.persistence.compactDatafile();
db.dependenceDb.persistence.compactDatafile();
db.appDb.persistence.compactDatafile();
db.authDb.persistence.compactDatafile();
db.cronDb.loadDatabase((err) => {
if (err) throw err;
});
db.envDb.loadDatabase((err) => {
if (err) throw err;
});
db.dependenceDb.loadDatabase((err) => {
if (err) throw err;
});
db.appDb.loadDatabase((err) => {
if (err) throw err;
});
db.authDb.loadDatabase((err) => {
if (err) throw err;
});
Logger.info('✌️ DB loaded');
};
export const dbs: Dbs = db;