What's different is that I take a functional approach;
Very shocking, coming from the guy whose username is Functional Javascript :-)
Seriously, though. I rarely use classes for much of anything anymore. I do find them to be practical and useful when creating little libraries of utility functions - which is what this is. Especially when some of those functions need to call each other. But you could definitely do this without the class.
no optional params
I only just recently added them in my latest iteration. I've been using a previous homegrown library for several years with no params. However, one of the biggest things that I like to check for is making sure that the data types aren't empty. Cuz if you're expecting a string/object/array, it's quite common that an empty string/object/array isn't valid.
To get around this before, I'd have functions like aString()and.aPopulatedString(). Adding the optional param was just a way for me to collapse those into a single validation.
no method chaining
That was also something that was only added just recently. I don't think I'd ever written something designed for chaining, but one of my coworkers suggested it because I often have a function with two-or-three arguments. And I want to provide validation on each one. So the chaining is just a way to conveniently and logically collapse into into a single LoC - in the same way that the function signature itself is usually a single LoC.
Here's another example usage using a "throwIf" func from my throwIf module...
It's definitely interesting to see your approach. Great minds, and all that...
I especially like how you've logically concatenate them in front of the eventual function call.
Thanks for the feedback!
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Very shocking, coming from the guy whose username is
Functional Javascript
:-)Seriously, though. I rarely use classes for much of anything anymore. I do find them to be practical and useful when creating little libraries of utility functions - which is what this is. Especially when some of those functions need to call each other. But you could definitely do this without the class.
I only just recently added them in my latest iteration. I've been using a previous homegrown library for several years with no params. However, one of the biggest things that I like to check for is making sure that the data types aren't empty. Cuz if you're expecting a string/object/array, it's quite common that an empty string/object/array isn't valid.
To get around this before, I'd have functions like
aString()
and.aPopulatedString()
. Adding the optional param was just a way for me to collapse those into a single validation.That was also something that was only added just recently. I don't think I'd ever written something designed for chaining, but one of my coworkers suggested it because I often have a function with two-or-three arguments. And I want to provide validation on each one. So the chaining is just a way to conveniently and logically collapse into into a single LoC - in the same way that the function signature itself is usually a single LoC.
It's definitely interesting to see your approach. Great minds, and all that...
I especially like how you've logically concatenate them in front of the eventual function call.
Thanks for the feedback!