mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-03 06:49:29 +08:00
35 lines
No EOL
2.3 KiB
Text
35 lines
No EOL
2.3 KiB
Text
import { RuleMetaData, RuleMetaDataDocs, RuleListener, RuleContext, RuleModule } from '../ts-eslint/Rule';
|
|
export declare type NamedCreateRuleMetaDocs = Omit<RuleMetaDataDocs, 'url'>;
|
|
export declare type NamedCreateRuleMeta<TMessageIds extends string> = {
|
|
docs: NamedCreateRuleMetaDocs;
|
|
} & Omit<RuleMetaData<TMessageIds>, 'docs'>;
|
|
export interface RuleCreateAndOptions<TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends RuleListener> {
|
|
create: (context: Readonly<RuleContext<TMessageIds, TOptions>>, optionsWithDefault: Readonly<TOptions>) => TRuleListener;
|
|
defaultOptions: Readonly<TOptions>;
|
|
}
|
|
export interface RuleWithMeta<TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends RuleListener> extends RuleCreateAndOptions<TOptions, TMessageIds, TRuleListener> {
|
|
meta: RuleMetaData<TMessageIds>;
|
|
}
|
|
export interface RuleWithMetaAndName<TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends RuleListener> extends RuleCreateAndOptions<TOptions, TMessageIds, TRuleListener> {
|
|
meta: NamedCreateRuleMeta<TMessageIds>;
|
|
name: string;
|
|
}
|
|
/**
|
|
* Creates reusable function to create rules with default options and docs URLs.
|
|
*
|
|
* @param urlCreator Creates a documentation URL for a given rule name.
|
|
* @returns Function to create a rule with the docs URL format.
|
|
*/
|
|
export declare function RuleCreator(urlCreator: (ruleName: string) => string): <TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends RuleListener = RuleListener>({ name, meta, ...rule }: Readonly<RuleWithMetaAndName<TOptions, TMessageIds, TRuleListener>>) => RuleModule<TMessageIds, TOptions, TRuleListener>;
|
|
export declare namespace RuleCreator {
|
|
var withoutDocs: typeof createRule;
|
|
}
|
|
/**
|
|
* Creates a well-typed TSESLint custom ESLint rule without a docs URL.
|
|
*
|
|
* @returns Well-typed TSESLint custom ESLint rule.
|
|
* @remarks It is generally better to provide a docs URL function to RuleCreator.
|
|
*/
|
|
declare function createRule<TOptions extends readonly unknown[], TMessageIds extends string, TRuleListener extends RuleListener = RuleListener>({ create, defaultOptions, meta, }: Readonly<RuleWithMeta<TOptions, TMessageIds, TRuleListener>>): RuleModule<TMessageIds, TOptions, TRuleListener>;
|
|
export {};
|
|
//# sourceMappingURL=RuleCreator.d.ts.map |