module.exports = {
  env: {
    node: true,
    es2021: true,
  },
  extends: "eslint:recommended",
  parserOptions: {
    ecmaVersion: 12,
  },
  rules: {
    // Indentation
    "indent": ["error", 2], // or 4, depending on your preference

    // Quotation Marks
    "quotes": ["error", "double", { "allowTemplateLiterals": true }], // or 'single'

    // Semicolons
    "semi": ["error", "always"],

    // Variable Declarations
    "init-declarations": "error",

    // Variable Naming
    "camelcase": "error",

    // Unused Variables
    "no-unused-vars": "ignore",

    // Arrow Functions
    "prefer-arrow-callback": "error",
    "arrow-spacing": "error",

    // Block Scoping
    "block-scoped-var": "error",

    // Function Declarations
    "func-style": ["error", "declaration", { "allowArrowFunctions": true }],

    // Object Shorthand
    "object-shorthand": "error",

    // Avoid Underscore-Prefixed Names
    "no-underscore-dangle": "error",

    // Avoid Eval
    "no-eval": "error",

    // Avoid Using == and !=
    "eqeqeq": "error",

    // Space Before Function Parenthesis
    "space-before-function-paren": ["error", "always"],

    // Linebreak Style
    "linebreak-style": ["error", "unix"],

    // Max Line Length
    "max-len": ["error", { "code": 120 }],
  },
};