@antfu/eslint-define-config
Version:
Provide a defineConfig function for .eslintrc.js files
202 lines (196 loc) • 5.41 kB
TypeScript
import type { RuleConfig } from '../rule-config';
/**
* Option.
*/
export type BaseConfig =
| 'never'
| (AllItems | AllItems[])[]
| {
memberTypes?: (AllItems | AllItems[])[] | 'never';
order?: OrderOptions;
optionalityOrder?: OptionalityOrderOptions;
};
export type AllItems =
| 'readonly-signature'
| 'signature'
| 'readonly-field'
| 'public-readonly-field'
| 'public-decorated-readonly-field'
| 'decorated-readonly-field'
| 'static-readonly-field'
| 'public-static-readonly-field'
| 'instance-readonly-field'
| 'public-instance-readonly-field'
| 'abstract-readonly-field'
| 'public-abstract-readonly-field'
| 'protected-readonly-field'
| 'protected-decorated-readonly-field'
| 'protected-static-readonly-field'
| 'protected-instance-readonly-field'
| 'protected-abstract-readonly-field'
| 'private-readonly-field'
| 'private-decorated-readonly-field'
| 'private-static-readonly-field'
| 'private-instance-readonly-field'
| '#private-readonly-field'
| '#private-static-readonly-field'
| '#private-instance-readonly-field'
| 'field'
| 'public-field'
| 'public-decorated-field'
| 'decorated-field'
| 'static-field'
| 'public-static-field'
| 'instance-field'
| 'public-instance-field'
| 'abstract-field'
| 'public-abstract-field'
| 'protected-field'
| 'protected-decorated-field'
| 'protected-static-field'
| 'protected-instance-field'
| 'protected-abstract-field'
| 'private-field'
| 'private-decorated-field'
| 'private-static-field'
| 'private-instance-field'
| '#private-field'
| '#private-static-field'
| '#private-instance-field'
| 'method'
| 'public-method'
| 'public-decorated-method'
| 'decorated-method'
| 'static-method'
| 'public-static-method'
| 'instance-method'
| 'public-instance-method'
| 'abstract-method'
| 'public-abstract-method'
| 'protected-method'
| 'protected-decorated-method'
| 'protected-static-method'
| 'protected-instance-method'
| 'protected-abstract-method'
| 'private-method'
| 'private-decorated-method'
| 'private-static-method'
| 'private-instance-method'
| '#private-method'
| '#private-static-method'
| '#private-instance-method'
| 'call-signature'
| 'constructor'
| 'public-constructor'
| 'protected-constructor'
| 'private-constructor'
| 'get'
| 'public-get'
| 'public-decorated-get'
| 'decorated-get'
| 'static-get'
| 'public-static-get'
| 'instance-get'
| 'public-instance-get'
| 'abstract-get'
| 'public-abstract-get'
| 'protected-get'
| 'protected-decorated-get'
| 'protected-static-get'
| 'protected-instance-get'
| 'protected-abstract-get'
| 'private-get'
| 'private-decorated-get'
| 'private-static-get'
| 'private-instance-get'
| '#private-get'
| '#private-static-get'
| '#private-instance-get'
| 'set'
| 'public-set'
| 'public-decorated-set'
| 'decorated-set'
| 'static-set'
| 'public-static-set'
| 'instance-set'
| 'public-instance-set'
| 'abstract-set'
| 'public-abstract-set'
| 'protected-set'
| 'protected-decorated-set'
| 'protected-static-set'
| 'protected-instance-set'
| 'protected-abstract-set'
| 'private-set'
| 'private-decorated-set'
| 'private-static-set'
| 'private-instance-set'
| '#private-set'
| '#private-static-set'
| '#private-instance-set'
| 'static-initialization'
| 'static-static-initialization'
| 'public-static-static-initialization'
| 'instance-static-initialization'
| 'public-instance-static-initialization'
| 'abstract-static-initialization'
| 'public-abstract-static-initialization'
| 'protected-static-static-initialization'
| 'protected-instance-static-initialization'
| 'protected-abstract-static-initialization'
| 'private-static-static-initialization'
| 'private-instance-static-initialization'
| '#private-static-static-initialization'
| '#private-instance-static-initialization';
export type OrderOptions =
| 'alphabetically'
| 'alphabetically-case-insensitive'
| 'as-written'
| 'natural'
| 'natural-case-insensitive';
export type OptionalityOrderOptions = 'optional-first' | 'required-first';
export type TypesConfig =
| 'never'
| (TypeItems | TypeItems[])[]
| {
memberTypes?: (TypeItems | TypeItems[])[] | 'never';
order?: OrderOptions;
optionalityOrder?: OptionalityOrderOptions;
};
export type TypeItems =
| 'readonly-signature'
| 'signature'
| 'readonly-field'
| 'field'
| 'method'
| 'constructor';
export interface MemberOrderingOption {
default?: BaseConfig;
classes?: BaseConfig;
classExpressions?: BaseConfig;
interfaces?: TypesConfig;
typeLiterals?: TypesConfig;
}
/**
* Options.
*/
export type MemberOrderingOptions = [MemberOrderingOption?];
/**
* Require a consistent member declaration order.
*
* @see [member-ordering](https://typescript-eslint.io/rules/member-ordering)
*/
export type MemberOrderingRuleConfig = RuleConfig<MemberOrderingOptions>;
/**
* Require a consistent member declaration order.
*
* @see [member-ordering](https://typescript-eslint.io/rules/member-ordering)
*/
export interface MemberOrderingRule {
/**
* Require a consistent member declaration order.
*
* @see [member-ordering](https://typescript-eslint.io/rules/member-ordering)
*/
'@typescript-eslint/member-ordering': MemberOrderingRuleConfig;
}