eslint-plugin-sonarjs
Version:
31 lines (30 loc) • 1.26 kB
TypeScript
import type { Rule } from 'eslint';
import type { RulesMeta } from '@eslint/core';
import type estree from 'estree';
import * as regexpp from '@eslint-community/regexpp';
import type { RegExpVisitor } from '@eslint-community/regexpp/visitor';
import { type IssueLocation } from '../location.js';
/**
* Rule context for regex rules that also includes the original ESLint node
* denoting the regular expression (string) literal.
*/
export type RegexRuleContext = Rule.RuleContext & {
node: estree.Node;
reportRegExpNode: (descriptor: RegexReportDescriptor, secondaryLocations?: IssueLocation[]) => void;
};
type RegexReportMessage = Rule.ReportDescriptorMessage;
type RegexReportData = {
regexpNode: regexpp.AST.Node;
node: estree.Node;
offset?: [number, number];
};
type RegexReportOptions = Rule.ReportDescriptorOptions;
type RegexReportDescriptor = RegexReportData & RegexReportMessage & RegexReportOptions;
/**
* Rule template to create regex rules.
* @param handlers - the regexpp node handlers
* @param meta - the (optional) rule metadata
* @returns the resulting rule module
*/
export declare function createRegExpRule(handlers: (context: RegexRuleContext) => RegExpVisitor.Handlers, meta?: RulesMeta): Rule.RuleModule;
export {};