types/rule.types.ts
types/rule.types.ts is a file in GovLab Extension Host. 25 lines of code and 10 definitions.
import type { AstNode } from "./syntax.types.ts";
import type { CheckDeclaration } from "@govlab/context";
import type { Rule } from "eslint";
export type NodeHandler = (node: AstNode, raw: Rule.Node) => void;
export type NodeHandlers = Record<string, NodeHandler>;
export type RuleContext = Rule.RuleContext;
export type RuleListener = Rule.RuleListener;
export type RuleFixer = Rule.RuleFixer;
export type RuleNode = Rule.Node;
export interface LocalRuleMeta extends Omit<Rule.RuleMetaData, "docs"> {
docs: Rule.RuleMetaData["docs"] & { checks: CheckDeclaration; workspaceWide?: boolean };
}
export interface LocalRule {
meta: LocalRuleMeta;
create: (context: RuleContext) => RuleListener;
}
export interface RuleFileShape {
anyNodes: AstNode[];
guards: AstNode[];
ruleObjects: AstNode[];
}
export interface RuleObjectShape {
meta: AstNode | null;
metaProperty: AstNode | null;
}