  binding function which takes a template literal and a value for the variable part of the string, normalizes it, and returns the binded string. binder package with npm:npm install @nicolawealth/binder
binder package is designed to dynamically replace placeholders in strings from provided binding objects which is useful in generating content which adapts to different contexts or inputs. Some common use cases include:
* Templating systems
* Configuration files
* Email generation
* Customizable notifications
* Report generation
* etc.
binderFactory(bindNormalizer) of exported type binderType where bindNormalizer is an optional string normalizing function which takes in a string and returns a string (i.e. toUpperCase()).binderFactory(bindNormalizer) returns a function which consumes ({value, binds}) where value is a template literal (i.e. a string which contains at least one expression of the form ${...} where ... is replaced by some placeholder string value).binds is a key-value paired object which contains keys corresponding to the placeholder parts of value and values which will replace the placeholder parts after binding takes place. If binds is not provided or the appropriate key is not provided within binds, ?{...} in the binded string where ... remains the original placeholder in the template literal. If a normalizing function is specified as bindNormalizer, the string function will be applied to the placeholder value before it's compared to the provided keys.binderFactory(b=>b.toLowerCase())({value:"My name is ${USERNAME}.", binds:{username:"Bob"}}) returns "My name is Bob."binderFactory()({value:"This is a ${func} function with ${number} templated values.", binds:{func: "binder", number: "two"}}) returns "This is a binder function with two templated values."binderFactory()({value:"My name is ${username}.", binds:{age: "50"}}) returns "My name is ?{username}."binder.test.ts located in binder/src and should be run with sinon, mocha and nyc.