Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

eslint-config-yoctol-base

Package Overview
Dependencies
Maintainers
2
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-config-yoctol-base

Yoctol specific base linting rules for ESLint

  • 0.24.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4.5K
increased by87.19%
Maintainers
2
Weekly downloads
 
Created
Source

eslint-config-yoctol-base

NPM version Build Status Greenkeeper badge Dependency Status

Yoctol Info. base ESLint config, fork from eslint-config-airbnb-base.

Usage

We export two ESLint configurations for your usage.

eslint-config-yoctol-base

Our default export contains all of our ESLint rules, including ECMAScript 6+. It requires eslint, eslint-plugin-import, eslint-plugin-prettier, eslint-plugin-sort-imports-es6-autofix and prettier.

  1. Install the correct versions of each package, which are listed by the command:
npm info "eslint-config-yoctol-base@latest" peerDependencies

Linux/OSX users can simply run

(
  export PKG=eslint-config-yoctol-base;
  npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"
)

Which produces and runs a command like:

  npm install --save-dev eslint-config-yoctol-base eslint@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-prettier@^#.#.# eslint-plugin-sort-imports-es6-autofix@^#.#.#

Windows users can either install all the peer dependencies manually, or use the install-peerdeps cli tool.

npm install -g install-peerdeps
install-peerdeps --dev eslint-config-yoctol-base

The cli will produce and run a command like:

npm install --save-dev eslint-config-yoctol-base eslint@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-prettier@^#.#.# eslint-plugin-sort-imports-es6-autofix@^#.#.#
  1. Add "extends": "yoctol-base" to your .eslintrc

eslint-config-yoctol-base/legacy

Lints ES5 and below. Requires eslint and eslint-plugin-import.

  1. Install the correct versions of each package, which are listed by the command:
npm info "eslint-config-yoctol-base@latest" peerDependencies

Linux/OSX users can simply run

(
  export PKG=eslint-config-yoctol-base;
  npm info "$PKG" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG"
)

Which produces and runs a command like:

npm install --save-dev eslint-config-yoctol-base eslint@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-prettier@^#.#.# eslint-plugin-sort-imports-es6-autofix@^#.#.#
  1. Add "extends": "yoctol-base/legacy" to your .eslintrc

See Airbnb's overarching ESLint config, Airbnb's Javascript styleguide, and the ESlint config docs for more information.

Rules be overwritten

best-practices

- 'class-methods-use-this': 'off'
- 'consistent-return': 'off'
errors
- 'comma-dangle': ['error', {
    arrays: 'always-multiline',
    objects: 'always-multiline',
    imports: 'always-multiline',
    exports: 'always-multiline',
    functions: 'ignore',
  }]
es6
- 'arrow-parens': ['error', 'as-needed']
- 'prefer-arrow-callback': ['error', { allowNamedFunctions: true }]
- 'prefer-destructuring': [
  'error',
  {
    VariableDeclarator: {
      array: false,
      object: true
    },
    AssignmentExpression: {
      array: false,
      object: false
    }
  },
  {
    enforceForRenamedProperties: false
  }
]
import
- import/prefer-default-export: 'off'
- import/order: ['error', {
  groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'],
  'newlines-between': 'always',
}]
- import/no-extraneous-dependencies: ['error', {
  devDependencies: [
    '**/__tests__/*.spec.js',
    '**/__stories__/*.story.js',
    '**/scripts/*.js',
    '**/test/**/*.js',
    '**/webpack.config.*.js',
  ],
}]
node
- 'global-require': 'off'
style
- linebreak-style: 'off'
- max-len: ['error', 100, 2, {
  ignorePattern: ' // eslint-disable-line ',
  ignoreUrls: true,
  ignoreComments: false,
  ignoreStrings: true,
  ignoreTemplateLiterals: true,
  ignoreRegExpLiterals: true,
}]
- no-plusplus: ['error', { allowForLoopAfterthoughts: true }]
- no-underscore-dangle: 'off'
- no-restricted-syntax: [
  'error',
  {
    selector: 'ForInStatement',
    message:
      'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.',
  },
  {
    selector: 'LabeledStatement',
    message:
      'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.',
  },
  {
    selector: 'WithStatement',
    message:
      '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.',
  },
]
(Note: remove ForOfStatement from airbnb's no-restricted-syntax)

prettier

- prettier/prettier: [
  'error',
  {
    trailingComma: 'es5',
    singleQuote: true
  },
  'arrow-body-style': 'off',
  'prefer-arrow-callback': 'off',
]

sort-imports-es6-autofix

- sort-imports-es6-autofix/sort-imports-es6: [
  'error',
  {
    ignoreCase: false,
    ignoreMemberSort: false,
    memberSyntaxSortOrder: ['single', 'multiple', 'all', 'none'],
  },
]

Keywords

FAQs

Package last updated on 17 Sep 2021

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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc