@blouflashdb/eslint-plugin-pinia
Version:
ESLint plugin for Pinia best practices
31 lines (30 loc) • 1.03 kB
TypeScript
import { Linter, Rule } from "eslint";
//#region src/utils/rule-creator.d.ts
type RuleModule<T extends readonly unknown[]> = Rule.RuleModule & {
defaultOptions: T;
};
//#endregion
//#region src/index.d.ts
declare const plugin: {
meta: {
name: string;
version: string;
};
rules: {
'never-export-initialized-store': RuleModule<[]>;
'no-duplicate-store-ids': RuleModule<[]>;
'no-return-global-properties': RuleModule<[]>;
'no-store-to-refs-in-store': RuleModule<[]>;
'prefer-single-store-per-file': RuleModule<[]>;
'prefer-use-store-naming-convention': RuleModule<[{
checkStoreNameMismatch: boolean;
storeSuffix: string;
}]>;
'require-setup-store-properties-export': RuleModule<[]>;
};
};
type RuleDefinitions = typeof plugin['rules'];
type RuleOptions = { [K in keyof RuleDefinitions]: RuleDefinitions[K]['defaultOptions'] };
type Rules = { [K in keyof RuleOptions]: Linter.RuleEntry<RuleOptions[K]> };
//#endregion
export { RuleOptions, Rules, plugin as default };