Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jay-es/eslint-plugin-vue-sort-components
A plugin for ESLint to keep order of component names
https://github.com/jay-es/eslint-plugin-vue-sort-components
eslint eslint-plugin vue
Last synced: about 13 hours ago
JSON representation
A plugin for ESLint to keep order of component names
- Host: GitHub
- URL: https://github.com/jay-es/eslint-plugin-vue-sort-components
- Owner: jay-es
- Created: 2022-07-09T01:00:07.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-22T07:12:17.000Z (7 months ago)
- Last Synced: 2024-04-23T20:23:21.334Z (7 months ago)
- Topics: eslint, eslint-plugin, vue
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/@jay-es/eslint-plugin-vue-sort-components
- Size: 1.2 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# `eslint-plugin-vue-sort-components`
![CI](https://github.com/jay-es/eslint-plugin-vue-sort-components/actions/workflows/ci.yml/badge.svg?event=push)
![NPM](https://img.shields.io/npm/l/@jay-es/eslint-plugin-vue-sort-components)
![npm (scoped with tag)](https://img.shields.io/npm/v/@jay-es/eslint-plugin-vue-sort-components/latest)
![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)
![types: TypeScript](https://shields.io/badge/types-TypeScript-3178C6)A plugin for ESLint to keep order of component names.
The rule is auto-fixable.## Installation
```shell
$ npm install --save-dev eslint @jay-es/eslint-plugin-vue-sort-components
```or
```shell
$ yarn add -dev @jay-es/eslint-plugin-vue-sort-components
```## Usage
Add `plugin:@jay-es/vue-sort-components/recommended` to the extends section of your `.eslintrc` configuration file.
```js
{
"extends": [
// ...
"plugin:@jay-es/vue-sort-components/recommended"
]
}
```### Custom Configuration
Add `@jay-es/vue-sort-components` to the plugins section of your `.eslintrc` configuration file.
```js
{
"plugins": ["@jay-es/vue-sort-components"]
}
```Then configure the rule under the rules section.
```js
{
"rules": {
"@jay-es/vue-sort-components/vue-sort-components": "error"
}
}
```## Rule Details
This rule checks property definitions of object expressions named `components` and verifies that all keys are sorted alphabetically.
:thumbsdown: Examples of **incorrect** code for this rule:
```js
export default defineComponent({
components: { Foo, Bar, Baz },
});// spreads must be grouped at the top
export default defineComponent({
components: { Bar, Baz, Foo, ...others },
});// not only in Vue-specific context
const myObject = {
components: { Foo, Bar, Baz },
};
```:thumbsup: Examples of **correct** code for this rule:
```js
export default defineComponent({
components: { Bar, Baz, Foo },
});// spreads must be grouped at the top
export default defineComponent({
components: { ...others, Bar, Baz, Foo },
});// not only in Vue-specific context
const myObject = {
components: { Bar, Baz, Foo },
};
```### Options
This rule accepts a configuration object:
```js
{
"@jay-es/vue-sort-components/vue-sort-components": ["error", { sortSpreads: false }]
}
```- `sortSpreads` - if `true`, enforce spread properties to be sorted. Default is `false`.
#### sortSpreads
:thumbsdown: Examples of **incorrect** code for the `{ sortSpreads: true }` option:
```js
export default defineComponent({
components: { ...others2, ...others1, Bar, Baz },
});
```:thumbsup: Examples of **correct** code for the `{ sortSpreads: true }` option:
```js
export default defineComponent({
components: { ...others1, ...others2, Bar, Baz },
});
```