UNPKG

@ospm/eslint-plugin-react-signals-hooks

Version:

ESLint plugin for React Signals hooks - enforces best practices, performance optimizations, and integration patterns for @preact/signals-react usage in React projects

49 lines 1.73 kB
import type { PerformanceOperationKeys } from './performance-constants.js'; /** * Performance budget configuration for rule execution * * @property maxTime - Maximum execution time in milliseconds * @property maxMemory - Maximum memory usage in bytes * @property maxNodes - Maximum number of AST nodes to process * @property enableMetrics - Whether to collect detailed performance metrics * @property logMetrics - Whether to log metrics to console * @property maxOperations - Operation-specific limits */ export type PerformanceBudget = { maxTime?: number | undefined; maxMemory?: number | undefined; maxNodes?: number | undefined; enableMetrics?: boolean | undefined; logMetrics?: boolean | undefined; maxOperations?: Partial<Record<PerformanceOperationKeys, number>> | undefined; }; export type PerformanceMetrics = { startTime: number; endTime?: number | undefined; duration?: number | undefined; memoryUsage?: NodeJS.MemoryUsage | undefined; memoryDelta?: number | undefined; nodeCount: number; operationCounts: Record<string, number>; filePath: string; ruleName: string; exceededBudget?: boolean | undefined; budgetExceededBy?: number | undefined; perfBudget?: PerformanceBudget | undefined; phaseDurations?: Record<string, number> | undefined; customMetrics?: Record<string, unknown> | undefined; nodeTypes?: Map<string, number>; nodeLocations?: Array<{ type: string; start: { line: number; column: number; }; end: { line: number; column: number; }; }>; budgetExceededNodeTypes?: Set<string>; }; //# sourceMappingURL=types.d.ts.map