{
  "extends": [
    "eslint:recommended",
  ],
  "parserOptions": {
    "ecmaVersion": 7,
    "sourceType": "module",
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true
    }
  },
  "rules": {
    "indent": ["error", 2, {"SwitchCase": 1}], // one indent === 2 spaces
    "comma-dangle": ["error", "always-multiline"], // forces trailing commas for each multiline list/map
    "no-trailing-spaces": ["error"], // force to remove trailing white spaces
    "no-mixed-spaces-and-tabs": ["error"], // prevent from mixing tabs and spaces for indents
    "semi": ["error", "always"], // nazi semicolon style
    "object-curly-spacing": ["error", "always"], // good: const { a } = b; wrong: const {a} = b;
    "quotes": ["error", "single"], // use single quotes in strings (backticks are allowed when used in formatting)
    "quote-props": ["error", "as-needed", {"keywords": true}], // use quotes in param names only when needed eg 'l-o-l'
    "arrow-parens": ["error", "always"], // always force using parens in arrow functions
    "curly": ["error"], // always use curly braces in if, for, etc. statements
  },
  "env": {
    "browser": true,
    "node": true,
    "es6": true,
  },
}
