@scorum/js-style

Different style configs ready to be used in multiple Scorum projects

Usage no npm install needed!

<script type="module">
  import scorumJsStyle from 'https://cdn.skypack.dev/@scorum/js-style';
</script>

README

Scorum JavaScript Style Guide

Build Status

Shared ESLint config for Scorum projects

Principles

Our lint rules are to help us write bug-free, readable and maintainable code. Rules are usually added because the patterns they are checking for have been proven to be problematic and frequently come up in code reviews. The intention is to save both authors and reviewers time by providing the author early feedback at the time of writing.

Installation

Required Dependencies

Required dependencies for ALL configs

# dependencies only for all configs

npm install --save-de eslint eslint-config-scorum

Base Dependencies

Additionall dependencies for base config

# dependencies only for base config

npm install --save-dev eslint babel-eslint eslint-config-scorum eslint-plugin-import

React Dependencie

Additionall dependencies for react config

# dependencies only for react config

npm install --save-dev eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y

Ramda Dependencies

Additionall dependencies for ramda config

# dependencies only for ramda config

npm install --save-dev eslint-plugin-ramda

Jest Dependencies

Additionall dependencies for jest config

# dependencies only for jest config

npm install --save-dev eslint-plugin-ramda

Prettier Dependencies

Additionall dependencies for prettier config

# dependencies only for prettier config

npm install --save-dev prettier eslint-plugin-prettier

Usage

Create an .eslintrc file that extends this config. For more configuration options, check out the ESLint docs.

Base

{
  "extends": "scorum"
}

React

{
  "extends": "scorum/react"
}

Node

{
  "extends": "scorum/node"
}

Server

Server config includes base and node configs

{
  "extends": "scorum/server"
}

Client

This config for vanilla JS (includes base config)

{
  "extends": "scorum/client"
}

Jest

{
  "extends": "scorum/jest"
}

Ramda

{
  "extends": "scorum/ramda"
}

Prettier (react support)

{
  "extends": [
    "scorum/prettier",
    "scorum/prettier/react",
  ]
}

Override rules

If you need to override or turn off rules:

If you need to override a rule, your .eslintrc.json file should look like the example below. All shared rules will be used, but eqeqeq will be turned off.

{
  "extends": "scorum",
  "rules": {
    "eqeqeq": "off"
  },
  "env": {},
  "globals": {},
  "rules": {}
}