npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

eslint-plugin-arrow-return-style

v1.3.1

Published

Enforce arrow function return style and automatically fix it

Downloads

54,545

Readme

eslint-plugin-arrow-return-style

Enforce arrow function return style and automatically fix it

npm version npm downloads codecov License

Features

This rule serves as an alternative to the arrow-body-style with as-needed options, used to improve the style of arrow function return statement.

  • When arrow function expressions are multiline or exceed a certain length, explicit return should be enforced to improve readability and extensibility.
  • When an arrow function has only one return statement (and does not contain any comments), implicit return should be used to simplify the code and improve readability.
  • When using arrow functions as named exports, explicit return should always be used to maintain consistency with regular functions.
  • When using arrow functions as React components, always use explicit return to facilitate the addition of props and hooks in the future.

Install

pnpm add eslint-plugin-arrow-return-style -D

Usage

/** @type {import('eslint').Linter.Config} */
module.exports = {
  extends: ['plugin:arrow-return-style/recommended'],
};

Examples

Fail

/* eslint-disable arrow-return-style/arrow-return-style */

const delay = () =>
  new Promise((resolve) => {
    setTimeout(resolve, 1000);
  });

const foo = () => {
  return 'foo';
};

Array.from({ length: 10 }).map((_, i) => {
  return i + 1;
});

const obj = () => {
  return { name: '' };
};

const data = () => ({
  name: '',
});

export const defineConfig = <T extends Linter.Config>(config: T) => config;

const fn = () => /* block comment */ 1;

const Div = () => (
  <>
    <div />
  </>
);

Pass

const delay = () => {
  return new Promise((resolve) => {
    setTimeout(resolve, 1000);
  });
};

const foo = () => 'foo';

const obj = () => ({ name: '' });

Array.from({ length: 10 }).map((_, i) => i + 1);

const data = () => {
  return {
    name: '',
  };
};

export const defineConfig = <T extends Linter.Config>(config: T) => {
  return config;
};

const fn = () => {
  /* block comment */
  return 1;
};

const Div = () => {
  return (
    <>
      <div />
    </>
  );
};

Options

maxLen

Type: number
Default: 80

If the arrow function expression exceeds maxLen characters, it is forced to use explicit return.

jsxAlwaysUseExplicitReturn

Type: boolean
Default: false

If set true, always use explicit return when return value is JSXElement or JSXFragment.

namedExportsAlwaysUseExplicitReturn

Type: boolean
Default: true

By default, named exported arrow functions will always use explicit return to maintain consistency with regular functions because it is more intuitive and unified, and convenient for expansion.

Rules

⚠️ Configurations set to warn in.
✅ Set in the recommended configuration.
🔧 Automatically fixable by the --fix CLI option.

| Name                    | Description | ⚠️ | 🔧 | | :--------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- | :- | :- | | arrow-return-style | Enforce arrow function return style | ✅ | 🔧 | | no-export-default-arrow | Disallow export default anonymous arrow functionAutomatically fix using the current file name. | ✅ | 🔧 |

License

MIT License © 2023 u3u