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

zxrun

v0.0.4

Published

> ๐Ÿ‘‹ This is very experimental please do not use this ๐Ÿšจ

Downloads

10

Readme

zxrun

๐Ÿ‘‹ This is very experimental please do not use this ๐Ÿšจ

I've written before that I think npm scripts could be better.

Recently I've been experimenting a lot with google/zx and I'm now of the belief that JS is the best scripting language ever, we just needed a tiny bit of sugar.

I've since made a few equally experimental but already useful packages:

  • pgmg a very early postgres migration tool that is inspired by zx but doesn't directly use zx
  • pgzx an extension to zx that preconfigures a postgres.js instance for easy scripting against a database
  • bank an importer of banking csv files into a nice postgres schema for easy querying, it uses zxrun, zx and pgmg.

zxrun takes my run script idea and does it in JS.

You make a file named run.js that exports some functions.

export async function example({ a, b }) {
    console.log('a + b', a + b)
    console.log(await $`ls -l`)
    chalk.green('great')
}

You can then run any of those function like so:

# installation
$ echo 'alias run="npx zxrun"' >> ~/.bash_profile
$ source ~/.bash_profile

$ run example -a 1 -b 2
a + b = 3
run.js
great

If you dont pass any functions, you get an auto generated help output showing you all the functions you can run.

  • โœ… process.env is populated as you'd expect
  • โœ… process.argv is passed via minimist and passed as an object to your invoked function
  • โœ… All zx globals are available including $, chalk, etc

I want to add a bunch of other useful features like tab completion, surfacing documentation from functions to the help, error checking for missing required arguments. But it's already great. This is early days... see you soon!