0.8.0 • Published 2 months ago

@manifoldxyz/lint-configs v0.8.0

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
2 months ago

@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.

0.8.0

2 months ago

0.7.0

3 months ago

0.6.0

3 months ago

0.5.1

3 months ago

0.5.0

4 months ago

0.3.0

4 months ago

0.4.4

4 months ago

0.4.1

4 months ago

0.4.0

4 months ago

0.4.3

4 months ago

0.4.2

4 months ago

0.0.16

10 months ago

0.0.17

10 months ago

0.0.18

10 months ago

0.0.19

10 months ago

0.1.0

10 months ago

0.2.1

8 months ago

0.1.2

10 months ago

0.2.0

9 months ago

0.1.1

10 months ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago