This commit is contained in:
Alex 2024-11-23 16:50:52 -05:00
parent f36e47f144
commit 235cf4101b
8 changed files with 501 additions and 484 deletions

View File

@ -7,6 +7,21 @@ export type Middleware =
| (() => Promise<MiddlewareResult>)
| (() => Promise<{ default: MiddlewareResult }>);
export interface NormalizedExtendConfigOptions {
auto?: boolean;
middlewares?: Middleware[];
configs: FlatESLintConfig[];
/**
* Use `.gitignore` file to exclude files from ESLint.
*/
gitignore?: boolean;
}
export type ExtendConfigOptions =
| FlatESLintConfig
| FlatESLintConfig[]
| NormalizedExtendConfigOptions;
/**
* Returns a ESLint config object.
*
@ -28,19 +43,7 @@ export type Middleware =
*
* @returns ESLint configuration object.
*/
export function extendConfig(
options:
| FlatESLintConfig[]
| {
auto?: boolean;
middlewares?: Middleware[];
configs: FlatESLintConfig[];
/**
* Use `.gitignore` file to exclude files from ESLint.
*/
gitignore?: boolean;
},
): Promise<FlatESLintConfig[]>;
export function extendConfig(options?: ExtendConfigOptions): Promise<FlatESLintConfig[]>;
export const error = 'error';
export const warn = 'warn';

24
dist/package.json vendored
View File

