diff --git a/lib/schemator.js b/lib/schemator.js index ac4bda7..678b555 100644 --- a/lib/schemator.js +++ b/lib/schemator.js @@ -103,12 +103,12 @@ Schemator.prototype.run = function(obj, callback){ var value = dotty.get(obj, validation[0]); var args = Array.isArray(validation[2]) ? validation[2] : [validation[2]]; - context.key = validation[0]; + var contextCopy = Object.assign({}, context, {key: validation[0]}); if(!func) return callback(new Error('Unknown validation method ' + validation[1])); - func.call(context, value, args, function(err, inv, override){ + func.call(contextCopy, value, args, function(err, inv, override){ if(err) return callback(err); @@ -133,7 +133,7 @@ Schemator.prototype.run = function(obj, callback){ var value = dotty.get(obj, flag[0]); var flagger = flaggers[flag[1]] || that.custom.flagger[flag[1]]; var args = Array.isArray(flag[2]) ? flag[2] : [flag[2]]; - + context.key = flag[0]; if(!flagger)