mirror of
https://github.com/goauthentik/authentik
synced 2026-04-28 02:18:11 +02:00
92 lines
2.3 KiB
JavaScript
92 lines
2.3 KiB
JavaScript
/**
|
|
* @file ESLint Configuration Entry Point
|
|
*
|
|
* @import { Config } from "eslint/config";
|
|
* @import { ParserOptions } from "@typescript-eslint/parser";
|
|
*/
|
|
|
|
import { javaScriptConfig } from "./lib/javascript-config.js";
|
|
import { reactConfig } from "./lib/react-config.js";
|
|
import { typescriptConfig } from "./lib/typescript-config.js";
|
|
|
|
import eslint from "@eslint/js";
|
|
import { defineConfig, globalIgnores } from "eslint/config";
|
|
import tseslint from "typescript-eslint";
|
|
|
|
// @ts-check
|
|
|
|
const litconf = await import("eslint-plugin-lit").catch(() => null);
|
|
const wcconf = await import("eslint-plugin-wc").catch(() => null);
|
|
|
|
/**
|
|
* @typedef ESLintPackageConfigOptions Options for creating package ESLint configuration.
|
|
* @property {string[]} [ignorePatterns] Override ignore patterns for ESLint.
|
|
* @property {ParserOptions} [parserOptions] Override options for TypeScript ESLint's parser.
|
|
*/
|
|
|
|
/**
|
|
* @type {string[]} Default Ignore patterns for ESLint.
|
|
*/
|
|
export const DefaultIgnorePatterns = [
|
|
// ---
|
|
"**/*.md",
|
|
"**/out",
|
|
"**/dist",
|
|
"**/.wireit",
|
|
// TODO: Replace after moving to `docs` directory.
|
|
"website/**/build/**",
|
|
"website/**/.docusaurus/**",
|
|
"**/node_modules",
|
|
"**/coverage",
|
|
"**/storybook-static",
|
|
"**/locale-codes.ts",
|
|
"**/src/locales",
|
|
"packages/client-ts",
|
|
];
|
|
|
|
/**
|
|
* Given a preferred package name, creates a ESLint configuration object.
|
|
*
|
|
* @param {ESLintPackageConfigOptions} options The preferred package configuration options.
|
|
*
|
|
* @returns {Config[]} The ESLint configuration object.
|
|
*/
|
|
export function createESLintPackageConfig({
|
|
ignorePatterns = DefaultIgnorePatterns,
|
|
parserOptions = {},
|
|
} = {}) {
|
|
return defineConfig(
|
|
globalIgnores(ignorePatterns),
|
|
|
|
{
|
|
languageOptions: {
|
|
parserOptions,
|
|
},
|
|
},
|
|
|
|
eslint.configs.recommended,
|
|
javaScriptConfig,
|
|
|
|
wcconf?.configs["flat/recommended"] ?? [{}],
|
|
litconf?.configs["flat/recommended"] ?? [{}],
|
|
|
|
...tseslint.configs.recommended,
|
|
|
|
...typescriptConfig,
|
|
|
|
...reactConfig,
|
|
|
|
{
|
|
rules: {
|
|
"no-console": "off",
|
|
},
|
|
files: [
|
|
// ---
|
|
"**/scripts/**/*",
|
|
"**/test/**/*",
|
|
"**/tests/**/*",
|
|
],
|
|
},
|
|
);
|
|
}
|