diff options
Diffstat (limited to 'src/util/MongoBigInt.ts')
-rw-r--r-- | src/util/MongoBigInt.ts | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/src/util/MongoBigInt.ts b/src/util/MongoBigInt.ts deleted file mode 100644 index fc451925..00000000 --- a/src/util/MongoBigInt.ts +++ /dev/null @@ -1,82 +0,0 @@ -import mongoose from "mongoose"; - -class LongSchema extends mongoose.SchemaType { - public $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: any) { - return this.cast(val, null, null, "handle"); - } - - handleArray(val: any) { - var self = this; - return val.map(function (m: any) { - return self.cast(m, null, null, "handle"); - }); - } - - checkRequired(val: any) { - return null != val; - } - - cast(val: any, scope?: any, init?: any, type?: string) { - if (null === val) return val; - if ("" === val) return null; - if (typeof val === "bigint") { - return mongoose.mongo.Long.fromString(val.toString()); - } - - if (val instanceof mongoose.mongo.Long) { - if (type === "handle" || init == false) return val; - 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: string, value: any) { - 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, null, null, "query"); - } - } -} - -LongSchema.cast = mongoose.SchemaType.cast; -LongSchema.set = mongoose.SchemaType.set; -LongSchema.get = mongoose.SchemaType.get; - -declare module "mongoose" { - namespace Types { - class Long extends mongoose.mongo.Long {} - } - namespace Schema { - namespace Types { - class Long extends LongSchema {} - } - } -} - -mongoose.Schema.Types.Long = LongSchema; -mongoose.Types.Long = mongoose.mongo.Long; |