import-js / import-js/eslint-plugin-import
Use same alphabetize props as ESLint sort-imports
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 5.9k
- Forks
- 1.5k
- PR merge metrics
- No merged PRs in 30d
Description
ESLint's native sort-imports does the sorting I want, but doesn't care about the grouping of imports. On the other hand, import/order gives me the ordering I want, but not the powerful alphabetization sort from sort-imports.
For sort-imports, this is the config I use:
{
'sort-imports': [
'warn',
{
ignoreCase: true,
memberSyntaxSortOrder: [
'single',
'all',
'multiple',
'none',
],
},
],
}
I'd like to do something similar with import/order:
{
alphabetize: {
caseInsensitive: true,
memberSyntaxSortOrder: [
'single',
'all',
'multiple',
'none',
],
order: 'asc',
},
}
I would like this functionality because I'm grouping them differently than the default:
{
groups: [
[
'builtin',
'external',
],
[
'index',
'parent',
'sibling',
],
],
}
Here's an example I'd expect to see:
import PropTypes from 'prop-types'
import React from 'react'
import useMediaQuery from './useMediaQuery'
import useMediaQueryState from './useMediaQueryState'
import { * as actions } from './actions'
import { breakpointsList } from './breakpoints'
import './styles.css'
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the import/order rule and its existing alphabetize configuration and tests. Compare the requested options with ESLint's sort-imports behavior, then verify that alphabetization works with the requested grouping while honoring caseInsensitive, memberSyntaxSortOrder, and order.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- eslint, javascript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100