UNPKG

eslint-plugin-mocha

Version:

Eslint rules for mocha.

42 lines 3.64 kB
import type { Rule, Scope, SourceCode } from 'eslint'; type MemberExpressionNode = Readonly<Parameters<Exclude<Rule.RuleListener['MemberExpression'], undefined>>[0]>; type IdentifierNode = Readonly<Parameters<Exclude<Rule.RuleListener['Identifier'], undefined>>[0]>; type ObjectExpressionNode = Readonly<Parameters<Exclude<Rule.RuleListener['ObjectExpression'], undefined>>[0]>; type IdentifierLike = Readonly<Pick<IdentifierNode, 'name' | 'type'>>; type MemberExpressionLike = Readonly<Pick<MemberExpressionNode, 'computed' | 'object' | 'property' | 'type'>>; export type TrackedBinding = Readonly<Scope.Variable> | string; export type TrackedReferenceState = { readonly aliasBindings: ReadonlySet<TrackedBinding>; readonly containerPropertiesByBinding: ReadonlyMap<TrackedBinding, ReadonlySet<string>>; }; export type PendingPathState = { readonly aliasBindings: ReadonlySet<TrackedBinding>; readonly containerPropertiesByBinding: ReadonlyMap<TrackedBinding, ReadonlySet<string>>; readonly hasUnhandledPath: boolean; }; type BindingAndProperty = { readonly binding: TrackedBinding; readonly propertyName: string | undefined; }; type ContainerPropertyAssignment = { readonly propertyName: string | undefined; readonly source: Readonly<Rule.Node> | null; readonly target: TrackedBinding; }; export declare function getTrackedBinding(sourceCode: Readonly<SourceCode>, node: IdentifierLike): TrackedBinding; export declare function getMemberExpressionBindingAndProperty(sourceCode: Readonly<SourceCode>, node: MemberExpressionLike): Readonly<BindingAndProperty> | undefined; export declare function createHandledPendingPathState(): PendingPathState; export declare function createInitialPendingPathState(callbackBinding: TrackedBinding): PendingPathState; export declare function cloneTrackedContainerProperties(containerPropertiesByBinding: ReadonlyMap<TrackedBinding, ReadonlySet<string>>): Map<TrackedBinding, Set<string>>; export declare function clonePendingPathState(state: Readonly<PendingPathState>): PendingPathState; export declare function haveSameTrackedBindings(left: ReadonlySet<TrackedBinding>, right: ReadonlySet<TrackedBinding>): boolean; export declare function haveSameTrackedContainerProperties(left: ReadonlyMap<TrackedBinding, ReadonlySet<string>>, right: ReadonlyMap<TrackedBinding, ReadonlySet<string>>): boolean; export declare function haveSamePendingPathStates(left: Readonly<PendingPathState>, right: Readonly<PendingPathState>): boolean; export declare function mergeIncomingPendingPathStates(previousStates: readonly Readonly<PendingPathState>[]): PendingPathState; export declare function isTrackedCallbackExpression(sourceCode: Readonly<SourceCode>, node: Readonly<Rule.Node>, state: Readonly<TrackedReferenceState>): boolean; export declare function collectTrackedCallbackObjectProperties(sourceCode: Readonly<SourceCode>, node: Readonly<ObjectExpressionNode>, state: Readonly<TrackedReferenceState>): Set<string>; export declare function getTrackedContainerPropertiesFromExpression(sourceCode: Readonly<SourceCode>, node: Readonly<Rule.Node>, state: Readonly<PendingPathState>): Set<string> | undefined; export declare function applyBindingSourceValue(sourceCode: Readonly<SourceCode>, state: Readonly<PendingPathState>, source: Readonly<Rule.Node> | null, target: TrackedBinding): PendingPathState; export declare function applyContainerPropertyAssignment(sourceCode: Readonly<SourceCode>, state: Readonly<PendingPathState>, assignment: Readonly<ContainerPropertyAssignment>): PendingPathState; export {}; //# sourceMappingURL=tracked-callback-reference-state.d.ts.map