@gossi/config-eslint
v1.3.1
Published
Add eslint to your packages.
Readme
@gossi/config-eslint
Add eslint to your packages.
Installation
1) Install these packages
pnpm add -D @gossi/config-eslint eslint2) 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-inspectorUtils
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');