不要怂,就是干,撸起袖子干!

Commit 8fe475b6 by Youness MABROUK Committed by Sushant

fix(validators): backport memory leak fix for isImmutable (#9973) (#10031)

1 parent 4e439fa5
'use strict'; 'use strict';
const validator = require('./utils/validator-extras').validator; const validator = require('./utils/validator-extras').validator;
const extendModelValidations = require('./utils/validator-extras').extendModelValidations;
const Utils = require('./utils'); const Utils = require('./utils');
const sequelizeError = require('./errors'); const sequelizeError = require('./errors');
const Promise = require('./promise'); const Promise = require('./promise');
...@@ -54,8 +53,6 @@ class InstanceValidator { ...@@ -54,8 +53,6 @@ class InstanceValidator {
* @private * @private
*/ */
this.inProgress = false; this.inProgress = false;
extendModelValidations(modelInstance);
} }
/** /**
...@@ -298,7 +295,7 @@ class InstanceValidator { ...@@ -298,7 +295,7 @@ class InstanceValidator {
if (!Array.isArray(validatorArgs)) { if (!Array.isArray(validatorArgs)) {
if (validatorType === 'isImmutable') { if (validatorType === 'isImmutable') {
validatorArgs = [validatorArgs, field]; validatorArgs = [validatorArgs, field, this.modelInstance];
} else if (isLocalizedValidator || validatorType === 'isIP') { } else if (isLocalizedValidator || validatorType === 'isIP') {
validatorArgs = []; validatorArgs = [];
} else { } else {
......
...@@ -64,18 +64,10 @@ const extensions = { ...@@ -64,18 +64,10 @@ const extensions = {
}; };
exports.extensions = extensions; exports.extensions = extensions;
function extendModelValidations(modelInstance) { /** Instance based validators */
const extensions = { validator.isImmutable = function(value, validatorArgs, field, modelInstance) {
isImmutable(str, param, field) { return modelInstance.isNewRecord || modelInstance.dataValues[field] === modelInstance._previousDataValues[field];
return modelInstance.isNewRecord || modelInstance.dataValues[field] === modelInstance._previousDataValues[field]; };
}
};
_.forEach(extensions, (extend, key) => {
validator[key] = extend;
});
}
exports.extendModelValidations = extendModelValidations;
// Deprecate this. // Deprecate this.
validator.notNull = function() { validator.notNull = function() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!