summary refs log tree commit diff
path: root/dist/util/Database.js
diff options
context:
space:
mode:
Diffstat (limited to 'dist/util/Database.js')
-rw-r--r--dist/util/Database.js75
1 files changed, 0 insertions, 75 deletions
diff --git a/dist/util/Database.js b/dist/util/Database.js
deleted file mode 100644

index 01b1b57c..00000000 --- a/dist/util/Database.js +++ /dev/null
@@ -1,75 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MongooseCache = void 0; -require("./MongoBigInt"); -const mongoose_1 = __importDefault(require("mongoose")); -const mongodb_1 = require("mongodb"); -const events_1 = __importDefault(require("events")); -const uri = process.env.MONGO_URL || "mongodb://localhost:27017/fosscord?readPreference=secondaryPreferred"; -const connection = mongoose_1.default.createConnection(uri, { autoIndex: true }); -exports.default = connection; -class MongooseCache extends events_1.default { - constructor(collection, pipeline, opts) { - super(); - this.collection = collection; - this.pipeline = pipeline; - this.opts = opts; - this.change = (doc) => { - // @ts-ignore - if (doc.fullDocument) { - // @ts-ignore - if (!this.opts.onlyEvents) - this.data = doc.fullDocument; - } - switch (doc.operationType) { - case "dropDatabase": - return this.destroy(); - case "drop": - return this.destroy(); - case "delete": - return this.emit("delete", doc.documentKey._id.toHexString()); - case "insert": - return this.emit("insert", doc.fullDocument); - case "update": - case "replace": - return this.emit("change", doc.fullDocument); - case "invalidate": - return this.destroy(); - default: - return; - } - }; - } - async init() { - this.stream = this.collection.watch(this.pipeline, { fullDocument: "updateLookup" }); - this.stream.on("change", this.change); - this.stream.on("close", this.destroy); - this.stream.on("error", console.error); - if (!this.opts.onlyEvents) { - const arr = await this.collection.aggregate(this.pipeline).toArray(); - this.data = arr.length ? arr[0] : arr; - } - } - convertResult(obj) { - if (obj instanceof mongodb_1.Long) - return BigInt(obj.toString()); - if (typeof obj === "object") { - Object.keys(obj).forEach((key) => { - obj[key] = this.convertResult(obj[key]); - }); - } - return obj; - } - destroy() { - this.stream.off("change", this.change); - this.emit("close"); - if (this.stream.isClosed()) - return; - return this.stream.close(); - } -} -exports.MongooseCache = MongooseCache; -//# sourceMappingURL=Database.js.map \ No newline at end of file