@gossi/config-eslint

1.3.0 • Public • Published

@gossi/config-eslint

Add eslint to your packages.

Installation

1) Install these packages

pnpm add -D @gossi/config-eslint eslint

2) Add scripts to execute linting

{
  "scripts": {
    "lint:js": "eslint . --cache",
    "lint:js:fix": "eslint . --fix"
  }
}

3) Create Config

Create a eslint.config.js file with your desired config (see below)

Configs

Base

The shared common configs. It's good way to start your own config.

// eslint.config.js
import base from '@gossi/config-eslint/base';

export default configs.base(import.meta.dirname);

Node

For all node projects.

// eslint.config.js
import node from '@gossi/config-eslint/node';

export default node(import.meta.dirname);

Ember

For all ember projects.

// eslint.config.js
import ember from '@gossi/config-eslint/ember';

export default ember(import.meta.dirname);

overriding with storybook (install eslint-plugin-storybook):

import storybook from 'eslint-plugin-storybook';

import ember from '@gossi/config-eslint/ember';

export default [
  ...ember(import.meta.dirname),
  ...storybook.configs['flat/recommended'],
  ...storybook.configs['flat/csf']
];

JSON

If you wish, use it for json.

// eslint.config.js
import json from '@gossi/config-eslint/json';

export default json();

Debugging

To see what the resolved config looks like for a file

ppx @eslint/config-inspector

Utils

Some utilities to help you writing/customizing rules.

hasBabelConfig()

Find out, if a babel config is used:

import { utils } from '@gossi/config-eslint';

const usesBabelWithAConfig = utils.hasBabelConfig(import.meta.dirname);

hasTypescript()

Find out, if typescript is being used.

import { utils } from '@gossi/config-eslint';

const usesTypescript = utils.hasTypescript(import.meta.dirname);

hasTypeModule()

Find out, if package is using "type": "module".

import { utils } from '@gossi/config-eslint';

const usesESM = utils.hasTypeModule(import.meta.dirname);

hasDep()

Figure, if a given dependency is present

import { utils } from '@gossi/config-eslint';

const usesStorybook = utils.hasDep(import.meta.dirname, 'storybook');

Readme

Keywords

none

Package Sidebar

Install

npm i @gossi/config-eslint

Weekly Downloads

2,175

Version

1.3.0

License

none

Unpacked Size

20.7 kB

Total Files

18

Last publish

Collaborators

  • gossi