metalforge
v1.0.0
Published
Wrappers for native JS objects and primitives to extend their functionality.
Downloads
3
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.