eslint-plugin-effector
Version:
Enforcing best practices for Effector
169 lines (168 loc) • 7.65 kB
text/typescript
import { Linter } from "eslint";
//#region src/ruleset.d.ts
declare const ruleset: {
recommended: {
"effector/enforce-effect-naming-convention": "error";
"effector/enforce-store-naming-convention": "error";
"effector/keep-options-order": "warn";
"effector/no-ambiguity-target": "warn";
"effector/no-duplicate-on": "error";
"effector/no-forward": "error";
"effector/no-getState": "error";
"effector/no-guard": "error";
"effector/no-unnecessary-combination": "warn";
"effector/no-unnecessary-duplication": "warn";
"effector/no-useless-methods": "error";
"effector/no-watch": "warn";
};
patronum: {
"effector/no-patronum-debug": "warn";
};
scope: {
"effector/require-pickup-in-persist": "error";
"effector/strict-effect-handlers": "error";
};
react: {
"effector/enforce-gate-naming-convention": "error";
"effector/enforce-exhaustive-useUnit-destructuring": "warn";
"effector/mandatory-scope-binding": "error";
"effector/no-units-spawn-in-render": "error";
"effector/prefer-useUnit": "error";
};
future: {
"effector/no-domain-unit-creators": "warn";
};
};
//#endregion
//#region src/index.d.ts
declare const base: {
meta: {
name: string;
version: string;
namespace: string;
};
rules: {
"enforce-effect-naming-convention": import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalid" | "rename", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"enforce-exhaustive-useUnit-destructuring": import("@typescript-eslint/utils/ts-eslint").RuleModule<"unusedKey" | "missingKey", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"enforce-gate-naming-convention": import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalid" | "rename", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"enforce-store-naming-convention": import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalid" | "rename", [{
mode: "prefix" | "postfix";
}], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"keep-options-order": import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidOrder" | "changeOrder", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"mandatory-scope-binding": import("@typescript-eslint/utils/ts-eslint").RuleModule<"useUnitNeeded", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-ambiguity-target": import("@typescript-eslint/utils/ts-eslint").RuleModule<"ambiguous", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-domain-unit-creators": import("@typescript-eslint/utils/ts-eslint").RuleModule<"avoid", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-duplicate-clock-or-source-array-values": import("@typescript-eslint/utils/ts-eslint").RuleModule<"duplicate" | "remove", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-duplicate-on": import("@typescript-eslint/utils/ts-eslint").RuleModule<"duplicate", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-forward": import("@typescript-eslint/utils/ts-eslint").RuleModule<"noForward" | "replaceWithSample", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-getState": import("@typescript-eslint/utils/ts-eslint").RuleModule<"named" | "anonymous", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-guard": import("@typescript-eslint/utils/ts-eslint").RuleModule<"replaceWithSample" | "noGuard", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-patronum-debug": import("@typescript-eslint/utils/ts-eslint").RuleModule<"remove" | "unexpected", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-units-spawn-in-render": import("@typescript-eslint/utils/ts-eslint").RuleModule<"noFactoryInRender" | "noOperatorInRender" | "noCustomFactoryInRender", [{
detectCustomFactories: true | false | {
allowlist: string[];
};
}], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-unnecessary-combination": import("@typescript-eslint/utils/ts-eslint").RuleModule<"unnecessary", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-unnecessary-duplication": import("@typescript-eslint/utils/ts-eslint").RuleModule<"duplicate" | "removeClock" | "removeSource", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-useless-methods": import("@typescript-eslint/utils/ts-eslint").RuleModule<"uselessMethod", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"no-watch": import("@typescript-eslint/utils/ts-eslint").RuleModule<"restricted", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"prefer-useUnit": import("@typescript-eslint/utils/ts-eslint").RuleModule<"useUseUnit", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"require-pickup-in-persist": import("@typescript-eslint/utils/ts-eslint").RuleModule<"missing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
"strict-effect-handlers": import("@typescript-eslint/utils/ts-eslint").RuleModule<"mixed", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
name: string;
};
};
};
declare const legacyConfigs: {
recommended: {
rules: {
"effector/enforce-effect-naming-convention": "error";
"effector/enforce-store-naming-convention": "error";
"effector/keep-options-order": "warn";
"effector/no-ambiguity-target": "warn";
"effector/no-duplicate-on": "error";
"effector/no-forward": "error";
"effector/no-getState": "error";
"effector/no-guard": "error";
"effector/no-unnecessary-combination": "warn";
"effector/no-unnecessary-duplication": "warn";
"effector/no-useless-methods": "error";
"effector/no-watch": "warn";
};
};
scope: {
rules: {
"effector/require-pickup-in-persist": "error";
"effector/strict-effect-handlers": "error";
};
};
react: {
rules: {
"effector/enforce-gate-naming-convention": "error";
"effector/enforce-exhaustive-useUnit-destructuring": "warn";
"effector/mandatory-scope-binding": "error";
"effector/no-units-spawn-in-render": "error";
"effector/prefer-useUnit": "error";
};
};
future: {
rules: {
"effector/no-domain-unit-creators": "warn";
};
};
patronum: {
rules: {
"effector/no-patronum-debug": "warn";
};
};
};
declare const flatConfigs: Record<keyof typeof ruleset, Linter.Config>;
declare const plugin: {
flatConfigs: typeof flatConfigs; /** @deprecated Migrate to modern ESLint v9+ Flat Config format */
configs: typeof legacyConfigs;
} & typeof base;
//#endregion
export { plugin as default };