diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/types/subdocument.js')
-rw-r--r-- | common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/types/subdocument.js | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/types/subdocument.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/types/subdocument.js deleted file mode 100644 index 911fdf4..0000000 --- a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/types/subdocument.js +++ /dev/null @@ -1,152 +0,0 @@ -var Document = require('../document'); -var PromiseProvider = require('../promise_provider'); - -module.exports = Subdocument; - -/** - * Subdocument constructor. - * - * @inherits Document - * @api private - */ - -function Subdocument(value, fields) { - this.$isSingleNested = true; - Document.call(this, value, fields); -} - -Subdocument.prototype = Object.create(Document.prototype); - -Subdocument.prototype.toBSON = function() { - return this.toObject({ transform: false }); -}; - -/** - * Used as a stub for [hooks.js](https://github.com/bnoguchi/hooks-js/tree/31ec571cef0332e21121ee7157e0cf9728572cc3) - * - * ####NOTE: - * - * _This is a no-op. Does not actually save the doc to the db._ - * - * @param {Function} [fn] - * @return {Promise} resolved Promise - * @api private - */ - -Subdocument.prototype.save = function(fn) { - var Promise = PromiseProvider.get(); - return new Promise.ES6(function(resolve) { - fn && fn(); - resolve(); - }); -}; - -Subdocument.prototype.$isValid = function(path) { - if (this.$parent) { - return this.$parent.$isValid([this.$basePath, path].join('.')); - } -}; - -Subdocument.prototype.markModified = function(path) { - Document.prototype.markModified.call(this, path); - if (this.$parent) { - if (this.$parent.isDirectModified(this.$basePath)) { - return; - } - this.$parent.markModified([this.$basePath, path].join('.')); - } -}; - -Subdocument.prototype.$markValid = function(path) { - if (this.$parent) { - this.$parent.$markValid([this.$basePath, path].join('.')); - } -}; - -Subdocument.prototype.invalidate = function(path, err, val) { - Document.prototype.invalidate.call(this, path, err, val); - if (this.$parent) { - this.$parent.invalidate([this.$basePath, path].join('.'), err, val); - } else if (err.kind === 'cast' || err.name === 'CastError') { - throw err; - } -}; - -/** - * Returns the top level document of this sub-document. - * - * @return {Document} - */ - -Subdocument.prototype.ownerDocument = function() { - if (this.$__.ownerDocument) { - return this.$__.ownerDocument; - } - - var parent = this.$parent; - if (!parent) { - return this; - } - - while (parent.$parent || parent.__parent) { - parent = parent.$parent || parent.__parent; - } - this.$__.ownerDocument = parent; - return this.$__.ownerDocument; -}; - -/** - * Null-out this subdoc - * - * @param {Object} [options] - * @param {Function} [callback] optional callback for compatibility with Document.prototype.remove - */ - -Subdocument.prototype.remove = function(options, callback) { - if (typeof options === 'function') { - callback = options; - options = null; - } - - // If removing entire doc, no need to remove subdoc - if (!options || !options.noop) { - this.$parent.set(this.$basePath, null); - registerRemoveListener(this); - } - - if (typeof callback === 'function') { - callback(null); - } -}; - -/*! - * ignore - */ - -Subdocument.prototype.populate = function() { - throw new Error('Mongoose does not support calling populate() on nested ' + - 'docs. Instead of `doc.nested.populate("path")`, use ' + - '`doc.populate("nested.path")`'); -}; - -/*! - * Registers remove event listeners for triggering - * on subdocuments. - * - * @param {EmbeddedDocument} sub - * @api private - */ - -function registerRemoveListener(sub) { - var owner = sub.ownerDocument(); - - function emitRemove() { - owner.removeListener('save', emitRemove); - owner.removeListener('remove', emitRemove); - sub.emit('remove', sub); - owner = sub = null; - } - - owner.on('save', emitRemove); - owner.on('remove', emitRemove); -} |