🏡 index : quine-global-boneyard/electron-builder.git

import typescriptEslint from "@typescript-eslint/eslint-plugin";
import stylistic from "@stylistic/eslint-plugin";
import tsParser from "@typescript-eslint/parser";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
    baseDirectory: __dirname,
    recommendedConfig: js.configs.recommended,
    allConfig: js.configs.all
});

export default [{
    ignores: [
      "**/*.d.ts",
      "**/out",
      // used for CLI
      "**/main.js",
      "packages/electron-builder/cli.js",
      "packages/electron-builder/install-app-deps.js"
    ],
}, ...compat.extends(
    "eslint:recommended",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
    "plugin:@typescript-eslint/recommended-requiring-type-checking",
), {
    plugins: {
        "@typescript-eslint": typescriptEslint,
        "@stylistic": stylistic,
    },

    languageOptions: {
        parser: tsParser,
        ecmaVersion: 5,
        sourceType: "script",

        parserOptions: {
            project: ["./packages/*/tsconfig.json", "./test/tsconfig.json"],
        },
    },

    rules: {
        "@typescript-eslint/no-require-imports": "off",
        semi: "off",
        "prettier/prettier": "warn",
        "@typescript-eslint/prefer-promise-reject-errors": "off",

        "@stylistic/member-delimiter-style": ["error", {
            multiline: {
                delimiter: "none",
            },
        }],

        "@typescript-eslint/ban-ts-comment": "off",
        "@typescript-eslint/explicit-module-boundary-types": "off",
        "@typescript-eslint/no-unsafe-member-access": "off",
        "@typescript-eslint/restrict-template-expressions": "off",
        "@typescript-eslint/no-unsafe-return": "off",
        "@typescript-eslint/no-unsafe-argument": "off",
        "@typescript-eslint/no-unsafe-assignment": "off",
        "@typescript-eslint/no-explicit-any": "off",
        "@typescript-eslint/no-unsafe-call": "off",
        "@typescript-eslint/no-non-null-assertion": "off",
        "no-constant-condition": "off",

        "@typescript-eslint/no-unused-vars": ["warn", {
            argsIgnorePattern: "^_",
            varsIgnorePattern: "^_",
            caughtErrorsIgnorePattern: "^_",
        }],

        "@typescript-eslint/no-var-requires": "off",
        "@typescript-eslint/explicit-function-return-type": ["off", {}],
        "@typescript-eslint/no-redundant-type-constituents": "off",
    },
}];