@egst/metalforge v1.0.2
metalforge
Wrappers for native JavaScript objects and primitives to extend their functionality.
This is a small library of limited and minimalistic functionality. It provides only the minimal functionality needed for my other projects dependant on metalforge - namely my metalsmith package which consists of metalforge, a client-side template engine blacksmith and design components whitesmith. However, more functionality will be added. Requests are appreciated. :)
Main functionality
forge()
Returns a corresponding wrapper for the native provided.
class ElementForge
This wraps a HTMLElement and provides a few simple extensions to manipulate DOM.
Purpose of this extension is to mimic jQuery in a minimalistic way without replacing the native DOM manipulation support, but actually extending it.
There are two ways of using it:
User may use the native objects and methods and, when needed, simply use forge(HTMLElement).someCoolStuff() while keeping the original HTMLElement for later use.
The other approach is more jQuery-like, which I do not encourage, as it looses the simplicity of the native HTMLElement and its compatibility. User may convert the HTMLElement into ElementForge with elementForge = forge(HTMLElement) right away and use the native methods with elementForge.elem.someNativeStuff() alongside the extended ones with elementForge.someCoolStuff(). The native HTMLElement is accessible directly by the elementForge.elem property, so converting back is not a problem and, in fact, both conversions do not add eny overhead as it's a mere reference copy.
Other related wrappers are provided too: NodeForge, NodeListForge.
class StringForge
This wrapper provides conversion to other primitives based on parsing the string.
Type checking:
isNumber(): If the string is not implicitly converted to NaN. Simply put: If it contains any numeric value.
isBoolean(): If the string is 'true' or 'false'.
isString(): If the string's first and last characters are both ' or ".
isPrimitive(): Any of the above is true.
Type conversion:
toNumber(): Implicit-like conversion to a number.
toBoolean(): Directly from the value 'true' or 'false'
toString(): Strip the surrounding quotes.
toPrimitive(): Automatically detect the type and convert.