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

wiw

v0.1.0

Published

The style guide that is what I want.

Downloads

1

Readme

Wiw

Wiw (What I Want) is a style guide based on StandardJS, but modified to my liking.

Installation and usage

To install Wiw, simply run:

npm install wiw --save-dev

Then you can check your syntax with:

wiw

For a list of options, run:

wiw --help

This tool should be 100% compatible with the one that comes with StandardJS, and therefore, you can just drop it in as a replacement and it should work fine.

Rules

  • Use double quotes.
    • This also applies when single quotes could be used to escape a double quote inside a string.
    • Template literals are allowed when you need to insert variables into a string.
    // Bad
    'Hello, world!'
    
    // Bad, you're not inserting any variables. Use double quotes instead.
    `Hello, world!`
    
    // Good
    "Hello, world!"
    
    // Good
    `Hello, ${world}!`
  • Use semicolons.
    // Bad
    hello("world")
    
    // Bad, and not where the semicolon is supposed to be used.
    if (happy) {;
        hello("world");
    };
    
    // Good
    hello("world");
  • Use tabs.
    // One tab is shown as "----", and one space is shown as "*".
    
    // Bad
    if (happy) {
    **hello("world");
    }
    
    // Bad
    if (happy) {
    ****hello("world");
    }
    
    // Good
    if (happy) {
    ----hello("world");
    }
  • When passing a function, use an arrow function whenever possible.
    • When your function is not bound, use an arrow function.
      function someFunc(func) {
        func();
      }
        
      // Bad
      someFunc(function() {
        console.log("Hello, world!");
      });
        
      // Good
      someFunc(() => {
        console.log("Hello, world!");
      });
    • When your function is bound, use a regular function.
      function someFunc(func) {
          func.bind({ a: "Hello, world!" })();
      }
      
      // Good
      someFunc(function() {
          console.log(this.a);
      });
  • Always enclose arrow function parameters in parentheses.
    // Bad
    let foo = a => {
        return a * 2;
    };
    
    // Good
    let foo = (a) => {
        return a * 2;
    };
  • Always enclose arrow function bodies in braces.
    // Bad
    let foo = (a, b) => a * b;
    
    // Good
    let foo = (a, b) => {
        return a * b;
    };
  • Anything else described in the StandardJS rules.