summary refs log tree commit diff
path: root/bundle/src/Database.ts
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-14 23:15:19 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-14 23:15:19 +0200
commitb9e545a445dfef8cf42d837df8e653cba7c1a736 (patch)
tree93fb093189bd663b18f35cd91e3a08c63db42411 /bundle/src/Database.ts
parentmove devDependencies to dependencies (diff)
downloadserver-b9e545a445dfef8cf42d837df8e653cba7c1a736.tar.xz
:art: clean up server bundle
Diffstat (limited to 'bundle/src/Database.ts')
-rw-r--r--bundle/src/Database.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/bundle/src/Database.ts b/bundle/src/Database.ts
new file mode 100644

index 00000000..0efd2471 --- /dev/null +++ b/bundle/src/Database.ts
@@ -0,0 +1,43 @@ +import fs from "fs"; +import { MongoMemoryServer } from "mongodb-memory-server"; +import path from "path"; +import exitHook from "async-exit-hook"; +console.log(process.arch, process.platform); +if (process.arch == "ia32") { + Object.defineProperty(process, "arch", { + value: "x64", + }); +} + +export async function setupDatabase() { + const dbPath = path.join(__dirname, "..", "..", "db"); + const dbName = "fosscord"; + const storageEngine = "wiredTiger"; + const port = 27020; + const ip = "127.0.0.1"; + var mongod: MongoMemoryServer; + fs.mkdirSync(dbPath, { recursive: true }); + + exitHook((callback: any) => { + (async () => { + console.log(`Stopping MongoDB ...`); + await mongod.stop(); + console.log(`Stopped MongoDB`); + callback(); + })(); + }); + + console.log(`[Database] starting ...`); + mongod = new MongoMemoryServer({ + instance: { + port, + ip, + dbName, + dbPath, + storageEngine, + auth: false, // by default `mongod` is started with '--noauth', start `mongod` with '--auth' + }, + }); + await mongod.start(); + process.env.MONGO_URL = mongod.getUri(dbName); +}