a8m/obj-parse

Enhancement Suggestion for obj-parse setterFn

theunionInnovation opened this issue · 1 comments

Hi Ariel, first off thank you for obj-parse and deepkeys. Both are wonderful utilities that I am using in my project(s). I wanted to send you this change to setterFn, as it might be of benefit to others who would like to be able to handle key values which are functions:

var setterFn = function(scope, path, value) {
    var s = scope;
    for(var i = 0; i < path.length - 1; i++) { //check the path
      s = s[path[i]]; // s is the current path segment
      if(angular.isUndefined(s)) { //make sure the path segment is good/defined
        return undefined;
      }
    }
   //ok, we have a good path, if it is a vanilla value return that, or, if a function call it
  //probably we could be more sophisticated and do something like value.call(scope,path,value)
  //just use value() for now
    s[path[i]] = (angular.isFunction(value) ? value() : value); 
    return scope; //return the updated scope
  };
a8m commented

Hi @iwakari , I'm glad you like them.
LGFM, feel free to create a PR.