Socket
Book a DemoInstallSign in
Socket

@shopgate/eslint-config

Package Overview
Dependencies
Maintainers
5
Versions
1074
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@shopgate/eslint-config

Eslint configuration for the Shopgate Connect projects.

latest
npmnpm
Version
7.28.0
Version published
Maintainers
5
Created
Source

Shopgate Eslint Configuration

Shopgate's reasonable approach to JavaScript.

This configuration is an extension of the airbnb codestyle which is available here.

Installation

npm i @shopgate/eslint-config --save-dev

Usage

Add the following to the .eslintrc in your project:

{
  "extends": "@shopgate/eslint-config",
  ...
}

Rules

General

Commented out code

No code should be left commented out.

/**
 * static propTypes = {
 *   width: PropTypes.string.isRequired,
 *   color: PropTypes.string,
 *   height: PropTypes.string.isRequired,
 * };
 */

⬆ back to top

Comma dangle

Dangling commas are required for objects with multiple items or properties. This applies to Array, Object, Import and Export.

// bad
const myObject = {
  a: 1,
  b: 2
};

// good
const myObject = {
  a: 1,
  b: 2,
};

// bad
import { var1, var2, var3 } from 'Variables';

// good
import {
  var1,
  var2,
  var3,
} from 'Variables';

⬆ back to top

Multiple empty lines

There should not be multiple empty lines between code blocks.

// bad
const a = 1;
const b = 1;


while (...) {
  ...
}

// good
const a = 1;
const b = 2;

while (...) {
  ...
}

⬆ back to top

Comments

Capitalized comments

All comments should beging with a capital letter. This makes comments more readable and forces more care when constructing comments.

// bad
/**
 * toString() needs to be called here because...
 */

// good
/**
 * This string now needs to be lowercase so that...
 */

⬆ back to top

Functions

Point free

A function should not simply call another function.

const funcA = (params) {
  ...
};

const funcB = (params) {
  funcA(params);
};

⬆ back to top

Objects

Single line objects

If an object is defined with multiple properties then each property should occupy a new line.

// bad
const x = { a: 1, b: 2, c: 3 };

// good
const w = { a: 1 };
const x = {
  a: 1,
  b: 2,
  c: 3,
};

⬆ back to top

Documentation

JSDoc requirement

Every Function, Class, Method and Arrow Function definition should include a valid JSDoc specification.

// bad (missing parameter descriptions)
/**
 * This is funcA. It does something complicated.
 */
const funcA = (param1, param2) {
  ...
};

// bad (invalid specification)
/**
 * This is funcB. It also does something complicated.
 * @param {Object} parameters
 */
const funcB = (param1, param2) {
  ...
};

// good
/**
 * It does something simple because we are using our heads.
 * @param {string} param1 - My first parameter.
 * @param {boolean} param2 - My Second parameter.
 */
const funcC = (param1, param2) {
  ...
};

⬆ back to top

React

Prop Types

Proptypes should be sorted by type (required or not) and alphabetically.

// bad
static propTypes = {
  width: PropTypes.string.isRequired,
  color: PropTypes.string,
  height: PropTypes.string.isRequired,
};

// good
static propTypes = {
  height: PropTypes.string.isRequired,
  width: PropTypes.string.isRequired,
  color: PropTypes.string,
};

⬆ back to top

FAQs

Package last updated on 08 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.