https://github.com/hhru/eslint-config-hh
https://github.com/hhru/eslint-config-hh
frontend-tools
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/hhru/eslint-config-hh
- Owner: hhru
- Created: 2016-07-01T13:28:36.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-03-21T12:31:52.000Z (about 1 year ago)
- Last Synced: 2024-04-14T07:22:15.582Z (about 1 year ago)
- Topics: frontend-tools
- Language: JavaScript
- Homepage:
- Size: 197 KB
- Stars: 0
- Watchers: 39
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
> [!WARNING]
> Репо больше не актуален, мы перенесли его в основной monorepository c фронтенд пакетами.
> Пакет, все также публикуется в [npm](https://www.npmjs.com/package/@hh.ru/eslint-config)# eslint конфиги hh.ru
Репозиторий содержит файлы конфигурации для eslint.
## Установка конфигов
Проекты подтягивают этот репозиторий через npm-зависимость.
Cсылка на конфиг прописывается в `.eslintrc` проекта:
```json
{
"extends": "@hh.ru/eslint-config"
}
```Для поддержки TypeScript нужно создать блок overrides
```json
{
"overrides": [
{
"files": "*.{ts,tsx}",
"extends": "@hh.ru/eslint-config/typescript",
},
],
}
```## Релиз новой версии
Перед релизом надо прописать историю изменений в `readme.md` и указать будущую версию. Версию в package.json менять не нужно, она проставится автоматически при релизе.
Публикация происходит через [release.pyn.ru](release.pyn.ru) Нажимаем Create release -> library и выбираем eslint-config-hh
## История изменений
### 15.2.1
Обновлены eslint плагины для полноценной поддержки typescript 5.6.*
### 15.2.0
Изменена настройка правила `no-floating-promises`: заперещен обход правила через вызов void
### 15.1.1
Поправил формат правила `no-restricted-imports`
### 15.1.0
* Добавлено правило для правильного импорта `date-fns`
### 15.0.0
* Подняты версии зависимостей.
### 14.1.0
* Добавлены prettier и правила для него.
### 14.0.1
* Плагин для проверки корректность импортов bloko заменен на другой.
### 14.0.0
* Добавлено правило проверяющее корректность импортов bloko.
### 13.2.1
* Добавлена настройка для правила `@typescript-eslint/no-misused-promises`.
### 13.2.0
* Подняты версии зависимостей для поддержки typescript 4.9.5
* @typescript-eslint/eslint-plugin
* @typescript-eslint/parser### 13.1.0
* Добавлено игнорирование `import/prefer-default-export` правила для `*.js` и `*.ts` файлов.
### 13.0.0
* Запретил использование noop в typescript, должно решаться на уровне интерфейсов.
### 12.3.0
* Добавлено правило запрета пустых функций для TS аналогично правилу для JS
### 12.2.1
* Добавлена пустая строка после новой матч-группы
### 12.2.0
* Добавлена новая матч-группа для сортировки импортов
### 12.1.0
* Добавлено правило регулирующее порядок импортов
### 12.0.0
* Добавлено правило, запрещающее абсолютные импорты less-файлов
### 11.1.0
* Добавлено правило, разрешающее импорт less-файлов из текущей папки по относительному пути
### 11.0.0
* Добавлены правила отключающие обязательность импорта React при объявлении jsx
### 10.1.0
* В TS-конфиг добавил правило для нейминга классов, енамов, интерфейсов и типов
### 10.0.1
* Поднял версии TS-зависимостей
### 10.0.0
* Добавлен конфиг для TypeScript
### 8.1.1
* Обновлен lodash в зависимостях на 4.17.19
### 8.1.0
* Запрещены non-ascii символы в идентификаторах
### 7.0.1
* Запрет относительных импортов реализован с помощью правила no-restricted-imports вместо no-restricted-syntax
### 7.0.0
* Запрещены относительные импорты
### 6.1.0
* Подняты версии зависимостей для поддержки eslint 6:
* babel-eslint
* eslint-plugin-dollar-sign
* eslint-plugin-import
* eslint-plugin-react-hooks### 6.0.0
* Добавлено правило `exhaustive-deps` для `react-hooks`
* Поднята версия зависимости [eslint-plugin-react-hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks)### 5.0.2
* Запрещены для использования относительные импорты в родительскую директорию (содержащие `..`)
* Поднята версия зависимости [eslint-plugin-import](https://www.npmjs.com/package/eslint-plugin-import) для поддержки eslint `5.x`
* Добавлены правила для [react hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks)
* Добавлена peerDependency на `eslint >= 4.12.1`### 4.0.0
* Запрещены для использования
* [curly](https://eslint.org/docs/rules/curly) всегда error
* Reflect
* Array.from в пользу spread
* Proxy
* WeakMap
* WeakSet
* typed arrays
* Generators
* В качестве парсера используется [babel-eslint](https://www.npmjs.com/package/babel-eslint)
* В [parserOptions](https://eslint.org/docs/user-guide/configuring#specifying-parser-options) включены модули и jsx
* В no-unused-vars включен [ignoreRestSiblings](https://eslint.org/docs/rules/no-unused-vars#ignorerestsiblings)### 3.0.0
* Поправил конфиг для es6:
* Добавил env browser и amd
* no-multiple-empty-lines уменьшил кол-во пустых строк до 1 и до 0 в начале файла
* no-restricted-properties выключил т.к. у airbnb запрещено использовать isNaN и Math.Pow
* arrow-parens - всегда используем () вокруг аргумента
* сгенерировал один конфиг файл для es6
* dot-notation разрешил использование allowKeywords (можно писать .catch())
* удалил index.js и legacy.js теперь main из package.json указывает на base.js### 2.0.0
* Все правила переведены в error.
* Отключены правила:
* no-param-reassign — переназначем преимущественно для простановки значения по-умолчанию или корректировки входных
данных, нет смысла запрещать.
* guard-for-in — у нас практически нет наследуемых объектов, нет смысла добавлять в каждом месте hasOwnProperty ради
линтинга.
* Для правила no-plusplus разрешаем `++`/`--` в циклах.### 1.6.0
* Слили репы с es5 конфигом в одну
### 1.5.0
* Прописали `env` свойство
* Обновили airbnb и зависимости### 1.4.0
* Переводим `no-plusplus` в warn.
* Переводим `no-mixed-operators` в warn, допускаем ввиду большого объема легаси.### 1.3.0
* Отключаем `dot-notation` для ключевых слов для совместимости со старыми браузерами.
* Отключаем `no-new`, иногда нужно просто создать экземпляр класса для запуска его внутренней кухни.
* В свойствах объектов всегда используем camelCase.### 1.1.0
* Оставляем только поддержку es6
### 1.0.0
* Первичный релиз
* Без поддержки es6