1.0.0 • Published 5 years ago

metalforge v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

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.