@egst/metalforge
v1.0.2
Published
Wrappers for native JavaScript objects and primitives to extend their functionality.
Downloads
14
Maintainers
Readme
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.
