eslint-plugin-mocha
Version:
Eslint rules for mocha.
32 lines • 1.72 kB
TypeScript
import type { Rule } from 'eslint';
import type { CallbackHandlingOperation } from '../callback-handling-state.ts';
import { type TrackedBinding } from '../tracked-callback-reference-state.ts';
type TrackedCallbackFunctionBase = {
readonly callbackBinding: TrackedBinding;
readonly codePath: Readonly<Rule.CodePath>;
readonly currentSegments: ReadonlySet<Rule.CodePathSegment>;
readonly operationsBySegmentId: ReadonlyMap<string, readonly CallbackHandlingOperation[]>;
};
export type DirectTrackedCallbackFunction = TrackedCallbackFunctionBase & {
readonly callbackName: string;
readonly callbackNode: Rule.Node;
};
type InheritedTrackedCallbackFunction = TrackedCallbackFunctionBase & {
readonly callbackName: undefined;
readonly callbackNode: undefined;
};
export type TrackedCallbackFunction = DirectTrackedCallbackFunction | InheritedTrackedCallbackFunction;
type SharedCallbackTrackingOptions = {
readonly ignorePending: boolean;
readonly trackHandledCallbackArguments: boolean;
};
type CallbackTrackingOptions = (SharedCallbackTrackingOptions & {
readonly includeInheritedCallbackBinding: false;
readonly onTrackedFunctionEnd: (trackedFunction: Readonly<DirectTrackedCallbackFunction>) => void;
}) | (SharedCallbackTrackingOptions & {
readonly includeInheritedCallbackBinding: true;
readonly onTrackedFunctionEnd: (trackedFunction: Readonly<DirectTrackedCallbackFunction | InheritedTrackedCallbackFunction>) => void;
});
export declare function createTrackedCallbackVisitors(context: Readonly<Rule.RuleContext>, callbackTrackingOptions: Readonly<CallbackTrackingOptions>): Readonly<Rule.RuleListener>;
export {};
//# sourceMappingURL=callback-tracking.d.ts.map