eslint-plugin-beautiful-sort
v4.0.1
Published
eslint plugin for imports sort by their type
Maintainers
Readme
eslint-plugin-beautiful-sort
eslint plugin to sort imports by their type
Example
From:
import './styles.css';
import { compose, pipe, curry } from 'src/utils/fp';
import ApiService, { Options } from './api.service';
import Link from '../Link';
import * as utils from 'src/utils';
import React from 'react';To:
import React from 'react'; // special
import * as utils from 'src/utils'; // namespace
import Link from '../Link'; // default
import ApiService, { Options } from './api.service'; // defaultObj
import { compose, pipe, curry } from 'src/utils/fp'; // obj
import './styles.css'; // noneDisable sorting:
/* eslint-disable beautiful-sort/import */
import './styles.css';
import { compose, pipe, curry } from 'src/utils/fp';
import ApiService, { Options } from './api.service';
import Link from '../Link';
import * as utils from 'src/utils';
import React from 'react';Requirements
- Node.js >= 18.18.0
- npm >= 9.0.0
- ESLint >= 9.0.0
Usage
npm i -D eslint-plugin-beautiful-sortRecommended config
// eslint.config.js
import beautifulSort from 'eslint-plugin-beautiful-sort';
export default [beautifulSort.configs.recommended];Custom config
// eslint.config.js
import beautifulSort from 'eslint-plugin-beautiful-sort';
export default [
{
plugins: {
'beautiful-sort': beautifulSort,
},
rules: {
'beautiful-sort/import': [
'error',
{
special: ['react'],
order: ['special', 'namespace', 'default', 'defaultObj', 'obj', 'none'],
},
],
},
},
];API
Special
special is an array of module paths or a string regexp such as "/^src/utils/string$/"
Order
order is an array of import types;
Import type
import type is a string that specifies one of the following imports:
import React from 'react'; // special
import * as utils from 'src/utils'; // namespace
import Link from '../Link'; // default
import ApiService, { Options } from './api.service'; // defaultObj
import { compose, pipe, curry } from 'src/utils/fp'; // obj
import './styles.css'; // none