123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- 'use strict';
- const SchemaTypeOptions = require('./SchemaTypeOptions');
- /**
- * The options defined on a string schematype.
- *
- * #### Example:
- *
- * const schema = new Schema({ name: String });
- * schema.path('name').options; // SchemaStringOptions instance
- *
- * @api public
- * @inherits SchemaTypeOptions
- * @constructor SchemaStringOptions
- */
- class SchemaStringOptions extends SchemaTypeOptions {}
- const opts = require('./propertyOptions');
- /**
- * Array of allowed values for this path
- *
- * @api public
- * @property enum
- * @memberOf SchemaStringOptions
- * @type Array
- * @instance
- */
- Object.defineProperty(SchemaStringOptions.prototype, 'enum', opts);
- /**
- * Attach a validator that succeeds if the data string matches the given regular
- * expression, and fails otherwise.
- *
- * @api public
- * @property match
- * @memberOf SchemaStringOptions
- * @type RegExp
- * @instance
- */
- Object.defineProperty(SchemaStringOptions.prototype, 'match', opts);
- /**
- * If truthy, Mongoose will add a custom setter that lowercases this string
- * using JavaScript's built-in `String#toLowerCase()`.
- *
- * @api public
- * @property lowercase
- * @memberOf SchemaStringOptions
- * @type Boolean
- * @instance
- */
- Object.defineProperty(SchemaStringOptions.prototype, 'lowercase', opts);
- /**
- * If truthy, Mongoose will add a custom setter that removes leading and trailing
- * whitespace using [JavaScript's built-in `String#trim()`](https://masteringjs.io/tutorials/fundamentals/trim-string).
- *
- * @api public
- * @property trim
- * @memberOf SchemaStringOptions
- * @type Boolean
- * @instance
- */
- Object.defineProperty(SchemaStringOptions.prototype, 'trim', opts);
- /**
- * If truthy, Mongoose will add a custom setter that uppercases this string
- * using JavaScript's built-in [`String#toUpperCase()`](https://masteringjs.io/tutorials/fundamentals/uppercase).
- *
- * @api public
- * @property uppercase
- * @memberOf SchemaStringOptions
- * @type Boolean
- * @instance
- */
- Object.defineProperty(SchemaStringOptions.prototype, 'uppercase', opts);
- /**
- * If set, Mongoose will add a custom validator that ensures the given
- * string's `length` is at least the given number.
- *
- * Mongoose supports two different spellings for this option: `minLength` and `minlength`.
- * `minLength` is the recommended way to specify this option, but Mongoose also supports
- * `minlength` (lowercase "l").
- *
- * @api public
- * @property minLength
- * @memberOf SchemaStringOptions
- * @type Number
- * @instance
- */
- Object.defineProperty(SchemaStringOptions.prototype, 'minLength', opts);
- Object.defineProperty(SchemaStringOptions.prototype, 'minlength', opts);
- /**
- * If set, Mongoose will add a custom validator that ensures the given
- * string's `length` is at most the given number.
- *
- * Mongoose supports two different spellings for this option: `maxLength` and `maxlength`.
- * `maxLength` is the recommended way to specify this option, but Mongoose also supports
- * `maxlength` (lowercase "l").
- *
- * @api public
- * @property maxLength
- * @memberOf SchemaStringOptions
- * @type Number
- * @instance
- */
- Object.defineProperty(SchemaStringOptions.prototype, 'maxLength', opts);
- Object.defineProperty(SchemaStringOptions.prototype, 'maxlength', opts);
- /**
- * Sets default [populate options](/docs/populate.html#query-conditions).
- *
- * @api public
- * @property populate
- * @memberOf SchemaStringOptions
- * @type Object
- * @instance
- */
- Object.defineProperty(SchemaStringOptions.prototype, 'populate', opts);
- /*!
- * ignore
- */
- module.exports = SchemaStringOptions;
|