@blouflashdb/eslint-plugin-pinia
v0.0.2
Published
ESLint plugin for Pinia best practices
Maintainers
Readme
eslint-plugin-pinia
Eslint plugin that enforces some best practices for writing pinia stores
Installation
You'll first need to install ESLint:
npm i eslint --save-devNext, install @blouflashdb/eslint-plugin-pinia:
npm install @blouflashdb/eslint-plugin-pinia --save-devUsage
With @antfu/eslint-config
This plugin is designed to work seamlessly with @antfu/eslint-config:
// eslint.config.mjs
import antfu from '@antfu/eslint-config'
import pinia from '@blouflashdb/eslint-plugin-pinia'
export default antfu(
{
vue: true,
},
{
plugins: {
pinia,
},
rules: {
'pinia/never-export-initialized-store': 'error',
'pinia/no-duplicate-store-ids': 'error',
'pinia/no-return-global-properties': 'error',
'pinia/no-store-to-refs-in-store': 'error',
'pinia/prefer-use-store-naming-convention': 'warn',
'pinia/require-setup-store-properties-export': 'error',
},
},
)Flat Config (eslint.config.js)
Add pinia to the plugins section and configure the rules you want to use:
// eslint.config.mjs
import pinia from '@blouflashdb/eslint-plugin-pinia'
export default [
{
plugins: {
pinia,
},
rules: {
'pinia/never-export-initialized-store': 'error',
'pinia/no-duplicate-store-ids': 'error',
'pinia/no-return-global-properties': 'error',
'pinia/no-store-to-refs-in-store': 'error',
'pinia/prefer-use-store-naming-convention': 'warn',
'pinia/require-setup-store-properties-export': 'error',
},
},
]Rules
| Name | Description |
| :------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------- |
| never-export-initialized-store | Never export an initialized named or default store. |
| no-duplicate-store-ids | Disallow duplicate store ids. |
| no-return-global-properties | Disallows returning globally provided properties from Pinia stores. |
| no-store-to-refs-in-store | Disallow use of storeToRefs inside defineStore |
| prefer-single-store-per-file | Encourages defining each store in a separate file. |
| prefer-use-store-naming-convention | Enforces the convention of naming stores with the prefix use followed by the store name. |
| require-setup-store-properties-export | In setup stores all state properties must be exported. |
