{
    "fileExtensions": [".js", ".jsx"],
    "disallowMixedSpacesAndTabs": true,
    "disallowNewlineBeforeBlockStatements": true,
    "disallowPaddingNewlinesInBlocks": true,
    "disallowSpaceAfterObjectKeys": true,
    "disallowTrailingComma": true,

    "requireBlocksOnNewline": true,
    "requireCommaBeforeLineBreak": true,
    "requireSpaceAfterKeywords":  [
        "if",
        "else",
        "for",
        "while",
        "do",
        "switch",
        "return",
        "try",
        "catch"
    ],
    "requireSpaceAfterLineComment": true,
    "requireSpaceBeforeBlockStatements": true,
    "requireSpacesInConditionalExpression": {
        "afterTest": true,
        "beforeConsequent": true,
        "afterConsequent": true,
        "beforeAlternate": true
    },
    "requireSpacesInAnonymousFunctionExpression": {
        "beforeOpeningCurlyBrace": true
    },
    "requireSpacesInFunctionExpression": {
        "beforeOpeningCurlyBrace": true
    },
    "requireSpacesInNamedFunctionExpression": {
        "beforeOpeningCurlyBrace": true
    },

    "safeContextKeyword": ["self"],

    "validateIndentation": 4,
    "jsDoc": {
        "checkParamNames": true,
        "checkRedundantParams": true,
        "requireParamTypes": true,
        "checkTypes": true
    },
    "validateQuoteMarks": { "mark": "'", "escape": true }
}