Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ESLint
  3. arrow functions

arrow functions

MITJavaScript

ESLint plugin providing rules to enforce readable and proper arrow function definitions.

GitHubGitHub
312 stars14 forks0 contributors

What is arrow functions?

ESLint Plugin Proper Arrows is an ESLint plugin that provides a collection of rules to enforce stricter and more readable arrow function definitions in JavaScript. It solves the problem of arrow functions being used in ways that harm code readability and maintainability, such as anonymous inline functions, unclear return values, and misuse of lexical `this`.

Target Audience

JavaScript developers and teams who use ESLint and want to enforce consistent, readable arrow function patterns across their codebase, particularly in larger or long-term projects.

Value Proposition

Developers choose this plugin because it fills gaps in ESLint's built-in rules by specifically targeting arrow function readability issues with highly configurable, opinionated rules that promote proper usage over syntactic convenience.

Overview

ESLint rules to ensure proper arrow function definitions

Use Cases

Best For

  • Enforcing consistent arrow function parameter naming and usage
  • Improving stack trace readability by ensuring arrow functions have names
  • Restricting arrow function usage in global scope or as object properties
  • Preventing confusing concise returns like object literals or nested ternaries
  • Ensuring arrow functions are used intentionally for lexical `this` behavior
  • Maintaining code style in teams with strict readability standards

Not Ideal For

  • Projects relying heavily on inline arrow functions for UI framework callbacks, such as React event handlers
  • Codebases adopting a functional programming style with extensive arrow function chaining and point-free compositions
  • Teams with established, divergent arrow function conventions or minimal linting requirements
  • Rapid prototyping environments where strict code style enforcement could hinder iteration speed

Pros & Cons

Pros

Granular Rule Configuration

Each of the five rules offers fine-tuned options, like the 'params' rule's modes for unused parameters and minimum name lengths, allowing teams to customize enforcement precisely.

Enhanced Debuggability

The 'name' rule requires arrow functions to be assigned for inferred names, directly improving stack trace readability and addressing a gap in ESLint's built-in func-names rule.

Philosophical Consistency

Rules like 'this' enforce that arrow functions are used intentionally for lexical this behavior, promoting a deliberate approach over syntactic convenience.

Comprehensive Coverage

It tackles multiple arrow function aspects—parameters, naming, placement, returns, and this usage—filling gaps left by ESLint's built-in rules, as noted in the README comparisons.

Cons

High Configuration Overhead

With five distinct rules each having multiple modes and options, setting up requires significant effort and team consensus, which can be overwhelming for new adopters.

Opinionated Defaults

Strict defaults, such as forbidding arrow functions in object properties or exports, conflict with common JavaScript patterns and may necessitate frequent overrides.

Limited Framework Integration

The README lacks presets or guidance for popular frameworks like React or Vue, leaving teams to manually adapt rules to their ecosystem, which can lead to integration friction.

Frequently Asked Questions

Quick Stats

Stars312
Forks14
Contributors0
Open Issues5
Last commit1 year ago
CreatedSince 2019

Tags

#developer-tools#code-style#code-quality#eslint-rules#eslint-plugin#javascript#eslint#linting#static-analysis#arrow-functions

Included in

ESLint4.7k
Auto-fetched 9 hours ago

Related Projects

importimport

ESLint plugin with rules that help validate proper imports.

Stars5,944
Forks1,548
Last commit15 days ago
PromisePromise

Enforce best practices for JavaScript promises

Stars1,004
Forks103
Last commit16 hours ago
functionalfunctional

ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.

Stars996
Forks35
Last commit17 hours ago
boundariesboundaries

Enforce architectural boundaries in your JavaScript and TypeScript projects

Stars974
Forks20
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub