| Linux premium331.web-hosting.com 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64 Path : /home/livedhms/lmgt/node_modules/mongoose/lib/cast/ |
| Current File : //home/livedhms/lmgt/node_modules/mongoose/lib/cast/int32.js |
'use strict';
const isBsonType = require('../helpers/isBsonType');
const assert = require('assert');
/**
* Given a value, cast it to a Int32, or throw an `Error` if the value
* cannot be casted. `null` and `undefined` are considered valid.
*
* @param {any} value
* @return {number}
* @throws {Error} if `value` does not represent an integer, or is outside the bounds of an 32-bit integer.
* @api private
*/
module.exports = function castInt32(val) {
if (val == null) {
return val;
}
if (val === '') {
return null;
}
const coercedVal = isBsonType(val, 'Long') ? val.toNumber() : Number(val);
const INT32_MAX = 0x7FFFFFFF;
const INT32_MIN = -0x80000000;
if (coercedVal === (coercedVal | 0) &&
coercedVal >= INT32_MIN &&
coercedVal <= INT32_MAX
) {
return coercedVal;
}
assert.ok(false);
};