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

@kirick/man

v2.0.0-beta.7

Published

$man is jQuery-like library but with no shit.

Downloads

15

Readme

$man

$man is jQuery-like library, but without any shit.

Why?

I want to eliminate jQuery from my projects, but I still need to perform simple DOM queries and bind event handlers in a simple way. Writing document.querySelectorAll every time and iterate collections to make packet changes/binds is painful, so I grab some ideas and code from http://youmightnotneedjquery.com and wrote that light & simple library.

How it works?

$man is doing (probably) bad thing: it is extending NodeList and Element prototypes with jQuery-like functions.

Unlike jQuery, the main function ($man('div.class')) is just an alias to document.querySelectorAll and returning NodeList instance, so $man is making queries as fast as it can. Oh yes, almost all of $man functions are just lightweight wrappers over the native DOM functions.

Almost all of $man functions are sharing the same names and logic with jQuery functions, e.g. jQuery('article').find('div.element') can be written as $man('article').$find('div.element') with $man.

Important: $man was created to make only DOM traversal and event binding, so it does not contain AJAX (use fetch or axios), animations (use CSS trantisions instead) or functions like $.extend, $.type and $.proxy.

You can read $man's documentation here.

Can I just replace jQuery with $man?

The answer is no. $man is not fully compatible with jQuery and does not follow jQuery specifications strictly. You can't make find-and-replace operations in your jQuery code to migrate to $man. For example, some functions like filter and nextUntil do not accept function as an argument; $man does not support Sizzle selectors like :visible; functions like each will be never included to $man because you can iterate collections with for..of or Array.prototype.forEach.

Unlike jQuery, $man is standing away from adding a custom functionality or supporting old browsers with hacks: it's just making vanilla functions and methods ease to use. If you need to support IE8, you should make it yourself.