summaryrefslogtreecommitdiffstats
path: root/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/services/setDefaultsOnInsert.js
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/services/setDefaultsOnInsert.js')
-rw-r--r--common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/services/setDefaultsOnInsert.js96
1 files changed, 0 insertions, 96 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/services/setDefaultsOnInsert.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/services/setDefaultsOnInsert.js
deleted file mode 100644
index 36b87d7..0000000
--- a/common/src/main/webapp/usageguide/appserver/node_modules/mongoose/lib/services/setDefaultsOnInsert.js
+++ /dev/null
@@ -1,96 +0,0 @@
-'use strict';
-
-var modifiedPaths = require('./common').modifiedPaths;
-
-/**
- * Applies defaults to update and findOneAndUpdate operations.
- *
- * @param {Query} query
- * @param {Schema} schema
- * @param {Object} castedDoc
- * @param {Object} options
- * @method setDefaultsOnInsert
- * @api private
- */
-
-module.exports = function(query, schema, castedDoc, options) {
- var keys = Object.keys(castedDoc || {});
- var updatedKeys = {};
- var updatedValues = {};
- var numKeys = keys.length;
- var hasDollarUpdate = false;
- var modified = {};
-
- if (options && options.upsert) {
- for (var i = 0; i < numKeys; ++i) {
- if (keys[i].charAt(0) === '$') {
- modifiedPaths(castedDoc[keys[i]], '', modified);
- hasDollarUpdate = true;
- }
- }
-
- if (!hasDollarUpdate) {
- modifiedPaths(castedDoc, '', modified);
- }
-
- var paths = Object.keys(query._conditions);
- var numPaths = keys.length;
- for (i = 0; i < numPaths; ++i) {
- var path = paths[i];
- var condition = query._conditions[path];
- if (condition && typeof condition === 'object') {
- var conditionKeys = Object.keys(condition);
- var numConditionKeys = conditionKeys.length;
- var hasDollarKey = false;
- for (var j = 0; j < numConditionKeys; ++j) {
- if (conditionKeys[j].charAt(0) === '$') {
- hasDollarKey = true;
- break;
- }
- }
- if (hasDollarKey) {
- continue;
- }
- }
- updatedKeys[path] = true;
- modified[path] = true;
- }
-
- if (options.setDefaultsOnInsert) {
- schema.eachPath(function(path, schemaType) {
- if (path === '_id') {
- // Ignore _id for now because it causes bugs in 2.4
- return;
- }
- if (schemaType.$isSingleNested) {
- // Only handle nested schemas 1-level deep to avoid infinite
- // recursion re: https://github.com/mongodb-js/mongoose-autopopulate/issues/11
- schemaType.schema.eachPath(function(_path, _schemaType) {
- if (path === '_id') {
- // Ignore _id for now because it causes bugs in 2.4
- return;
- }
-
- var def = _schemaType.getDefault(null, true);
- if (!modified[path + '.' + _path] && typeof def !== 'undefined') {
- castedDoc = castedDoc || {};
- castedDoc.$setOnInsert = castedDoc.$setOnInsert || {};
- castedDoc.$setOnInsert[path + '.' + _path] = def;
- updatedValues[path + '.' + _path] = def;
- }
- });
- } else {
- var def = schemaType.getDefault(null, true);
- if (!modified[path] && typeof def !== 'undefined') {
- castedDoc = castedDoc || {};
- castedDoc.$setOnInsert = castedDoc.$setOnInsert || {};
- castedDoc.$setOnInsert[path] = def;
- updatedValues[path] = def;
- }
- }
- });
- }
- }
-
- return castedDoc;
-};