summaryrefslogtreecommitdiffstats
path: root/node_modules/mongoose/lib/schema/boolean.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/mongoose/lib/schema/boolean.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/mongoose/lib/schema/boolean.js')
-rw-r--r--node_modules/mongoose/lib/schema/boolean.js258
1 files changed, 258 insertions, 0 deletions
diff --git a/node_modules/mongoose/lib/schema/boolean.js b/node_modules/mongoose/lib/schema/boolean.js
new file mode 100644
index 0000000..c264084
--- /dev/null
+++ b/node_modules/mongoose/lib/schema/boolean.js
@@ -0,0 +1,258 @@
+'use strict';
+
+/*!
+ * Module dependencies.
+ */
+
+const CastError = require('../error/cast');
+const SchemaType = require('../schematype');
+const castBoolean = require('../cast/boolean');
+const utils = require('../utils');
+
+/**
+ * Boolean SchemaType constructor.
+ *
+ * @param {String} path
+ * @param {Object} options
+ * @inherits SchemaType
+ * @api public
+ */
+
+function SchemaBoolean(path, options) {
+ SchemaType.call(this, path, options, 'Boolean');
+}
+
+/**
+ * This schema type's name, to defend against minifiers that mangle
+ * function names.
+ *
+ * @api public
+ */
+SchemaBoolean.schemaName = 'Boolean';
+
+SchemaBoolean.defaultOptions = {};
+
+/*!
+ * Inherits from SchemaType.
+ */
+SchemaBoolean.prototype = Object.create(SchemaType.prototype);
+SchemaBoolean.prototype.constructor = SchemaBoolean;
+
+/*!
+ * ignore
+ */
+
+SchemaBoolean._cast = castBoolean;
+
+/**
+ * Sets a default option for all Boolean instances.
+ *
+ * ####Example:
+ *
+ * // Make all booleans have `default` of false.
+ * mongoose.Schema.Boolean.set('default', false);
+ *
+ * const Order = mongoose.model('Order', new Schema({ isPaid: Boolean }));
+ * new Order({ }).isPaid; // false
+ *
+ * @param {String} option - The option you'd like to set the value for
+ * @param {*} value - value for option
+ * @return {undefined}
+ * @function set
+ * @static
+ * @api public
+ */
+
+SchemaBoolean.set = SchemaType.set;
+
+/**
+ * Get/set the function used to cast arbitrary values to booleans.
+ *
+ * ####Example:
+ *
+ * // Make Mongoose cast empty string '' to false.
+ * const original = mongoose.Schema.Boolean.cast();
+ * mongoose.Schema.Boolean.cast(v => {
+ * if (v === '') {
+ * return false;
+ * }
+ * return original(v);
+ * });
+ *
+ * // Or disable casting entirely
+ * mongoose.Schema.Boolean.cast(false);
+ *
+ * @param {Function} caster
+ * @return {Function}
+ * @function get
+ * @static
+ * @api public
+ */
+
+SchemaBoolean.cast = function cast(caster) {
+ if (arguments.length === 0) {
+ return this._cast;
+ }
+ if (caster === false) {
+ caster = v => {
+ if (v != null && typeof v !== 'boolean') {
+ throw new Error();
+ }
+ return v;
+ };
+ }
+ this._cast = caster;
+
+ return this._cast;
+};
+
+/*!
+ * ignore
+ */
+
+SchemaBoolean._checkRequired = v => v === true || v === false;
+
+/**
+ * Override the function the required validator uses to check whether a boolean
+ * passes the `required` check.
+ *
+ * @param {Function} fn
+ * @return {Function}
+ * @function checkRequired
+ * @static
+ * @api public
+ */
+
+SchemaBoolean.checkRequired = SchemaType.checkRequired;
+
+/**
+ * Check if the given value satisfies a required validator. For a boolean
+ * to satisfy a required validator, it must be strictly equal to true or to
+ * false.
+ *
+ * @param {Any} value
+ * @return {Boolean}
+ * @api public
+ */
+
+SchemaBoolean.prototype.checkRequired = function(value) {
+ return this.constructor._checkRequired(value);
+};
+
+/**
+ * Configure which values get casted to `true`.
+ *
+ * ####Example:
+ *
+ * const M = mongoose.model('Test', new Schema({ b: Boolean }));
+ * new M({ b: 'affirmative' }).b; // undefined
+ * mongoose.Schema.Boolean.convertToTrue.add('affirmative');
+ * new M({ b: 'affirmative' }).b; // true
+ *
+ * @property convertToTrue
+ * @type Set
+ * @api public
+ */
+
+Object.defineProperty(SchemaBoolean, 'convertToTrue', {
+ get: () => castBoolean.convertToTrue,
+ set: v => { castBoolean.convertToTrue = v; }
+});
+
+/**
+ * Configure which values get casted to `false`.
+ *
+ * ####Example:
+ *
+ * const M = mongoose.model('Test', new Schema({ b: Boolean }));
+ * new M({ b: 'nay' }).b; // undefined
+ * mongoose.Schema.Types.Boolean.convertToFalse.add('nay');
+ * new M({ b: 'nay' }).b; // false
+ *
+ * @property convertToFalse
+ * @type Set
+ * @api public
+ */
+
+Object.defineProperty(SchemaBoolean, 'convertToFalse', {
+ get: () => castBoolean.convertToFalse,
+ set: v => { castBoolean.convertToFalse = v; }
+});
+
+/**
+ * Casts to boolean
+ *
+ * @param {Object} value
+ * @param {Object} model - this value is optional
+ * @api private
+ */
+
+SchemaBoolean.prototype.cast = function(value) {
+ const castBoolean = typeof this.constructor.cast === 'function' ?
+ this.constructor.cast() :
+ SchemaBoolean.cast();
+ try {
+ return castBoolean(value);
+ } catch (error) {
+ throw new CastError('Boolean', value, this.path, error, this);
+ }
+};
+
+SchemaBoolean.$conditionalHandlers =
+ utils.options(SchemaType.prototype.$conditionalHandlers, {});
+
+/**
+ * Casts contents for queries.
+ *
+ * @param {String} $conditional
+ * @param {any} val
+ * @api private
+ */
+
+SchemaBoolean.prototype.castForQuery = function($conditional, val) {
+ let handler;
+ if (arguments.length === 2) {
+ handler = SchemaBoolean.$conditionalHandlers[$conditional];
+
+ if (handler) {
+ return handler.call(this, val);
+ }
+
+ return this._castForQuery(val);
+ }
+
+ return this._castForQuery($conditional);
+};
+
+/**
+ *
+ * @api private
+ */
+
+SchemaBoolean.prototype._castNullish = function _castNullish(v) {
+ if (typeof v === 'undefined' &&
+ this.$$context != null &&
+ this.$$context._mongooseOptions != null &&
+ this.$$context._mongooseOptions.omitUndefined) {
+ return v;
+ }
+ const castBoolean = typeof this.constructor.cast === 'function' ?
+ this.constructor.cast() :
+ SchemaBoolean.cast();
+ if (castBoolean == null) {
+ return v;
+ }
+ if (castBoolean.convertToFalse instanceof Set && castBoolean.convertToFalse.has(v)) {
+ return false;
+ }
+ if (castBoolean.convertToTrue instanceof Set && castBoolean.convertToTrue.has(v)) {
+ return true;
+ }
+ return v;
+};
+
+/*!
+ * Module exports.
+ */
+
+module.exports = SchemaBoolean;