npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@egst/metalforge

v1.0.2

Published

Wrappers for native JavaScript objects and primitives to extend their functionality.

Downloads

8

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.