@depup/mongoose 9.1.3-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +22 -0
- package/README.md +397 -0
- package/SECURITY.md +1 -0
- package/eslint.config.mjs +198 -0
- package/index.js +64 -0
- package/lib/aggregate.js +1189 -0
- package/lib/cast/bigint.js +46 -0
- package/lib/cast/boolean.js +32 -0
- package/lib/cast/date.js +41 -0
- package/lib/cast/decimal128.js +39 -0
- package/lib/cast/double.js +50 -0
- package/lib/cast/int32.js +36 -0
- package/lib/cast/number.js +42 -0
- package/lib/cast/objectid.js +29 -0
- package/lib/cast/string.js +37 -0
- package/lib/cast/uuid.js +35 -0
- package/lib/cast.js +436 -0
- package/lib/collection.js +321 -0
- package/lib/connection.js +1855 -0
- package/lib/connectionState.js +26 -0
- package/lib/constants.js +73 -0
- package/lib/cursor/aggregationCursor.js +466 -0
- package/lib/cursor/changeStream.js +198 -0
- package/lib/cursor/queryCursor.js +622 -0
- package/lib/document.js +5521 -0
- package/lib/driver.js +15 -0
- package/lib/drivers/SPEC.md +4 -0
- package/lib/drivers/node-mongodb-native/bulkWriteResult.js +5 -0
- package/lib/drivers/node-mongodb-native/collection.js +393 -0
- package/lib/drivers/node-mongodb-native/connection.js +506 -0
- package/lib/drivers/node-mongodb-native/index.js +10 -0
- package/lib/error/browserMissingSchema.js +29 -0
- package/lib/error/bulkSaveIncompleteError.js +44 -0
- package/lib/error/bulkWriteError.js +41 -0
- package/lib/error/cast.js +158 -0
- package/lib/error/createCollectionsError.js +26 -0
- package/lib/error/divergentArray.js +40 -0
- package/lib/error/eachAsyncMultiError.js +41 -0
- package/lib/error/index.js +237 -0
- package/lib/error/invalidSchemaOption.js +32 -0
- package/lib/error/messages.js +47 -0
- package/lib/error/missingSchema.js +33 -0
- package/lib/error/mongooseError.js +13 -0
- package/lib/error/notFound.js +47 -0
- package/lib/error/objectExpected.js +31 -0
- package/lib/error/objectParameter.js +31 -0
- package/lib/error/overwriteModel.js +31 -0
- package/lib/error/parallelSave.js +33 -0
- package/lib/error/parallelValidate.js +33 -0
- package/lib/error/serverSelection.js +62 -0
- package/lib/error/setOptionError.js +103 -0
- package/lib/error/strict.js +35 -0
- package/lib/error/strictPopulate.js +31 -0
- package/lib/error/syncIndexes.js +30 -0
- package/lib/error/validation.js +97 -0
- package/lib/error/validator.js +100 -0
- package/lib/error/version.js +38 -0
- package/lib/helpers/aggregate/prepareDiscriminatorPipeline.js +39 -0
- package/lib/helpers/aggregate/stringifyFunctionOperators.js +50 -0
- package/lib/helpers/arrayDepth.js +33 -0
- package/lib/helpers/clone.js +204 -0
- package/lib/helpers/common.js +127 -0
- package/lib/helpers/createJSONSchemaTypeDefinition.js +24 -0
- package/lib/helpers/cursor/eachAsync.js +225 -0
- package/lib/helpers/discriminator/applyEmbeddedDiscriminators.js +36 -0
- package/lib/helpers/discriminator/areDiscriminatorValuesEqual.js +16 -0
- package/lib/helpers/discriminator/checkEmbeddedDiscriminatorKeyProjection.js +12 -0
- package/lib/helpers/discriminator/getConstructor.js +29 -0
- package/lib/helpers/discriminator/getDiscriminatorByValue.js +28 -0
- package/lib/helpers/discriminator/getSchemaDiscriminatorByValue.js +27 -0
- package/lib/helpers/discriminator/mergeDiscriminatorSchema.js +91 -0
- package/lib/helpers/document/applyDefaults.js +132 -0
- package/lib/helpers/document/applyTimestamps.js +106 -0
- package/lib/helpers/document/applyVirtuals.js +147 -0
- package/lib/helpers/document/cleanModifiedSubpaths.js +45 -0
- package/lib/helpers/document/compile.js +238 -0
- package/lib/helpers/document/getDeepestSubdocumentForPath.js +38 -0
- package/lib/helpers/document/getEmbeddedDiscriminatorPath.js +53 -0
- package/lib/helpers/document/handleSpreadDoc.js +35 -0
- package/lib/helpers/each.js +25 -0
- package/lib/helpers/error/combinePathErrors.js +22 -0
- package/lib/helpers/firstKey.js +8 -0
- package/lib/helpers/get.js +65 -0
- package/lib/helpers/getConstructorName.js +16 -0
- package/lib/helpers/getDefaultBulkwriteResult.js +18 -0
- package/lib/helpers/getFunctionName.js +10 -0
- package/lib/helpers/immediate.js +16 -0
- package/lib/helpers/indexes/applySchemaCollation.js +13 -0
- package/lib/helpers/indexes/decorateDiscriminatorIndexOptions.js +14 -0
- package/lib/helpers/indexes/getRelatedIndexes.js +63 -0
- package/lib/helpers/indexes/isDefaultIdIndex.js +18 -0
- package/lib/helpers/indexes/isIndexEqual.js +95 -0
- package/lib/helpers/indexes/isIndexSpecEqual.js +32 -0
- package/lib/helpers/indexes/isTextIndex.js +16 -0
- package/lib/helpers/indexes/isTimeseriesIndex.js +16 -0
- package/lib/helpers/isAsyncFunction.js +9 -0
- package/lib/helpers/isBsonType.js +15 -0
- package/lib/helpers/isMongooseObject.js +22 -0
- package/lib/helpers/isObject.js +16 -0
- package/lib/helpers/isPOJO.js +12 -0
- package/lib/helpers/isPromise.js +6 -0
- package/lib/helpers/isSimpleValidator.js +22 -0
- package/lib/helpers/minimize.js +41 -0
- package/lib/helpers/model/applyDefaultsToPOJO.js +52 -0
- package/lib/helpers/model/applyHooks.js +140 -0
- package/lib/helpers/model/applyMethods.js +70 -0
- package/lib/helpers/model/applyStaticHooks.js +33 -0
- package/lib/helpers/model/applyStatics.js +13 -0
- package/lib/helpers/model/castBulkWrite.js +316 -0
- package/lib/helpers/model/decorateBulkWriteResult.js +8 -0
- package/lib/helpers/model/discriminator.js +265 -0
- package/lib/helpers/model/pushNestedArrayPaths.js +15 -0
- package/lib/helpers/omitUndefined.js +20 -0
- package/lib/helpers/once.js +12 -0
- package/lib/helpers/parallelLimit.js +37 -0
- package/lib/helpers/path/parentPaths.js +18 -0
- package/lib/helpers/path/setDottedPath.js +33 -0
- package/lib/helpers/pluralize.js +95 -0
- package/lib/helpers/populate/assignRawDocsToIdStructure.js +129 -0
- package/lib/helpers/populate/assignVals.js +360 -0
- package/lib/helpers/populate/createPopulateQueryFilter.js +97 -0
- package/lib/helpers/populate/getModelsMapForPopulate.js +776 -0
- package/lib/helpers/populate/getSchemaTypes.js +228 -0
- package/lib/helpers/populate/getVirtual.js +103 -0
- package/lib/helpers/populate/leanPopulateMap.js +7 -0
- package/lib/helpers/populate/lookupLocalFields.js +40 -0
- package/lib/helpers/populate/markArraySubdocsPopulated.js +49 -0
- package/lib/helpers/populate/modelNamesFromRefPath.js +66 -0
- package/lib/helpers/populate/removeDeselectedForeignField.js +31 -0
- package/lib/helpers/populate/setPopulatedVirtualValue.js +33 -0
- package/lib/helpers/populate/skipPopulateValue.js +10 -0
- package/lib/helpers/populate/validateRef.js +19 -0
- package/lib/helpers/printJestWarning.js +21 -0
- package/lib/helpers/processConnectionOptions.js +65 -0
- package/lib/helpers/projection/applyProjection.js +83 -0
- package/lib/helpers/projection/hasIncludedChildren.js +41 -0
- package/lib/helpers/projection/isDefiningProjection.js +18 -0
- package/lib/helpers/projection/isExclusive.js +37 -0
- package/lib/helpers/projection/isInclusive.js +39 -0
- package/lib/helpers/projection/isNestedProjection.js +8 -0
- package/lib/helpers/projection/isPathExcluded.js +40 -0
- package/lib/helpers/projection/isPathSelectedInclusive.js +28 -0
- package/lib/helpers/projection/isSubpath.js +14 -0
- package/lib/helpers/projection/parseProjection.js +33 -0
- package/lib/helpers/query/applyGlobalOption.js +29 -0
- package/lib/helpers/query/cast$expr.js +287 -0
- package/lib/helpers/query/castFilterPath.js +54 -0
- package/lib/helpers/query/castUpdate.js +643 -0
- package/lib/helpers/query/getEmbeddedDiscriminatorPath.js +103 -0
- package/lib/helpers/query/handleImmutable.js +44 -0
- package/lib/helpers/query/handleReadPreferenceAliases.js +23 -0
- package/lib/helpers/query/hasDollarKeys.js +23 -0
- package/lib/helpers/query/isOperator.js +14 -0
- package/lib/helpers/query/sanitizeFilter.js +38 -0
- package/lib/helpers/query/sanitizeProjection.js +14 -0
- package/lib/helpers/query/selectPopulatedFields.js +62 -0
- package/lib/helpers/query/trusted.js +13 -0
- package/lib/helpers/query/validOps.js +3 -0
- package/lib/helpers/schema/addAutoId.js +7 -0
- package/lib/helpers/schema/applyBuiltinPlugins.js +12 -0
- package/lib/helpers/schema/applyPlugins.js +55 -0
- package/lib/helpers/schema/applyReadConcern.js +20 -0
- package/lib/helpers/schema/applyWriteConcern.js +39 -0
- package/lib/helpers/schema/cleanPositionalOperators.js +12 -0
- package/lib/helpers/schema/getIndexes.js +171 -0
- package/lib/helpers/schema/getKeysInSchemaOrder.js +28 -0
- package/lib/helpers/schema/getPath.js +43 -0
- package/lib/helpers/schema/getSubdocumentStrictValue.js +32 -0
- package/lib/helpers/schema/handleIdOption.js +20 -0
- package/lib/helpers/schema/handleTimestampOption.js +24 -0
- package/lib/helpers/schema/idGetter.js +34 -0
- package/lib/helpers/schema/merge.js +36 -0
- package/lib/helpers/schematype/handleImmutable.js +50 -0
- package/lib/helpers/setDefaultsOnInsert.js +158 -0
- package/lib/helpers/specialProperties.js +3 -0
- package/lib/helpers/symbols.js +20 -0
- package/lib/helpers/timers.js +3 -0
- package/lib/helpers/timestamps/setDocumentTimestamps.js +26 -0
- package/lib/helpers/timestamps/setupTimestamps.js +116 -0
- package/lib/helpers/topology/allServersUnknown.js +12 -0
- package/lib/helpers/topology/isAtlas.js +31 -0
- package/lib/helpers/topology/isSSLError.js +16 -0
- package/lib/helpers/update/applyTimestampsToChildren.js +193 -0
- package/lib/helpers/update/applyTimestampsToUpdate.js +131 -0
- package/lib/helpers/update/castArrayFilters.js +113 -0
- package/lib/helpers/update/decorateUpdateWithVersionKey.js +35 -0
- package/lib/helpers/update/modifiedPaths.js +33 -0
- package/lib/helpers/update/moveImmutableProperties.js +53 -0
- package/lib/helpers/update/removeUnusedArrayFilters.js +32 -0
- package/lib/helpers/update/updatedPathsByArrayFilter.js +27 -0
- package/lib/helpers/updateValidators.js +193 -0
- package/lib/index.js +17 -0
- package/lib/internal.js +46 -0
- package/lib/model.js +5010 -0
- package/lib/modifiedPathsSnapshot.js +9 -0
- package/lib/mongoose.js +1411 -0
- package/lib/options/populateOptions.js +36 -0
- package/lib/options/propertyOptions.js +8 -0
- package/lib/options/saveOptions.js +16 -0
- package/lib/options/schemaArrayOptions.js +78 -0
- package/lib/options/schemaBufferOptions.js +38 -0
- package/lib/options/schemaDateOptions.js +71 -0
- package/lib/options/schemaDocumentArrayOptions.js +68 -0
- package/lib/options/schemaMapOptions.js +43 -0
- package/lib/options/schemaNumberOptions.js +101 -0
- package/lib/options/schemaObjectIdOptions.js +64 -0
- package/lib/options/schemaStringOptions.js +138 -0
- package/lib/options/schemaSubdocumentOptions.js +66 -0
- package/lib/options/schemaTypeOptions.js +244 -0
- package/lib/options/schemaUnionOptions.js +32 -0
- package/lib/options/virtualOptions.js +164 -0
- package/lib/options.js +17 -0
- package/lib/plugins/index.js +6 -0
- package/lib/plugins/saveSubdocs.js +76 -0
- package/lib/plugins/sharding.js +84 -0
- package/lib/plugins/trackTransaction.js +84 -0
- package/lib/plugins/validateBeforeSave.js +41 -0
- package/lib/query.js +5673 -0
- package/lib/queryHelpers.js +387 -0
- package/lib/schema/array.js +699 -0
- package/lib/schema/bigint.js +282 -0
- package/lib/schema/boolean.js +332 -0
- package/lib/schema/buffer.js +343 -0
- package/lib/schema/date.js +467 -0
- package/lib/schema/decimal128.js +263 -0
- package/lib/schema/documentArray.js +656 -0
- package/lib/schema/documentArrayElement.js +137 -0
- package/lib/schema/double.js +246 -0
- package/lib/schema/index.js +32 -0
- package/lib/schema/int32.js +289 -0
- package/lib/schema/map.js +201 -0
- package/lib/schema/mixed.js +146 -0
- package/lib/schema/number.js +510 -0
- package/lib/schema/objectId.js +333 -0
- package/lib/schema/operators/bitwise.js +38 -0
- package/lib/schema/operators/exists.js +12 -0
- package/lib/schema/operators/geospatial.js +107 -0
- package/lib/schema/operators/helpers.js +32 -0
- package/lib/schema/operators/text.js +39 -0
- package/lib/schema/operators/type.js +20 -0
- package/lib/schema/string.js +733 -0
- package/lib/schema/subdocument.js +436 -0
- package/lib/schema/symbols.js +5 -0
- package/lib/schema/union.js +113 -0
- package/lib/schema/uuid.js +305 -0
- package/lib/schema.js +3226 -0
- package/lib/schemaType.js +1835 -0
- package/lib/stateMachine.js +232 -0
- package/lib/types/array/index.js +119 -0
- package/lib/types/array/isMongooseArray.js +5 -0
- package/lib/types/array/methods/index.js +1095 -0
- package/lib/types/arraySubdocument.js +207 -0
- package/lib/types/buffer.js +294 -0
- package/lib/types/decimal128.js +13 -0
- package/lib/types/documentArray/index.js +113 -0
- package/lib/types/documentArray/isMongooseDocumentArray.js +5 -0
- package/lib/types/documentArray/methods/index.js +415 -0
- package/lib/types/double.js +13 -0
- package/lib/types/index.js +23 -0
- package/lib/types/map.js +419 -0
- package/lib/types/objectid.js +41 -0
- package/lib/types/subdocument.js +464 -0
- package/lib/types/uuid.js +13 -0
- package/lib/utils.js +1054 -0
- package/lib/validOptions.js +42 -0
- package/lib/virtualType.js +204 -0
- package/package.json +148 -0
- package/types/aggregate.d.ts +180 -0
- package/types/augmentations.d.ts +9 -0
- package/types/callback.d.ts +8 -0
- package/types/collection.d.ts +49 -0
- package/types/connection.d.ts +297 -0
- package/types/cursor.d.ts +67 -0
- package/types/document.d.ts +374 -0
- package/types/error.d.ts +143 -0
- package/types/expressions.d.ts +3053 -0
- package/types/helpers.d.ts +32 -0
- package/types/index.d.ts +1056 -0
- package/types/indexes.d.ts +97 -0
- package/types/inferhydrateddoctype.d.ts +115 -0
- package/types/inferrawdoctype.d.ts +135 -0
- package/types/inferschematype.d.ts +337 -0
- package/types/middlewares.d.ts +59 -0
- package/types/models.d.ts +1306 -0
- package/types/mongooseoptions.d.ts +228 -0
- package/types/pipelinestage.d.ts +333 -0
- package/types/populate.d.ts +53 -0
- package/types/query.d.ts +934 -0
- package/types/schemaoptions.d.ts +282 -0
- package/types/schematypes.d.ts +654 -0
- package/types/session.d.ts +32 -0
- package/types/types.d.ts +109 -0
- package/types/utility.d.ts +175 -0
- package/types/validation.d.ts +39 -0
- package/types/virtuals.d.ts +14 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Module dependencies.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
'use strict';
|
|
6
|
+
|
|
7
|
+
const MongooseError = require('../error/mongooseError');
|
|
8
|
+
const SchemaType = require('../schemaType');
|
|
9
|
+
const SchemaSubdocument = require('./subdocument');
|
|
10
|
+
const getConstructor = require('../helpers/discriminator/getConstructor');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* DocumentArrayElement SchemaType constructor. Mongoose calls this internally when you define a new document array in your schema.
|
|
14
|
+
*
|
|
15
|
+
* #### Example:
|
|
16
|
+
* const schema = new Schema({ users: [{ name: String }] });
|
|
17
|
+
* schema.path('users.$'); // SchemaDocumentArrayElement with schema `new Schema({ name: String })`
|
|
18
|
+
*
|
|
19
|
+
* @param {String} path
|
|
20
|
+
* @param {Schema} schema
|
|
21
|
+
* @param {Object} options
|
|
22
|
+
* @param {Object} options
|
|
23
|
+
* @param {Schema} parentSchema
|
|
24
|
+
* @inherits SchemaType
|
|
25
|
+
* @api public
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
function SchemaDocumentArrayElement(path, schema, options, parentSchema) {
|
|
29
|
+
this.$parentSchemaType = options?.$parentSchemaType;
|
|
30
|
+
if (!this.$parentSchemaType) {
|
|
31
|
+
throw new MongooseError('Cannot create DocumentArrayElement schematype without a parent');
|
|
32
|
+
}
|
|
33
|
+
delete options.$parentSchemaType;
|
|
34
|
+
|
|
35
|
+
SchemaType.call(this, path, options, 'DocumentArrayElement', parentSchema);
|
|
36
|
+
|
|
37
|
+
this.$isMongooseDocumentArrayElement = true;
|
|
38
|
+
this.Constructor = options?.Constructor;
|
|
39
|
+
this.schema = schema;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* This schema type's name, to defend against minifiers that mangle
|
|
44
|
+
* function names.
|
|
45
|
+
*
|
|
46
|
+
* @api public
|
|
47
|
+
*/
|
|
48
|
+
SchemaDocumentArrayElement.schemaName = 'DocumentArrayElement';
|
|
49
|
+
|
|
50
|
+
SchemaDocumentArrayElement.defaultOptions = {};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Sets a default option for all SchemaDocumentArrayElement instances.
|
|
54
|
+
*
|
|
55
|
+
* #### Example:
|
|
56
|
+
*
|
|
57
|
+
* // Make all document array elements have option `_id` equal to false.
|
|
58
|
+
* mongoose.Schema.Types.DocumentArrayElement.set('_id', false);
|
|
59
|
+
*
|
|
60
|
+
* @param {String} option The name of the option you'd like to set
|
|
61
|
+
* @param {Any} value The value of the option you'd like to set.
|
|
62
|
+
* @return {void}
|
|
63
|
+
* @function set
|
|
64
|
+
* @static
|
|
65
|
+
* @api public
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
SchemaDocumentArrayElement.set = SchemaType.set;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Attaches a getter for all DocumentArrayElement instances
|
|
72
|
+
*
|
|
73
|
+
* @param {Function} getter
|
|
74
|
+
* @return {this}
|
|
75
|
+
* @function get
|
|
76
|
+
* @static
|
|
77
|
+
* @api public
|
|
78
|
+
*/
|
|
79
|
+
|
|
80
|
+
SchemaDocumentArrayElement.get = SchemaType.get;
|
|
81
|
+
|
|
82
|
+
/*!
|
|
83
|
+
* Inherits from SchemaType.
|
|
84
|
+
*/
|
|
85
|
+
SchemaDocumentArrayElement.prototype = Object.create(SchemaType.prototype);
|
|
86
|
+
SchemaDocumentArrayElement.prototype.constructor = SchemaDocumentArrayElement;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Casts `val` for DocumentArrayElement.
|
|
90
|
+
*
|
|
91
|
+
* @param {Object} value to cast
|
|
92
|
+
* @api private
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
SchemaDocumentArrayElement.prototype.cast = function(...args) {
|
|
96
|
+
return this.$parentSchemaType.cast(...args)[0];
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Async validation on this individual array element
|
|
101
|
+
*
|
|
102
|
+
* @api public
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
SchemaDocumentArrayElement.prototype.doValidate = async function doValidate(value, scope, options) {
|
|
106
|
+
const Constructor = getConstructor(this.Constructor, value);
|
|
107
|
+
|
|
108
|
+
if (value && !(value instanceof Constructor)) {
|
|
109
|
+
value = new Constructor(value, scope, null, null, options?.index ?? null);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return SchemaSubdocument.prototype.doValidate.call(this, value, scope, options);
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Clone the current SchemaType
|
|
117
|
+
*
|
|
118
|
+
* @return {DocumentArrayElement} The cloned instance
|
|
119
|
+
* @api private
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
SchemaDocumentArrayElement.prototype.clone = function() {
|
|
123
|
+
this.options.$parentSchemaType = this.$parentSchemaType;
|
|
124
|
+
const ret = SchemaType.prototype.clone.apply(this, arguments);
|
|
125
|
+
delete this.options.$parentSchemaType;
|
|
126
|
+
|
|
127
|
+
ret.Constructor = this.Constructor;
|
|
128
|
+
ret.schema = this.schema;
|
|
129
|
+
|
|
130
|
+
return ret;
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/*!
|
|
134
|
+
* Module exports.
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
module.exports = SchemaDocumentArrayElement;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/*!
|
|
4
|
+
* Module dependencies.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const CastError = require('../error/cast');
|
|
8
|
+
const SchemaType = require('../schemaType');
|
|
9
|
+
const castDouble = require('../cast/double');
|
|
10
|
+
const createJSONSchemaTypeDefinition = require('../helpers/createJSONSchemaTypeDefinition');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Double SchemaType constructor.
|
|
14
|
+
*
|
|
15
|
+
* @param {String} path
|
|
16
|
+
* @param {Object} options
|
|
17
|
+
* @param {Object} schemaOptions
|
|
18
|
+
* @param {Schema} parentSchema
|
|
19
|
+
* @inherits SchemaType
|
|
20
|
+
* @api public
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
function SchemaDouble(path, options, _schemaOptions, parentSchema) {
|
|
24
|
+
SchemaType.call(this, path, options, 'Double', parentSchema);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* This schema type's name, to defend against minifiers that mangle
|
|
29
|
+
* function names.
|
|
30
|
+
*
|
|
31
|
+
* @api public
|
|
32
|
+
*/
|
|
33
|
+
SchemaDouble.schemaName = 'Double';
|
|
34
|
+
|
|
35
|
+
SchemaDouble.defaultOptions = {};
|
|
36
|
+
|
|
37
|
+
/*!
|
|
38
|
+
* Inherits from SchemaType.
|
|
39
|
+
*/
|
|
40
|
+
SchemaDouble.prototype = Object.create(SchemaType.prototype);
|
|
41
|
+
SchemaDouble.prototype.constructor = SchemaDouble;
|
|
42
|
+
|
|
43
|
+
/*!
|
|
44
|
+
* ignore
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
SchemaDouble._cast = castDouble;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Sets a default option for all Double instances.
|
|
51
|
+
*
|
|
52
|
+
* #### Example:
|
|
53
|
+
*
|
|
54
|
+
* // Make all Double fields required by default
|
|
55
|
+
* mongoose.Schema.Types.Double.set('required', true);
|
|
56
|
+
*
|
|
57
|
+
* @param {String} option The option you'd like to set the value for
|
|
58
|
+
* @param {Any} value value for option
|
|
59
|
+
* @return {undefined}
|
|
60
|
+
* @function set
|
|
61
|
+
* @static
|
|
62
|
+
* @api public
|
|
63
|
+
*/
|
|
64
|
+
|
|
65
|
+
SchemaDouble.set = SchemaType.set;
|
|
66
|
+
|
|
67
|
+
SchemaDouble.setters = [];
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Attaches a getter for all Double instances
|
|
71
|
+
*
|
|
72
|
+
* #### Example:
|
|
73
|
+
*
|
|
74
|
+
* // Converts Double to be a represent milliseconds upon access
|
|
75
|
+
* mongoose.Schema.Types.Double.get(v => v == null ? '0.000 ms' : v.toString() + ' ms');
|
|
76
|
+
*
|
|
77
|
+
* @param {Function} getter
|
|
78
|
+
* @return {this}
|
|
79
|
+
* @function get
|
|
80
|
+
* @static
|
|
81
|
+
* @api public
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
SchemaDouble.get = SchemaType.get;
|
|
85
|
+
|
|
86
|
+
/*!
|
|
87
|
+
* ignore
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
SchemaDouble._defaultCaster = v => {
|
|
91
|
+
if (v != null) {
|
|
92
|
+
if (v._bsontype !== 'Double') {
|
|
93
|
+
throw new Error();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return v;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Get/set the function used to cast arbitrary values to IEEE 754-2008 floating points
|
|
102
|
+
*
|
|
103
|
+
* #### Example:
|
|
104
|
+
*
|
|
105
|
+
* // Make Mongoose cast any NaNs to 0
|
|
106
|
+
* const defaultCast = mongoose.Schema.Types.Double.cast();
|
|
107
|
+
* mongoose.Schema.Types.Double.cast(v => {
|
|
108
|
+
* if (isNaN(v)) {
|
|
109
|
+
* return 0;
|
|
110
|
+
* }
|
|
111
|
+
* return defaultCast(v);
|
|
112
|
+
* });
|
|
113
|
+
*
|
|
114
|
+
* // Or disable casting for Doubles entirely (only JS numbers are permitted)
|
|
115
|
+
* mongoose.Schema.Types.Double.cast(false);
|
|
116
|
+
*
|
|
117
|
+
*
|
|
118
|
+
* @param {Function} caster
|
|
119
|
+
* @return {Function}
|
|
120
|
+
* @function cast
|
|
121
|
+
* @static
|
|
122
|
+
* @api public
|
|
123
|
+
*/
|
|
124
|
+
|
|
125
|
+
SchemaDouble.cast = function cast(caster) {
|
|
126
|
+
if (arguments.length === 0) {
|
|
127
|
+
return this._cast;
|
|
128
|
+
}
|
|
129
|
+
if (caster === false) {
|
|
130
|
+
caster = this._defaultCaster;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
this._cast = caster;
|
|
134
|
+
|
|
135
|
+
return this._cast;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
/*!
|
|
140
|
+
* ignore
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
SchemaDouble._checkRequired = v => v != null;
|
|
144
|
+
/**
|
|
145
|
+
* Override the function the required validator uses to check whether a value
|
|
146
|
+
* passes the `required` check.
|
|
147
|
+
*
|
|
148
|
+
* @param {Function} fn
|
|
149
|
+
* @return {Function}
|
|
150
|
+
* @function checkRequired
|
|
151
|
+
* @static
|
|
152
|
+
* @api public
|
|
153
|
+
*/
|
|
154
|
+
|
|
155
|
+
SchemaDouble.checkRequired = SchemaType.checkRequired;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Check if the given value satisfies a required validator.
|
|
159
|
+
*
|
|
160
|
+
* @param {Any} value
|
|
161
|
+
* @return {Boolean}
|
|
162
|
+
* @api public
|
|
163
|
+
*/
|
|
164
|
+
|
|
165
|
+
SchemaDouble.prototype.checkRequired = function(value) {
|
|
166
|
+
return this.constructor._checkRequired(value);
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Casts to Double
|
|
171
|
+
*
|
|
172
|
+
* @param {Object} value
|
|
173
|
+
* @param {Object} model this value is optional
|
|
174
|
+
* @api private
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
SchemaDouble.prototype.cast = function(value) {
|
|
178
|
+
let castDouble;
|
|
179
|
+
if (typeof this._castFunction === 'function') {
|
|
180
|
+
castDouble = this._castFunction;
|
|
181
|
+
} else if (typeof this.constructor.cast === 'function') {
|
|
182
|
+
castDouble = this.constructor.cast();
|
|
183
|
+
} else {
|
|
184
|
+
castDouble = SchemaDouble.cast();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
try {
|
|
188
|
+
return castDouble(value);
|
|
189
|
+
} catch (error) {
|
|
190
|
+
throw new CastError('Double', value, this.path, error, this);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
/*!
|
|
195
|
+
* ignore
|
|
196
|
+
*/
|
|
197
|
+
|
|
198
|
+
function handleSingle(val) {
|
|
199
|
+
return this.cast(val);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const $conditionalHandlers = {
|
|
203
|
+
...SchemaType.prototype.$conditionalHandlers,
|
|
204
|
+
$gt: handleSingle,
|
|
205
|
+
$gte: handleSingle,
|
|
206
|
+
$lt: handleSingle,
|
|
207
|
+
$lte: handleSingle
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Contains the handlers for different query operators for this schema type.
|
|
212
|
+
* For example, `$conditionalHandlers.$lt` is the function Mongoose calls to cast `$lt` filter operators.
|
|
213
|
+
*
|
|
214
|
+
* @property $conditionalHandlers
|
|
215
|
+
* @memberOf SchemaDouble
|
|
216
|
+
* @instance
|
|
217
|
+
* @api public
|
|
218
|
+
*/
|
|
219
|
+
|
|
220
|
+
Object.defineProperty(SchemaDouble.prototype, '$conditionalHandlers', {
|
|
221
|
+
enumerable: false,
|
|
222
|
+
value: $conditionalHandlers
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Returns this schema type's representation in a JSON schema.
|
|
227
|
+
*
|
|
228
|
+
* @param [options]
|
|
229
|
+
* @param [options.useBsonType=false] If true, return a representation with `bsonType` for use with MongoDB's `$jsonSchema`.
|
|
230
|
+
* @returns {Object} JSON schema properties
|
|
231
|
+
*/
|
|
232
|
+
|
|
233
|
+
SchemaDouble.prototype.toJSONSchema = function toJSONSchema(options) {
|
|
234
|
+
const isRequired = this.options.required && typeof this.options.required !== 'function';
|
|
235
|
+
return createJSONSchemaTypeDefinition('number', 'double', options?.useBsonType, isRequired);
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
SchemaDouble.prototype.autoEncryptionType = function autoEncryptionType() {
|
|
239
|
+
return 'double';
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/*!
|
|
243
|
+
* Module exports.
|
|
244
|
+
*/
|
|
245
|
+
|
|
246
|
+
module.exports = SchemaDouble;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
/*!
|
|
3
|
+
* Module exports.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
exports.Array = require('./array');
|
|
9
|
+
exports.BigInt = require('./bigint');
|
|
10
|
+
exports.Boolean = require('./boolean');
|
|
11
|
+
exports.Buffer = require('./buffer');
|
|
12
|
+
exports.Date = require('./date');
|
|
13
|
+
exports.Decimal128 = exports.Decimal = require('./decimal128');
|
|
14
|
+
exports.DocumentArray = require('./documentArray');
|
|
15
|
+
exports.DocumentArrayElement = require('./documentArrayElement');
|
|
16
|
+
exports.Double = require('./double');
|
|
17
|
+
exports.Int32 = require('./int32');
|
|
18
|
+
exports.Map = require('./map');
|
|
19
|
+
exports.Mixed = require('./mixed');
|
|
20
|
+
exports.Number = require('./number');
|
|
21
|
+
exports.ObjectId = require('./objectId');
|
|
22
|
+
exports.String = require('./string');
|
|
23
|
+
exports.Subdocument = require('./subdocument');
|
|
24
|
+
exports.UUID = require('./uuid');
|
|
25
|
+
exports.Union = require('./union');
|
|
26
|
+
|
|
27
|
+
// alias
|
|
28
|
+
|
|
29
|
+
exports.Oid = exports.ObjectId;
|
|
30
|
+
exports.Object = exports.Mixed;
|
|
31
|
+
exports.Bool = exports.Boolean;
|
|
32
|
+
exports.ObjectID = exports.ObjectId;
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/*!
|
|
4
|
+
* Module dependencies.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const CastError = require('../error/cast');
|
|
8
|
+
const SchemaType = require('../schemaType');
|
|
9
|
+
const castInt32 = require('../cast/int32');
|
|
10
|
+
const createJSONSchemaTypeDefinition = require('../helpers/createJSONSchemaTypeDefinition');
|
|
11
|
+
const handleBitwiseOperator = require('./operators/bitwise');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Int32 SchemaType constructor.
|
|
15
|
+
*
|
|
16
|
+
* @param {String} path
|
|
17
|
+
* @param {Object} options
|
|
18
|
+
* @param {Object} schemaOptions
|
|
19
|
+
* @param {Schema} parentSchema
|
|
20
|
+
* @inherits SchemaType
|
|
21
|
+
* @api public
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
function SchemaInt32(path, options, _schemaOptions, parentSchema) {
|
|
25
|
+
SchemaType.call(this, path, options, 'Int32', parentSchema);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* This schema type's name, to defend against minifiers that mangle
|
|
30
|
+
* function names.
|
|
31
|
+
*
|
|
32
|
+
* @api public
|
|
33
|
+
*/
|
|
34
|
+
SchemaInt32.schemaName = 'Int32';
|
|
35
|
+
|
|
36
|
+
SchemaInt32.defaultOptions = {};
|
|
37
|
+
|
|
38
|
+
/*!
|
|
39
|
+
* Inherits from SchemaType.
|
|
40
|
+
*/
|
|
41
|
+
SchemaInt32.prototype = Object.create(SchemaType.prototype);
|
|
42
|
+
SchemaInt32.prototype.constructor = SchemaInt32;
|
|
43
|
+
|
|
44
|
+
/*!
|
|
45
|
+
* ignore
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
SchemaInt32._cast = castInt32;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Sets a default option for all Int32 instances.
|
|
52
|
+
*
|
|
53
|
+
* #### Example:
|
|
54
|
+
*
|
|
55
|
+
* // Make all Int32 fields required by default
|
|
56
|
+
* mongoose.Schema.Types.Int32.set('required', true);
|
|
57
|
+
*
|
|
58
|
+
* @param {String} option The option you'd like to set the value for
|
|
59
|
+
* @param {Any} value value for option
|
|
60
|
+
* @return {undefined}
|
|
61
|
+
* @function set
|
|
62
|
+
* @static
|
|
63
|
+
* @api public
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
SchemaInt32.set = SchemaType.set;
|
|
67
|
+
|
|
68
|
+
SchemaInt32.setters = [];
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Attaches a getter for all Int32 instances
|
|
72
|
+
*
|
|
73
|
+
* #### Example:
|
|
74
|
+
*
|
|
75
|
+
* // Converts int32 to be a represent milliseconds upon access
|
|
76
|
+
* mongoose.Schema.Types.Int32.get(v => v == null ? '0 ms' : v.toString() + ' ms');
|
|
77
|
+
*
|
|
78
|
+
* @param {Function} getter
|
|
79
|
+
* @return {this}
|
|
80
|
+
* @function get
|
|
81
|
+
* @static
|
|
82
|
+
* @api public
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
SchemaInt32.get = SchemaType.get;
|
|
86
|
+
|
|
87
|
+
/*!
|
|
88
|
+
* ignore
|
|
89
|
+
*/
|
|
90
|
+
|
|
91
|
+
SchemaInt32._defaultCaster = v => {
|
|
92
|
+
const INT32_MAX = 0x7FFFFFFF;
|
|
93
|
+
const INT32_MIN = -0x80000000;
|
|
94
|
+
|
|
95
|
+
if (v != null) {
|
|
96
|
+
if (typeof v !== 'number' || v !== (v | 0) || v < INT32_MIN || v > INT32_MAX) {
|
|
97
|
+
throw new Error();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return v;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Get/set the function used to cast arbitrary values to 32-bit integers
|
|
106
|
+
*
|
|
107
|
+
* #### Example:
|
|
108
|
+
*
|
|
109
|
+
* // Make Mongoose cast NaN to 0
|
|
110
|
+
* const defaultCast = mongoose.Schema.Types.Int32.cast();
|
|
111
|
+
* mongoose.Schema.Types.Int32.cast(v => {
|
|
112
|
+
* if (isNaN(v)) {
|
|
113
|
+
* return 0;
|
|
114
|
+
* }
|
|
115
|
+
* return defaultCast(v);
|
|
116
|
+
* });
|
|
117
|
+
*
|
|
118
|
+
* // Or disable casting for Int32s entirely (only JS numbers within 32-bit integer bounds and null-ish values are permitted)
|
|
119
|
+
* mongoose.Schema.Types.Int32.cast(false);
|
|
120
|
+
*
|
|
121
|
+
*
|
|
122
|
+
* @param {Function} caster
|
|
123
|
+
* @return {Function}
|
|
124
|
+
* @function cast
|
|
125
|
+
* @static
|
|
126
|
+
* @api public
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
SchemaInt32.cast = function cast(caster) {
|
|
130
|
+
if (arguments.length === 0) {
|
|
131
|
+
return this._cast;
|
|
132
|
+
}
|
|
133
|
+
if (caster === false) {
|
|
134
|
+
caster = this._defaultCaster;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
this._cast = caster;
|
|
138
|
+
|
|
139
|
+
return this._cast;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
/*!
|
|
144
|
+
* ignore
|
|
145
|
+
*/
|
|
146
|
+
|
|
147
|
+
SchemaInt32._checkRequired = v => v != null;
|
|
148
|
+
/**
|
|
149
|
+
* Override the function the required validator uses to check whether a value
|
|
150
|
+
* passes the `required` check.
|
|
151
|
+
*
|
|
152
|
+
* @param {Function} fn
|
|
153
|
+
* @return {Function}
|
|
154
|
+
* @function checkRequired
|
|
155
|
+
* @static
|
|
156
|
+
* @api public
|
|
157
|
+
*/
|
|
158
|
+
|
|
159
|
+
SchemaInt32.checkRequired = SchemaType.checkRequired;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Check if the given value satisfies a required validator.
|
|
163
|
+
*
|
|
164
|
+
* @param {Any} value
|
|
165
|
+
* @return {Boolean}
|
|
166
|
+
* @api public
|
|
167
|
+
*/
|
|
168
|
+
|
|
169
|
+
SchemaInt32.prototype.checkRequired = function(value) {
|
|
170
|
+
return this.constructor._checkRequired(value);
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Casts to Int32
|
|
175
|
+
*
|
|
176
|
+
* @param {Object} value
|
|
177
|
+
* @param {Object} model this value is optional
|
|
178
|
+
* @api private
|
|
179
|
+
*/
|
|
180
|
+
|
|
181
|
+
SchemaInt32.prototype.cast = function(value) {
|
|
182
|
+
let castInt32;
|
|
183
|
+
if (typeof this._castFunction === 'function') {
|
|
184
|
+
castInt32 = this._castFunction;
|
|
185
|
+
} else if (typeof this.constructor.cast === 'function') {
|
|
186
|
+
castInt32 = this.constructor.cast();
|
|
187
|
+
} else {
|
|
188
|
+
castInt32 = SchemaInt32.cast();
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
try {
|
|
192
|
+
return castInt32(value);
|
|
193
|
+
} catch (error) {
|
|
194
|
+
throw new CastError('Int32', value, this.path, error, this);
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
/*!
|
|
199
|
+
* ignore
|
|
200
|
+
*/
|
|
201
|
+
|
|
202
|
+
const $conditionalHandlers = {
|
|
203
|
+
...SchemaType.prototype.$conditionalHandlers,
|
|
204
|
+
$gt: handleSingle,
|
|
205
|
+
$gte: handleSingle,
|
|
206
|
+
$lt: handleSingle,
|
|
207
|
+
$lte: handleSingle,
|
|
208
|
+
$bitsAllClear: handleBitwiseOperator,
|
|
209
|
+
$bitsAnyClear: handleBitwiseOperator,
|
|
210
|
+
$bitsAllSet: handleBitwiseOperator,
|
|
211
|
+
$bitsAnySet: handleBitwiseOperator
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Contains the handlers for different query operators for this schema type.
|
|
216
|
+
* For example, `$conditionalHandlers.$gt` is the function Mongoose calls to cast `$gt` filter operators.
|
|
217
|
+
*
|
|
218
|
+
* @property $conditionalHandlers
|
|
219
|
+
* @memberOf SchemaInt32
|
|
220
|
+
* @instance
|
|
221
|
+
* @api public
|
|
222
|
+
*/
|
|
223
|
+
|
|
224
|
+
Object.defineProperty(SchemaInt32.prototype, '$conditionalHandlers', {
|
|
225
|
+
enumerable: false,
|
|
226
|
+
value: $conditionalHandlers
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
/*!
|
|
230
|
+
* ignore
|
|
231
|
+
*/
|
|
232
|
+
|
|
233
|
+
function handleSingle(val, context) {
|
|
234
|
+
return this.castForQuery(null, val, context);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Casts contents for queries.
|
|
239
|
+
*
|
|
240
|
+
* @param {String} $conditional
|
|
241
|
+
* @param {any} val
|
|
242
|
+
* @api private
|
|
243
|
+
*/
|
|
244
|
+
|
|
245
|
+
SchemaInt32.prototype.castForQuery = function($conditional, val, context) {
|
|
246
|
+
let handler;
|
|
247
|
+
if ($conditional != null) {
|
|
248
|
+
handler = this.$conditionalHandlers[$conditional];
|
|
249
|
+
|
|
250
|
+
if (handler) {
|
|
251
|
+
return handler.call(this, val);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
return this.applySetters(val, context);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
try {
|
|
258
|
+
return this.applySetters(val, context);
|
|
259
|
+
} catch (err) {
|
|
260
|
+
if (err instanceof CastError && err.path === this.path && this.$fullPath != null) {
|
|
261
|
+
err.path = this.$fullPath;
|
|
262
|
+
}
|
|
263
|
+
throw err;
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Returns this schema type's representation in a JSON schema.
|
|
269
|
+
*
|
|
270
|
+
* @param [options]
|
|
271
|
+
* @param [options.useBsonType=false] If true, return a representation with `bsonType` for use with MongoDB's `$jsonSchema`.
|
|
272
|
+
* @returns {Object} JSON schema properties
|
|
273
|
+
*/
|
|
274
|
+
|
|
275
|
+
SchemaInt32.prototype.toJSONSchema = function toJSONSchema(options) {
|
|
276
|
+
const isRequired = this.options.required && typeof this.options.required !== 'function';
|
|
277
|
+
return createJSONSchemaTypeDefinition('number', 'int', options?.useBsonType, isRequired);
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
SchemaInt32.prototype.autoEncryptionType = function autoEncryptionType() {
|
|
281
|
+
return 'int';
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
/*!
|
|
286
|
+
* Module exports.
|
|
287
|
+
*/
|
|
288
|
+
|
|
289
|
+
module.exports = SchemaInt32;
|