{
  "extends": "eslint:recommended",
  "env": {
    "node": true
  },
  "rules": {
    // overrides from 'recommended'
    "comma-dangle": 0,
    "no-console": 0,

    // strict
    "strict": [2, "function"],

    // formatting, spaces, operators
    "indent": [2, 2, {"SwitchCase": 1}],
    "quotes": [2, "single"],
    "semi": [2, "always"],
    "space-after-keywords": [2, "always"],
    "space-before-blocks": [2, "always"],
    "space-before-function-paren": [2, "always"],
    "dot-location": [2, "property"],
    "space-infix-ops": 2,
    "key-spacing": [2, {"beforeColon": false, "afterColon": true}],
    "operator-linebreak": [2, "after"],
    "no-spaced-func": 2,
    "comma-spacing": [1, {"before": false, "after": true}],
    "no-multiple-empty-lines": [2, {"max": 2}],
    "camelcase": [1, {"properties": "always"}],

    // coding style
    "curly": 2,
    "wrap-iife": [2, "inside"],
    "eqeqeq": 2,
    "no-use-before-define": [2, "nofunc"],
    "no-unused-vars": 2,
    "no-unexpected-multiline": 2,
    "no-multi-str": 2,
    "no-irregular-whitespace": 2,

    // os/git options
    "no-trailing-spaces": 2,
    "linebreak-style": 0,
    "eol-last": 2
  }
}
