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

eslint-config-zyhou

v0.0.15

Published

Personal eslint config

Downloads

32

Readme

eslint-config-zyhou

npm version

A highly opinionated, sharable config of ESLint rules to produce beautiful, readable JavaScript.

As developers, we spend more time reading code than writing it. These rules aim to make reading JavaScript a priority.

That means some rules will feel oppressive or "over the top" for many developers, which is fine. If you don't like it, you can extend the rules and override them with the ones that bother you. Either way. 😊

This config also comes with the following plugins, and corresponding rules, baked in.

Install

$ yarn add eslint prettier eslint-config-zyhou -D

Usage

Create an ESLint config in your .eslintrc.json file

{
    "extends": ["zyhou"],
    "rules": {
        // enable additional rules, override rule options, or disable rules
    }
}

Create an Prettier config in your .prettierrc.json file.

{
    "singleQuote": true,
    "tabWidth": 4,
    "trailingComma": "all",
    "printWidth": 100
}

Other configs

This config also exposes a few other configs. You can combine with the base config.

{
    "extends": ["zyhou", "zyhou/<config-name>", "zyhou/presets/<config-name>"]
}
  • zyhou/tests: jest testing framework + cypress testing framework
  • zyhou/react: React JS library and a11y rules
  • zyhou/typescript:Typescript language
  • zyhou/presets/node: prettier + base config
  • zyhou/presets/react: prettier + base + react config
  • zyhou/presets/typescript: prettier + typescript config
  • zyhou/presets/typescript-react: prettier + typescript + react config

Other recommendation

Lint and Format all you codebase

Create these commands in your package.json

{
    "scripts": {
        "lint": "eslint .",
        "format": "prettier --write --check \"**/*.+(js|md|json)\""
    }
}
  • yarn format: run prettier on code base, you can change path and file extension, ts|tsx|js|jsx
  • yarn lint --fix: run eslint and automatically fix problems
  • yarn lint: run eslint on code base, fix or update rules

Use pre-commit Hook

Add husky and lint-staged in dev dependencies

$ yarn add husky lint-staged -D

Update your package.json file.

{
    "lint-staged": {
        "*.js": "eslint",
        "*.{js,json,md}": "prettier --write"
    }
}

Change husky hook

#!/bin/sh
# .husky/commit-msg
. "$(dirname "$0")/_/husky.sh"

yarn commitlint --edit "$1"
#!/bin/sh
# .husky/pre-commit
. "\$(dirname "\$0")/\_/husky.sh"

yarn lint-staged

VSCode

This is our recommended VSCode configuration using the Prettier extension. Adjust it to the needs of your particular project:

{
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    }
}

Contribution

Pull request are welcome. Fix existing rules, add other eslint plugin packages, etc...