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

Commit 8fe475b6 by Youness MABROUK Committed by Sushant

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

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