102 lines
3.8 KiB
TypeScript
102 lines
3.8 KiB
TypeScript
// Generated by dts-bundle-generator v9.4.0
|
|
|
|
import { ESLintConfig, KnownExtends, Rules, Settings } from '@aet/eslint-define-config';
|
|
import { ESLintUtils } from '@typescript-eslint/utils';
|
|
import { Rule } from 'eslint';
|
|
import { Merge, SetRequired } from 'type-fest';
|
|
|
|
export type OptionalObjectKey<T> = Exclude<{
|
|
[Key in keyof T]: undefined | any[] extends T[Key] ? Key : undefined | Record<any, any> extends T[Key] ? Key : never;
|
|
}[keyof T], undefined>;
|
|
export type MiddlewareConfig = Merge<SetRequired<ESLintConfig, OptionalObjectKey<ESLintConfig>>, {
|
|
extends: KnownExtends[];
|
|
}>;
|
|
export interface MiddlewareFunctions {
|
|
addRules(rules: Partial<RuleOptions>): void;
|
|
addSettings(settings: Partial<Settings>): void;
|
|
}
|
|
export type Middleware = (config: MiddlewareConfig, helpers: MiddlewareFunctions) => void;
|
|
export declare const graphql: Middleware;
|
|
export declare const jsdoc: Middleware;
|
|
export declare const storybook: Middleware;
|
|
export declare const react: Middleware;
|
|
export declare const reactRefresh: Middleware;
|
|
export declare const tailwind: Middleware;
|
|
export declare const error = "error";
|
|
export declare const warn = "warn";
|
|
export declare const off = "off";
|
|
export type RuleLevel = "error" | "warn" | "off" | 0 | 1 | 2;
|
|
export type RuleEntry<Options> = RuleLevel | [
|
|
RuleLevel,
|
|
Partial<Options>
|
|
];
|
|
export interface LocalRuleOptions {
|
|
/** Bans import from the specifier '.' and '..' and replaces it with '.+/index' */
|
|
"custom/no-import-dot": RuleEntry<unknown>;
|
|
/**
|
|
* Enforce template literal expressions to be of `string` type
|
|
* @see [restrict-template-expressions](https://typescript-eslint.io/rules/restrict-template-expressions)
|
|
*/
|
|
"custom/restrict-template-expressions": RuleEntry<{
|
|
allow: string[];
|
|
}>;
|
|
/** Ban assignment of empty object literals `{}` and replace them with `Object.create(null)` */
|
|
"custom/no-empty-object-literal": RuleEntry<unknown>;
|
|
}
|
|
export type RuleOptions = Rules & Partial<LocalRuleOptions>;
|
|
export interface CustomRule {
|
|
rule: () => Promise<{
|
|
default: Rule.RuleModule | ESLintUtils.RuleModule<string, unknown[]>;
|
|
}>;
|
|
options?: RuleLevel;
|
|
}
|
|
/**
|
|
* ESLint Configuration.
|
|
* @see [ESLint Configuration](https://eslint.org/docs/latest/user-guide/configuring/)
|
|
*/
|
|
export type InputConfig = Omit<ESLintConfig, "rules"> & {
|
|
/**
|
|
* Rules.
|
|
* @see [Rules](https://eslint.org/docs/latest/user-guide/configuring/rules)
|
|
*/
|
|
rules?: Partial<RuleOptions>;
|
|
/**
|
|
* Glob pattern to find paths to custom rule files in JavaScript or TypeScript.
|
|
* Note this must be a string literal or an array of string literals since
|
|
* this is statically analyzed.
|
|
*/
|
|
customRuleFiles?: string | string[];
|
|
/**
|
|
* Automatically detect project types, dependencies and deduct the plugins.
|
|
* @default true
|
|
*/
|
|
auto?: boolean;
|
|
};
|
|
/**
|
|
* Returns a ESLint config object.
|
|
*
|
|
* By default, it includes `["@typescript-eslint", "import-x", "prettier", "unicorn"]` configs.
|
|
* Additional bundled plugins include:
|
|
*
|
|
* 1. [`react`](https://github.com/jsx-eslint/eslint-plugin-react#list-of-supported-rules)
|
|
* (automatically enables
|
|
* [`react-hooks`](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks))
|
|
* 2. [`react-refresh`](https://github.com/ArnaudBarre/eslint-plugin-react-refresh)
|
|
* 3. [`jsx-a11y`](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#supported-rules)
|
|
* 4. [`unicorn`](https://github.com/sindresorhus/eslint-plugin-unicorn#rules)
|
|
* 5. [`n`](https://github.com/eslint-community/eslint-plugin-n#-rules) (Node.js specific,
|
|
* requires `minimatch`)
|
|
* 6. [`jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc#rules)
|
|
*
|
|
* Non bundled:
|
|
* 1. [`graphql`](https://the-guild.dev/graphql/eslint/rules)
|
|
*
|
|
* @param of Configuration options.
|
|
* @returns ESLint configuration object.
|
|
*/
|
|
export declare function extendConfig(of?: InputConfig & {
|
|
middlewares?: Middleware[];
|
|
}): ESLintConfig;
|
|
|
|
export {};
|