"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