summary refs log tree commit diff
path: root/dist/util/MongoBigInt.js
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-02-13 14:15:59 +0100
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-02-13 14:15:59 +0100
commita44da1024dc39e2d2fef296fc1d4e5894090fce0 (patch)
tree0e9338baa9e64e8a8841913d18eddc5a2bb1a333 /dist/util/MongoBigInt.js
parent:sparkles: mongoose Schemas (diff)
downloadserver-a44da1024dc39e2d2fef296fc1d4e5894090fce0.tar.xz
:zap: Config and database update
Diffstat (limited to 'dist/util/MongoBigInt.js')
-rw-r--r--dist/util/MongoBigInt.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/dist/util/MongoBigInt.js b/dist/util/MongoBigInt.js
new file mode 100644

index 00000000..7dae718e --- /dev/null +++ b/dist/util/MongoBigInt.js
@@ -0,0 +1,70 @@ +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const mongoose_1 = __importDefault(require("mongoose")); +class LongSchema extends mongoose_1.default.SchemaType { + constructor() { + super(...arguments); + this.$conditionalHandlers = { + $lt: this.handleSingle, + $lte: this.handleSingle, + $gt: this.handleSingle, + $gte: this.handleSingle, + $ne: this.handleSingle, + $in: this.handleArray, + $nin: this.handleArray, + $mod: this.handleArray, + $all: this.handleArray, + $bitsAnySet: this.handleArray, + $bitsAllSet: this.handleArray, + }; + } + handleSingle(val) { + return this.cast(val); + } + handleArray(val) { + var self = this; + return val.map(function (m) { + return self.cast(m); + }); + } + checkRequired(val) { + return null != val; + } + cast(val, scope, init) { + if (null === val) + return val; + if ("" === val) + return null; + if (val instanceof mongoose_1.default.mongo.Long) + return BigInt(val.toString()); + if (val instanceof Number || "number" == typeof val) + return BigInt(val); + if (!Array.isArray(val) && val.toString) + return BigInt(val.toString()); + // @ts-ignore + throw new SchemaType.CastError("Long", val); + } + castForQuery($conditional, value) { + var handler; + if (2 === arguments.length) { + // @ts-ignore + handler = this.$conditionalHandlers[$conditional]; + if (!handler) { + throw new Error("Can't use " + $conditional + " with Long."); + } + return handler.call(this, value); + } + else { + return this.cast($conditional); + } + } +} +LongSchema.cast = mongoose_1.default.SchemaType.cast; +LongSchema.set = mongoose_1.default.SchemaType.set; +LongSchema.get = mongoose_1.default.SchemaType.get; +mongoose_1.default.Schema.Types.Long = LongSchema; +mongoose_1.default.Types.Long = mongoose_1.default.mongo.Long; +//# sourceMappingURL=MongoBigInt.js.map \ No newline at end of file