Перейти к содержимому
GitHubXDiscord

recommended

Стабильный · с 0.1.0

Дефолтный flat-config пресет, поставляемый @triggery/eslint-plugin. Включает семь из восьми правил со степенями, ловящими реальные проблемы, но не топящими диф. prefer-named-hook в recommended отключено — это стилистический намёк, доступный в более строгом пресете.

Для проектов, которым нужен максимальный сигнал, см. пресет strict, поднимающий всё до уровня error и добавляющий более жёсткие лимиты на размер обработчика/портов.

import triggery from '@triggery/eslint-plugin';

// or, named:
import { recommended } from '@triggery/eslint-plugin';
// eslint.config.js (flat config — ESLint 9.x)
import triggery from '@triggery/eslint-plugin';

export default [
  // … your other configs
  triggery.configs.recommended,
];

Выбор отдельных правил вместо распыления пресета тоже работает:

// eslint.config.js
import triggery from '@triggery/eslint-plugin';

export default [
  {
    plugins: { '@triggery': triggery },
    rules: {
      '@triggery/no-dynamic-id': 'error',
      '@triggery/hook-rules': 'error',
    },
  },
];
ПравилоСтепеньЧто ловит
@triggery/no-dynamic-iderrorcreateTrigger({ id: someVariable }) — id должен быть строковым литералом, чтобы статический анализ (devtools, CLI triggery graph) мог его резолвить.
@triggery/no-event-cascadeerrorОбработчик триггера, зовущий runtime.fire (или хелпер зажигания), запрещён; эмить через actions.<name>?.(payload) либо прими, что каскад намеренный, и отключи правило построчно.
@triggery/hook-ruleserroruseEvent / useCondition / useAction / useInlineTrigger вне React-функции — тот же смысл, что у react-hooks/rules-of-hooks, но применительно к хукам Triggery.
@triggery/exhaustive-conditionswarnУсловие, перечисленное в схеме, но не зарегистрированное ни на одной достижимой ветке кода. Выявляет мёртвую surface area.
@triggery/exhaustive-requiredwarnУсловию, объявленному в required, не хватает дефолтной регистрации (и оно всегда будет short-circuit’ить).
@triggery/max-handler-sizewarnТело функции-обработчика превышает порог (по умолчанию 50 строк). Намёк вынести работу в действия.
@triggery/max-ports-per-triggerwarnУ схемы триггера слишком много событий / условий / суммарных портов. Намёк разбить на несколько триггеров.

Оставшееся правило, @triggery/prefer-named-hook, в recommended не включено — адоптеры обычно предпочитают универсальную форму useEvent(trigger, 'x'), пока у порта не больше пары мест вызова. Включай его в пресете strict или поправилу.

// eslint.config.js
import triggery from '@triggery/eslint-plugin';

export default [
  triggery.configs.recommended,
  {
    rules: {
      '@triggery/exhaustive-conditions': 'error',
      '@triggery/max-handler-size': ['error', { max: 40 }],
    },
  },
];
// eslint.config.js
import triggery from '@triggery/eslint-plugin';

export default [
  triggery.configs.recommended,
  {
    files: ['legacy/**/*.ts'],
    rules: {
      '@triggery/no-dynamic-id': 'off',
      '@triggery/hook-rules': 'off',
    },
  },
];
// eslint.config.js
import triggery from '@triggery/eslint-plugin';

export default [
  triggery.configs.recommended,
  triggery.configs.strict, // overrides previous severities with stricter values
];