https://github.com/evaneos/front-config
https://github.com/evaneos/front-config
library
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/evaneos/front-config
- Owner: Evaneos
- Created: 2022-05-11T08:12:59.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-01T21:26:42.000Z (3 months ago)
- Last Synced: 2025-04-11T04:04:32.262Z (3 months ago)
- Topics: library
- Language: TypeScript
- Homepage:
- Size: 630 KB
- Stars: 0
- Watchers: 8
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# @evaneos/front-config
@evaneos/front-config is the main resource for shared js/ts/tsx linting and config across Evaneos apps.
## Install
```shell
npm install @evaneos/front-config@latest
```# Install
## Eslint flat config
In your `eslint.config.(c|m)js` file, add:
```cjs
const evaneosConfig = require('@evaneos/front-config/eslint/index.js');
module.export = [...evaneosConfig];
``````mjs
import evaneosConfig from '@evaneos/front-config/eslint/index.mjs';
export default [...evaneosConfig];
```You may want to turn off the new rules, here is an example from rm
```
import globals from 'globals';
import evaneosConfig from '@evaneos/front-config/eslint/index.mjs';export default [
...evaneosConfig,
{
files: ['**/*.ts', '**/*.tsx'],
rules: {
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-duplicate-type-constituents': 'off',
'@typescript-eslint/no-unnecessary-type-assertion': 'off',
'@typescript-eslint/no-unused-expressions': 'off',
'@typescript-eslint/unbound-method': 'off',
'@typescript-eslint/no-unsafe-enum-comparison': 'off',
'@typescript-eslint/only-throw-error': 'off',
'@typescript-eslint/no-redundant-type-constituents': 'off',
'@typescript-eslint/await-thenable': 'off',
'@typescript-eslint/require-await': 'off',
'no-constant-binary-expression': 'off',
'@typescript-eslint/no-empty-function': 'off',
'jsx-a11y/alt-text': 'off',
},
},
];```
You may want to lint some files differently, for example if its node or browser or test files, if so you can do like this:
```
{
files: [
'webpack.config.dev.js',
'webpack.config.prod.js',
'webpack.config.common.js',
'.jestrc.js',
'.prettierrc.js',
'babel.config.js',
'jest/mediaFileTransformer.js',
'jest/setup.js',
],
rules: {
'@typescript-eslint/no-require-imports': 'off',
},
languageOptions: {
globals: {
...globals.node,
},
},
},
```## TSConfig
In your `tsconfig.json` file, add:
```json
{
"extends": "@evaneos/front-config/config/tsconfig.json"
}
```## Prettier
In your `.prettierrc.js` file add:
```js
module.exports = {
...require('@evaneos/front-config/prettier/index.js'),
};
```# Contribution
Contributing to this repo should be simple.
If you want to add a rule, plugin or anything, make a simple PR that does it, get it reviewed, merge it and then a release PR will automatically appear few minutes after.
Make sure you follow standard commit.
Merge it and it will automatically build and publish.