@ -1,6 +1,6 @@
{
"name": "@aet/eslint-rules",
"version": "2.0.7",
"version": "2.0.10",
"license": "UNLICENSED",
"type": "module",
"bin": {
@ -9,7 +9,7 @@
},
"main": "./config/index.js",
"peerDependencies": {
"eslint": "^9.14.0",
"eslint": "^9.15.0",
"typescript": "^5.6.3"
},
"optionalDependencies": {
@ -18,16 +18,16 @@
"dependencies": {
"@antfu/install-pkg": "^0.4.1",
"@nolyfill/is-core-module": "^1.0.39",
"@aet/eslint-define-config": "^0.1.0-beta.35",
"@aet/eslint-define-config": "^0.1.0-beta.36",
"@eslint/js": "^9.15.0",
"@eslint-community/eslint-utils": "^4.4.1",
"@eslint-react/eslint-plugin": "1.17.1",
"@stylistic/eslint-plugin": "^2.11.0",
"@types/eslint": "^9.6.1",
"@typescript-eslint/eslint-plugin": "^8.14.0",
"@typescript-eslint/parser": "^8.14.0",
"@eslint-react/eslint-plugin": "1.16.1",
"@stylistic/eslint-plugin": "^2.10.1",
"@typescript-eslint/type-utils": "^8.14.0",
"@typescript-eslint/utils": "^8.14.0",
"@typescript-eslint/eslint-plugin": "^8.15.0",
"@typescript-eslint/parser": "^8.15.0",
"@typescript-eslint/type-utils": "^8.15.0",
"@typescript-eslint/utils": "^8.15.0",
"aria-query": "^5.3.2",
"axe-core": "^4.10.2",
"axobject-query": "4.1.0",
@ -36,13 +36,13 @@
"doctrine": "^3.0.0",
"emoji-regex": "^10.4.0",
"enhanced-resolve": "^5.17.1",
"typescript-eslint": "^8.14.0",
"typescript-eslint": "^8.15.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-node": "^0.3.9",
"eslint-import-resolver-typescript": "^3.6.3",
"eslint-module-utils": "^2.12.0",
"eslint-plugin-import-x": "^4.4.2",
"eslint-plugin-unicorn": "^56.0.0",
"eslint-plugin-import-x": "^4.4.3",
"eslint-plugin-unicorn": "^56.0.1",
"esprima": "^4.0.1",
"esquery": "^1.6.0",
"estraverse": "^5.3.0",

View File

@ -10,15 +10,15 @@
},
"private": true,
"devDependencies": {
"@aet/eslint-define-config": "^0.1.0-beta.35",
"@aet/eslint-define-config": "^0.1.0-beta.36",
"@antfu/install-pkg": "^0.4.1",
"@babel/core": "^7.26.0",
"@babel/plugin-transform-flow-strip-types": "^7.25.9",
"@babel/preset-env": "^7.26.0",
"@eslint-react/eslint-plugin": "^1.16.1",
"@eslint-react/eslint-plugin": "^1.17.1",
"@eslint/js": "^9.15.0",
"@graphql-eslint/eslint-plugin": "^3.20.1",
"@stylistic/eslint-plugin": "^2.10.1",
"@stylistic/eslint-plugin": "^2.11.0",
"@swc-node/register": "^1.10.9",
"@tanstack/eslint-plugin-query": "^5.60.1",
"@types/babel-plugin-macros": "^3.1.3",
@ -32,14 +32,14 @@
"@types/estree": "^1.0.6",
"@types/estree-jsx": "^1.0.5",
"@types/lodash-es": "^4.17.12",
"@types/node": "^22.9.0",
"@types/node": "^22.9.3",
"@types/react-refresh": "^0.14.6",
"@typescript-eslint/eslint-plugin": "^8.14.0",
"@typescript-eslint/parser": "^8.14.0",
"@typescript-eslint/type-utils": "^8.14.0",
"@typescript-eslint/types": "^8.14.0",
"@typescript-eslint/typescript-estree": "^8.14.0",
"@typescript-eslint/utils": "^8.14.0",
"@typescript-eslint/eslint-plugin": "^8.15.0",
"@typescript-eslint/parser": "^8.15.0",
"@typescript-eslint/type-utils": "^8.15.0",
"@typescript-eslint/types": "^8.15.0",
"@typescript-eslint/typescript-estree": "^8.15.0",
"@typescript-eslint/utils": "^8.15.0",
"babel-plugin-macros": "^3.1.0",
"dts-bundle-generator": "9.5.1",
"esbuild": "0.24.0",
@ -47,12 +47,12 @@
"eslint": "9.15.0",
"eslint-config-prettier": "^9.1.0",
"eslint-import-resolver-typescript": "^3.6.3",
"eslint-plugin-import-x": "^4.4.2",
"eslint-plugin-import-x": "^4.4.3",
"eslint-plugin-jsdoc": "^50.5.0",
"eslint-plugin-react-refresh": "^0.4.14",
"eslint-plugin-storybook": "canary",
"eslint-plugin-testing-library": "^6.4.0",
"eslint-plugin-unicorn": "^56.0.0",
"eslint-plugin-testing-library": "^6.5.0",
"eslint-plugin-unicorn": "^56.0.1",
"eslint-plugin-vitest": "^0.5.4",
"esprima": "^4.0.1",
"esquery": "^1.6.0",
@ -68,9 +68,9 @@
"prettier": "^3.3.3",
"prop-types": "^15.8.1",
"terser": "^5.36.0",
"type-fest": "^4.27.0",
"typescript": "^5.6.3",
"typescript-eslint": "^8.14.0"
"type-fest": "^4.27.1",
"typescript": "^5.7.2",
"typescript-eslint": "^8.15.0"
},
"prettier": {
"arrowParens": "avoid",

View File

@ -1,5 +1,5 @@
diff --git a/src/index.js b/src/index.js
index 2fa185f..3cf8018 100644
index 980081e..3cf8018 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,48 +1,90 @@
@ -160,7 +160,7 @@ index 2fa185f..3cf8018 100644
strict: createConfig(strictRules, 'strict'),
};
-module.exports = { ...jsxA11y, configs, flatConfigs };
-module.exports = Object.assign(jsxA11y, { configs, flatConfigs });
+export default { ...jsxA11y, configs, flatConfigs };
diff --git a/src/rules/autocomplete-valid.js b/src/rules/autocomplete-valid.js
index df7b6b8..c4d0da1 100644

809
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -12,16 +12,16 @@
"subject": "chore(deps): update dependency @types/node to ^18.19.63 (#320)"
},
"eslint-plugin-jsx-a11y": {
"hash": "743168b1ba15196ec7001c7c1f368f5efbe78f0d",
"date": "2024-10-23T13:27:41+10:00",
"hash": "7566e13531f09a040daee4c16d0cba0c28d321c4",
"date": "2024-11-17T09:51:03-08:00",
"committer": "Jordan Harband",
"subject": "[New] `label-has-associated-control`: allow `labelComponents` to contain globs"
"subject": "[Deps] update `axe-core`"
},
"eslint-plugin-n": {
"hash": "c4d15512b24a8c7c3ba4bf8b598e66eafd1baeec",
"date": "2024-11-07T20:14:17+08:00",
"hash": "ccf5f9e482c32f2fd2d5f78649d7f837a5db8870",
"date": "2024-11-21T21:05:02+01:00",
"committer": "GitHub",
"subject": "chore(master): release 17.13.1 (#381)"
"subject": "chore(master): release 17.14.0 (#387)"
},
"eslint-plugin-react": {
"hash": "983b88dd3cb5e07919517d3fde4085f60883ded7",

29
src/config.d.ts vendored
View File

@ -7,6 +7,21 @@ export type Middleware =
| (() => Promise<MiddlewareResult>)
| (() => Promise<{ default: MiddlewareResult }>);
export interface NormalizedExtendConfigOptions {
auto?: boolean;
middlewares?: Middleware[];
configs: FlatESLintConfig[];
/**
* Use `.gitignore` file to exclude files from ESLint.
*/
gitignore?: boolean;
}
export type ExtendConfigOptions =
| FlatESLintConfig
| FlatESLintConfig[]
| NormalizedExtendConfigOptions;
/**
* Returns a ESLint config object.
*
@ -28,19 +43,7 @@ export type Middleware =
*
* @returns ESLint configuration object.
*/
export function extendConfig(
options:
| FlatESLintConfig[]
| {
auto?: boolean;
middlewares?: Middleware[];
configs: FlatESLintConfig[];
/**
* Use `.gitignore` file to exclude files from ESLint.
*/
gitignore?: boolean;
},
): Promise<FlatESLintConfig[]>;
export function extendConfig(options?: ExtendConfigOptions): Promise<FlatESLintConfig[]>;
export const error = 'error';
export const warn = 'warn';

View File

@ -7,6 +7,7 @@ import importPlugin from 'eslint-plugin-import-x';
import { uniq } from 'lodash-es';
import tseslint from 'typescript-eslint';
import type { ExtendConfigOptions, NormalizedExtendConfigOptions } from './config';
import { off } from './constants';
import { checkEnv } from './environment';
import { Middleware } from './middleware';
@ -17,22 +18,39 @@ import unicorn from './presets/unicorn';
export { error, warn, off } from './constants';
export async function extendConfig(
options:
| FlatESLintConfig[]
| {
auto?: boolean;
middlewares?: Middleware[];
configs: FlatESLintConfig[];
gitignore?: boolean;
} = [],
): Promise<FlatESLintConfig[]> {
function normalizeExtendConfig(
options: ExtendConfigOptions,
): NormalizedExtendConfigOptions {
if (Array.isArray(options)) {
options = { configs: options };
} else if ('rules' in options) {
options = { configs: [options] };
}
const {
auto = true,
middlewares: addMiddlewares = [],
middlewares = [],
configs = [],
gitignore = true,
} = Array.isArray(options) ? { configs: options } : options;
} = options as NormalizedExtendConfigOptions;
return {
auto,
middlewares,
configs,
gitignore,
};
}
export async function extendConfig(
options: ExtendConfigOptions = [],
): Promise<FlatESLintConfig[]> {
const {
auto,
middlewares: addMiddlewares = [],
configs,
gitignore,
} = normalizeExtendConfig(options);
const middlewares: Middleware[] = uniq([
() => import('./presets/custom'),
@ -113,7 +131,7 @@ export async function extendConfig(
}
}
if (configs) {
if (configs?.length) {
result.push(...configs);
}