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

@joelbot/lint

v1.2.1

Published

A personal opinionated linting tool.

Downloads

285

Readme

JoelBot Lint - a personal opinionated linting tool

Usage:

yarn add -D @joelbot/lint

Then run yarn lint / npm run lint / etc

  • any time locally
  • also make your CI workflows run this

if CI environment variable is 1 or true, it will lint files and error if anything does not match my opinionated settings / formatting.

if CI environment variable is any other value or not set, it will re-write opinionated configuration back to your repository, then run appropriate linting tools with "fix mode" enabled to write suggested changes back to your repository. review changes to make sure they seem sensible, and commit them back to your repository. Expect that you might see opinionated changes to config/settings or code formatting any time after you update dependencies.

The opionated configuration files this generates includes default configuration support for vscode to be able to auto-format on save.

[!WARNING] I will probably make very opinionated changes to the config/settings as minor/patch versions to this tool. Upgrade your dependency on this on its own independently if you want to isolate code reformatting changes caused by this from other in-progress work if you don't want to pollute unrelated changes with code reformatting after a change as been published from this.

Why not just use eslint directly?

I want super opionated linting that will automatically keep my config up-to-date in other projects when I use it, and want the ability to potentially change the linting tools of choice I decide on easily later, and not have to think much about how to upgrade my other projects when the time comes.

Also, this does markdown linting, and might add support for other things in future as well.

Supported languages

Currently this only works with javascript / typescript repositories. I expect to continue to follow this pattern for other languages at some future point, probably by adding additional ways to depend on this outside of npm/yarn so that it can work with other relevant dependency management systems for other languages, but still following the above overall simple usage / no config pattern.

Escape hatches

For javascript/typescript things, I'm using eslint with prettier extension under the hood to power this.

Use the standard .eslintrc / // eslint-disable-line <whatever> / /* eslint some-rule: off */ / etc when you need to disable linting rules/expectations for some reason.

Contributing

Don't.

This is intended to be my own a personal opinionated framework for code linting.

If you don't like what I have set here, you're welcome to fork this repository and manage your own version of it as your own dependency, or to remove the dependency from your own tools.

This should only ever be used as a devDependency in other projects - it should never be a dependency that will be installed as a transient dependency for consumers of other projects that use this tool.

The lint command will even help enforce that this dependency is a devDependency rather than a dependency as part of the checks it does.