Socket
Socket
Sign inDemoInstall

eslint-plugin-smile

Package Overview
Dependencies
6
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    eslint-plugin-smile

Smile ESLint rules for js, ts, react, vue, angular, next...


Version published
Weekly downloads
152
increased by261.9%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

eslint-plugin-smile

This ESLint configuration enforces some rules for eslint.

Installation

Assuming you already have ESLint installed, run:

# npm
npm install eslint-plugin-smile --save-dev

# yarn
yarn add eslint-plugin-smile --dev

Framework configuration

JavaScript project

Update .eslintrc.json with:

{
  "extends": ["plugin:smile/js"]
}

For TypeScript support see TypeScript configuration.

React project

Install peerDependency:

npm i -D eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-react-refresh

And update .eslintrc.json with:

{
  "extends": ["plugin:smile/react"]
}

For TypeScript support see TypeScript configuration.

Vue project

Install peerDependency:

npm i -D eslint-plugin-vue

And update .eslintrc.json with:

{
  "extends": ["plugin:smile/vue"]
}

For TypeScript also install following dependency:

npm i -D @vue/eslint-config-prettier @vue/eslint-config-typescript @rushstack/eslint-patch

And update .eslintrc.json with:

require('@rushstack/eslint-patch/modern-module-resolution');

module.exports = {
  extends: ['plugin:smile/vue-ts'],
};

And see TypeScript configuration.

Angular project

You can eslint to your project with npm run ng add @angular-eslint/schematics.

Then update .eslintrc.json with:

{
  "extends": ["plugin:smile/angular"]
}

And see TypeScript configuration.

Also see Prettier configuration

Next project

Install peerDependency:

npm i -D eslint-config-next

And update .eslintrc.json with:

{
  "extends": ["plugin:smile/next"]
}

For TypeScript support see TypeScript configuration.

Nuxt project

Install peerDependency:

npm i -D @nuxt/eslint-config eslint-plugin-nuxt

And update .eslintrc.json with:

{
  "extends": ["plugin:smile/nuxt"]
}

For TypeScript support see TypeScript configuration.

Tools configurations

Jest project

If you use Jest in your project you can add the plugin:smile/jest configuration:

Install peerDependency:

npm i -D eslint-plugin-jest eslint-plugin-testing-library

And update .eslintrc.json with:

{
  "extends": ["plugin:smile/jest"]
}

Cypress

Cypress files will be automatically checked with any framework configuration.

Storybook

Storybook files will be automatically checked with any framework configuration.

TypeScript configuration

Install additional peerDependency:

npm i -D eslint-import-resolver-typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser

TypeScript is already supported in following configurations:

  • plugin:smile/js
  • plugin:smile/react
  • plugin:smile/angular
  • plugin:smile/next
  • plugin:smile/nuxt

For Vue use plugin:smile/vue-ts instead.

If you want to use additional rules that require type checking (see https://typescript-eslint.io/linting/typed-linting/) you can add install additional peerDependency:

npm i -D @typescript-eslint/eslint-plugin @typescript-eslint/parser

And add the following configuration plugin:smile/ts (in addition to your framework configuration) and add the parserOptions.project option (see https://typescript-eslint.io/packages/parser/#project).

Example:

{
  "extends": ["plugin:smile/next", "plugin:smile/ts"],
  "parserOptions": {
    "project": ["./tsconfig.json"]
  }
}

Prettier configuration

This package use eslint-plugin-prettier to format the code with prettier through eslint.

We recommend using a .prettierrc file a the root of your project and apply the following configuration:

{
  "singleQuote": true
}

Also create a .editorconfig file with:

[*]
charset = utf-8
insert_final_newline = true
end_of_line = lf
indent_style = space
indent_size = 2
max_line_length = 80
trim_trailing_whitespace = true

For angular add the following configuration into the .prettierrc file:

{
  "overrides": [
    {
      "files": "*.html",
      "options": {
        "parser": "angular"
      }
    }
  ]
}

Custom Configuration

You can override some rules in the rule section:

{
  "extends": ["plugin:smile/js"],
  "rules": {
    "no-underscore-dangle": ["error", { allow: ["__schema"] }],
    // ...
  }
}

Keywords

FAQs

Last updated on 10 Apr 2024

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc