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

@manifoldxyz/lint-configs

v1.0.0

Published

Shared linting/formatting configs for Typescript

Downloads

3,980

Readme

@manifoldxyz/lint-configs

Shareable configurations to keep our Typescript code syntax/format consistent across all of our repositories.

Installation In External Project

1. Install the package:

yarn add -D @manifoldxyz/lint-configs

2. Install the peer dependencies associated with the package:

You can just copy and paste the peerDependencies from the package.json into your devDependencies of your repo.

You can also use CLI:

(
export PKG=@manifoldxyz/lint-configs;
npm info "$PKG" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs yarn add -D "$PKG"
)

3. Configure the appropriate config file for your linter:

eslint

  • Node

    • Our default node lint config can be extended via @manifoldxyz.
      // .eslintrc.js
      module.exports = {
        extends: ["@manifoldxyz"],
      };
  • Vue 3

    • Adding lint to vue app? Use the vue config @manifoldxyz/eslint-config/vue3

      // .eslintrc.js
      module.exports = {
        extends: ["@manifoldxyz/eslint-config/vue3"],
      };

      ⚠️ If you run into a CLIEngine not found error, you may need to use eslint@7 (whereas we use eslint@8 otherwise)

    • For vue2 use @manifoldxyz/eslint-config/vue

prettier

// .prettierrc.js
module.exports = require("@manifoldxyz/lint-configs/prettier");

4. You can then setup scripts in your package json like the below:

  // package.json
  ...
  "scripts": {
    ...
    "lint": "eslint .",
    "format": "prettier . --write && eslint . --fix"
    ...
  }
  ...

StyleLint

// .stylelintrc.js
module.exports = require('@manifoldxyz/lint-configs/stylelint');

// for vue
module.exports = require('@manifoldxyz/lint-configs/stylelintvue');

// you could choose to modify and extend it like this as instead
const manifoldVueConfig = require('@manifoldxyz/lint-configs/stylelintvue');
module.exports = {
  ...manifoldVueConfig,
  rules: {
    ...manifoldVueConfig.rules,
    'declaration-property-value-no-unknown': null,
  },
};

4. You can then setup scripts in your package json like the below:

  // package.json
  ...
  "scripts": {
    ...
    "lint:css": "stylelint 'src/**/*.{vue,css,scss}'",
    "lint:css:fix": "stylelint 'src/**/*.{vue,css,scss}' --fix"
    ...
  }
  ...

Solhint

// .solhintrc.js
module.exports = require('@manifoldxyz/lint-configs/solhint');

4. You can then setup scripts in your package json like the below:

  // package.json
  ...
  "scripts": {
    ...
    "lint:sol": "solhint 'contracts/*.sol'",
    "lint:sol:fix": "solhint 'contracts/.sol' --fix"
    ...
  }
  ...

Troubleshooting

If you have issues relating Yarn 1 finding the wrong versions of strip-ansi, stylish, or string-width give this a shot in your package.json, it might patch your issue:

"resolutions": {
  "strip-ansi": "^6.0.1",
  "string-width": "^4.0.0"
}

Testing

When making updates to any of the configs or their packages, you should test that the Linter is working as expected. To do this, head to our package.json and run the corresponding test: script.

For example if you make changes to eslint, you should run test:eslint to ensure that the linter is working as expected.