---
#############################
#############################
## JavaScript Linter rules ##
#############################
#############################

############
# Env Vars #
############
env:
  browser: true
  es6: true
  jest: true

###############
# Global Vars #
###############
globals:
  Atomics: readonly
  SharedArrayBuffer: readonly

ignorePatterns:
  - "!.*"
  - "**/node_modules/.*"

###############
# Parser vars #
###############
parser: '@typescript-eslint/parser'
parserOptions:
  ecmaVersion: 2018
  sourceType: module

###########
# Plugins #
###########
plugins:
  - '@typescript-eslint'

#########
# Rules #
#########
rules: { }

##############################
# Overrides for JSON parsing #
##############################
overrides:

  # JSON files
  - files:
      - "*.json"
    extends:
      - plugin:jsonc/recommended-with-json
    parser: jsonc-eslint-parser
    parserOptions:
      jsonSyntax: JSON

  # JSONC files
  - files:
      - "*.jsonc"
    extends:
      - plugin:jsonc/recommended-with-jsonc
    parser: jsonc-eslint-parser
    parserOptions:
      jsonSyntax: JSONC

  # JSON5 files
  - files:
      - "*.json5"
    extends:
      - plugin:jsonc/recommended-with-json5
    parser: jsonc-eslint-parser
    parserOptions:
      jsonSyntax: JSON5