Nefarious Plastic Mannequins

    eslint-config-yoctol-base

    0.24.2 • Public • Published

    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'],
      },
    ]
    

    Install

    npm i eslint-config-yoctol-base

    DownloadsWeekly Downloads

    103

    Version

    0.24.2

    License

    MIT

    Unpacked Size

    22.4 kB

    Total Files

    21

    Last publish

    Collaborators

    • link515
    • tw0517tw