duo - for traditional or config object parameters duo(func, args, sig, scope) DESCRIPTION A system to build functions or classes that allow traditional parameters or a configuration object passed in as a single parameter. The configuration object has property names that match the function arguments. Works also with JS6 default parameter values. To use duo on your functions, pass in a function and the function's arguments and insert duo into first line of your function as shown below. Replace yourFunction with a reference to your function but keep arguments as is. EXAMPLE function yourFunction(a,b,c){ var d; if (d = duo(yourFunction, arguments)) return d; console.log(a,b,c); }; yourFunction(1,null,3); // traditional parameters in order yourFunction({a:1,c:3}); // configuration object with duo END EXAMPLE NOTE: if you are minifying the file then you need to do an extra step add a string version of the signature of your function above the duo call then pass the signature in as a parameter to duo() EXAMPLE // this can be minified function yourFunction(a,b,c){ var sig = "a,b,c"; var d; if (d = duo(yourFunction, arguments, sig)) return d; console.log(a,b,c); }; yourFunction(1,null,3); // traditional parameters in order yourFunction({a:1,c:3}); // configuration object with duo END EXAMPLE NOTE: if you are running the function as a constructor with the new keyword then you need to pass in this (keyword) as the last parameter (sig can be null) this allows duo() to test to see if we need to rerun the function as a constructor EXAMPLE function YourClass(a,b,c){ var sig = "a,b,c"; // pass this (the object scope) as the last parameter var d; if (d = duo(YourClass, arguments, sig, this)) return d; console.log(a,b,c); }; new YourClass(1,undefined,3); // traditional parameters in order new YourClass({a:1,c:3}); // configuration object with duo END EXAMPLE NOTE: if using an ES6 Class then you also need to use the string sig EXAMPLE class Test extends Container { constructor(a=1,b=2,c=3) { super(); var sig = "a,b,c"; var duo; if (duo = zob(Test, arguments, sig, this)) return duo; } } END EXAMPLE PARAMETERS func - reference to the function you want to use params or a config object with args - reference to the arguments property of the function (literally, use "arguments" with no quotes) sig - (default null) a string listing of the parameters just how they are in the () not including the () required if you are minifying the file as minifying changes the signature scope - (default null) reference to this (litterally, use "this" without the quotes) required if the function is being run with the new keyword RETURNS a Boolean
-
Notifications
You must be signed in to change notification settings - Fork 0
danzen/duo
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
System to handle traditional or config object parameters
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published