UNPKG

@locker/eslint-rule-maker

Version:
65 lines 3.15 kB
/// <reference types="eslint" /> /// <reference types="estree" /> import { AST, Lib } from '@locker/ast-lib-maker'; import * as ESLint from 'eslint'; import * as ESTree from 'estree'; type RuleCreate = (context: ESLint.Rule.RuleContext) => ESLint.Rule.NodeListener | ESLint.Rule.RuleListener | (ESLint.Rule.NodeListener & ESLint.Rule.RuleListener); type RuleFix = ((fixer: ESLint.Rule.RuleFixer, matchData?: Rule.MatchData) => null | ESLint.Rule.Fix | IterableIterator<ESLint.Rule.Fix> | ESLint.Rule.Fix[]) | null | string; interface RuleMatchData extends Lib.MatchData { context: ESLint.Rule.RuleContext; } type RuleMessage = ((data: Rule.MatchData) => string) | string; type RuleOnMatch = (data: Rule.MatchData) => Rule.MatchOverride | boolean; declare namespace CreateRule { interface Config { create?: RuleCreate; meta?: ESLint.Rule.RuleMetaData; rule?: { fix?: RuleFix; // If 'message' is not provided ESLint will throw its own error. message?: RuleMessage; onMatch?: RuleOnMatch; search: Lib.SearchPattern; }; } interface ConfigStrict { create?: RuleCreate; meta: ESLint.Rule.RuleMetaData; rule: { fix?: RuleFix; message?: RuleMessage; onMatch?: RuleOnMatch; search: Lib.SearchPattern; }; } } declare namespace Rule { type MatchData = RuleMatchData & Lib.MatchData; interface MatchOverride { fix?: RuleFix; message?: RuleMessage; } type SearchPattern = Lib.SearchPattern; } declare const astLib: { expandPatterns(dehydratedPatterns: import("@locker/ast-lib-maker").Lib.SearchPattern): import("@locker/ast-lib-maker").Lib.SearchPattern[]; getIdentifierName(node: ESTree.Identifier): string; getParent(node: AST.Node): AST.MaybeNode; getType(node: AST.Node): string; isMatchableNode(node: AST.MaybeNode): boolean; isNodeByAsteriskOrName(node: AST.MaybeNode, name: string): boolean; isNonComputedMemberExpressionNode(node: AST.MaybeNode): boolean; match(identifier: AST.IdentifierOrThisExpression, patterns: import("@locker/ast-lib-maker").Lib.SearchPattern[]): import("@locker/ast-lib-maker").Lib.MatchData | undefined; matchAll(identifiers: AST.IdentifierOrThisExpression[], patterns: import("@locker/ast-lib-maker").Lib.SearchPattern[]): import("@locker/ast-lib-maker").Lib.MatchData[]; }; declare function matchAsNonReadableNonWritable({ node }: Rule.MatchData): Rule.MatchOverride | boolean; declare function matchAsNonWritable({ node }: Rule.MatchData): Rule.MatchOverride | boolean; declare function matchAsNullishAndNonWritable(data: Rule.MatchData): Rule.MatchOverride | boolean; declare const matchers: { matchAsNonReadableNonWritable: typeof matchAsNonReadableNonWritable; matchAsNonWritable: typeof matchAsNonWritable; matchAsNullishAndNonWritable: typeof matchAsNullishAndNonWritable; }; declare function createRule(config: CreateRule.Config): ESLint.Rule.RuleModule; export { astLib, matchers, createRule, CreateRule, Rule }; //# sourceMappingURL=index.mjs.d.ts.map