74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import eslint from "@eslint/js";
 | |
| import * as litconf from "eslint-plugin-lit";
 | |
| import * as wcconf from "eslint-plugin-wc";
 | |
| import tseslint from "typescript-eslint";
 | |
| 
 | |
| import { javaScriptConfig } from "./lib/javascript-config.js";
 | |
| import { reactConfig } from "./lib/react-config.js";
 | |
| import { typescriptConfig } from "./lib/typescript-config.js";
 | |
| 
 | |
| // @ts-check
 | |
| 
 | |
| /**
 | |
|  * @typedef ESLintPackageConfigOptions Options for creating package ESLint configuration.
 | |
|  * @property {string[]} [ignorePatterns] Override ignore patterns for ESLint.
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * @type {string[]} Default Ignore patterns for ESLint.
 | |
|  */
 | |
| export const DefaultIgnorePatterns = [
 | |
|     // ---
 | |
|     "**/*.md",
 | |
|     "**/out",
 | |
|     "**/dist",
 | |
|     "**/.wireit",
 | |
|     "website/build/**",
 | |
|     "website/.docusaurus/**",
 | |
|     "**/node_modules",
 | |
|     "**/coverage",
 | |
|     "**/storybook-static",
 | |
|     "**/locale-codes.ts",
 | |
|     "**/src/locales",
 | |
|     "**/gen-ts-api",
 | |
| ];
 | |
| 
 | |
| /**
 | |
|  * Given a preferred package name, creates a ESLint configuration object.
 | |
|  *
 | |
|  * @param {ESLintPackageConfigOptions} options The preferred package configuration options.
 | |
|  *
 | |
|  * @returns The ESLint configuration object.
 | |
|  */
 | |
| export function createESLintPackageConfig({ ignorePatterns = DefaultIgnorePatterns } = {}) {
 | |
|     return tseslint.config(
 | |
|         {
 | |
|             ignores: ignorePatterns,
 | |
|         },
 | |
| 
 | |
|         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/**/*",
 | |
|             ],
 | |
|         },
 | |
|     );
 | |
| }
 | 
