| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- 'use strict';
- const SchemaTypeOptions = require('./schemaTypeOptions');
- /**
- * The options defined on an Array schematype.
- *
- * #### Example:
- *
- * const schema = new Schema({ tags: [String] });
- * schema.path('tags').options; // SchemaArrayOptions instance
- *
- * @api public
- * @inherits SchemaTypeOptions
- * @constructor SchemaArrayOptions
- */
- class SchemaArrayOptions extends SchemaTypeOptions {}
- const opts = require('./propertyOptions');
- /**
- * If this is an array of strings, an array of allowed values for this path.
- * Throws an error if this array isn't an array of strings.
- *
- * @api public
- * @property enum
- * @memberOf SchemaArrayOptions
- * @type {Array}
- * @instance
- */
- Object.defineProperty(SchemaArrayOptions.prototype, 'enum', opts);
- /**
- * If set, specifies the type of this array's values. Equivalent to setting
- * `type` to an array whose first element is `of`.
- *
- * #### Example:
- *
- * // `arr` is an array of numbers.
- * new Schema({ arr: [Number] });
- * // Equivalent way to define `arr` as an array of numbers
- * new Schema({ arr: { type: Array, of: Number } });
- *
- * @api public
- * @property of
- * @memberOf SchemaArrayOptions
- * @type {Function|String}
- * @instance
- */
- Object.defineProperty(SchemaArrayOptions.prototype, 'of', opts);
- /**
- * If set to `false`, will always deactivate casting non-array values to arrays.
- * If set to `true`, will cast non-array values to arrays if `init` and `SchemaArray.options.castNonArrays` are also `true`
- *
- * #### Example:
- *
- * const Model = db.model('Test', new Schema({ x1: { castNonArrays: false, type: [String] } }));
- * const doc = new Model({ x1: "some non-array value" });
- * await doc.validate(); // Errors with "CastError"
- *
- * @api public
- * @property castNonArrays
- * @memberOf SchemaArrayOptions
- * @type {Boolean}
- * @instance
- */
- Object.defineProperty(SchemaArrayOptions.prototype, 'castNonArrays', opts);
- /*!
- * ignore
- */
- module.exports = SchemaArrayOptions;
|