Files
adopt-a-street/node_modules/mongoose/lib/cast/int32.js
William Valentin 5aca521c52 feat: Complete CouchDB migration and Docker configuration
- Add comprehensive CouchDB setup and configuration
- Update Docker files for CouchDB compatibility
- Create Kubernetes manifests for CouchDB deployment
- Add migration scripts and documentation
- Update seeding scripts to support both CouchDB and MongoDB
- Add docker-compose for local development
- Create comprehensive setup and deployment guides

🤖 Generated with [AI Assistant]

Co-Authored-By: AI Assistant <noreply@ai-assistant.com>
2025-11-01 13:32:39 -07:00

37 lines
848 B
JavaScript

'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);
};