|
|
const Datastore = require('@seald-io/nedb'); |
|
|
const path = require('path'); |
|
|
|
|
|
const dbDir = path.join(__dirname, 'data'); |
|
|
const fs = require('fs'); |
|
|
if (!fs.existsSync(dbDir)) fs.mkdirSync(dbDir, { recursive: true }); |
|
|
|
|
|
const db = { |
|
|
users: new Datastore({ filename: path.join(dbDir, 'users.db'), autoload: true }), |
|
|
sessions: new Datastore({ filename: path.join(dbDir, 'sessions.db'), autoload: true }), |
|
|
messages: new Datastore({ filename: path.join(dbDir, 'messages.db'), autoload: true }), |
|
|
announcements: new Datastore({ filename: path.join(dbDir, 'announcements.db'), autoload: true }), |
|
|
apikeys: new Datastore({ filename: path.join(dbDir, 'apikeys.db'), autoload: true }) |
|
|
}; |
|
|
|
|
|
|
|
|
db.users.ensureIndex({ fieldName: 'email', unique: true }); |
|
|
db.users.ensureIndex({ fieldName: 'githubId', unique: true, sparse: true }); |
|
|
db.apikeys.ensureIndex({ fieldName: 'key', unique: true }); |
|
|
|
|
|
const connectDB = async () => { |
|
|
console.log('Neural Archive: Local NeDB Interface ACTIVE ✅'); |
|
|
}; |
|
|
|
|
|
module.exports = connectDB; |
|
|
module.exports.db = db; |