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

codeshape

v0.3.30

Published

A linting utility with a built-in set of code-style rules for JS, TS, and CSS

Downloads

107

Readme

codeshape

A linting utility with a built-in set of code-style rules for JS, TS, and CSS

Usage

  • Install codeshape into a project: npm i -D codeshape (or globally: npm i -g codeshape);
  • Run codeshape in the project directory.

Features

Consistent spacing for arrays and objects

As in the mathematical notation of vectors and set elements: (x, y, z), {x, y, z}.

[x, y, z]
{x, y, z}
{x: 0, y: 1, z: -1}

import {x} from './x';

Stroustrup indentation style

else and catch on the next line after } allow for consistent placement of comments covering the condition and the entire following block:

// this is a comment to the condition
if (condition) {
    // ...
}
// another comment
else if (otherCondition) {
    // ...
}
// yet another comment
else {
    // ...
}

Keywords are spaced, function() is not

As in the mathematical notation.

function(params), setCustomValue(value) as in f(x), no space before the bracket.

if (x), for (let i...), while (ok) as in regular logical statements, with a space before the conditional expression.

Arrow function brackets only when necessary

let f = x => x + 10; — akin to mapping a scalar x, normally unbracketed.

let g = (x, y) => x + y - 10; — akin to mapping a vector (x, y), normally bracketed.

Preferring let over const

Motivation:

  • Simple decision making, reduced cognitive load: let is good for all variables, let is the default;
  • Adherence to the semantic meaning of constants: const is an option to emphasize and communicate to other developers that a certain value should not be reassigned, which applies to intentionally fixed values and normally doesn't semantically apply to one-time local variables;
  • Compliance to the definition: const is for values that can't be reassigned, rather than for values that are not reassigned.