Skip to content

Commit

Permalink
Eslint: autosort imports by path (#2603)
Browse files Browse the repository at this point in the history
I was talking to mwiencek yesterday about wanting to sort
imports by path (most plugins sort by import name) and I eventually
found https://github.com/lydell/eslint-plugin-simple-import-sort/
which seems to do the trick fairly well. I added a custom sorting config
so that we still sort same-folder imports last. It's based on one of
their default examples, removing things that we don't seem to need.

import/order is superseded by this (and could conflict depending
on the configuration chosen) so I'm removing it.
  • Loading branch information
reosarevok committed Sep 14, 2022
1 parent 3317389 commit 30aff7b
Show file tree
Hide file tree
Showing 339 changed files with 715 additions and 686 deletions.
24 changes: 22 additions & 2 deletions .eslintrc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ plugins:
- flowtype
- fb-flow
- react-hooks
- simple-import-sort

env:
browser: true
Expand Down Expand Up @@ -214,7 +215,7 @@ rules:
require-yield: error
rest-spread-spacing: [warn, never]
# sort-imports does not support Flow 'type' imports, so we use the
# import/order rule from eslint-plugin-import instead.
# imports rule from simple-import-sort instead.
sort-imports: off
template-curly-spacing: [warn, never]

Expand All @@ -230,7 +231,6 @@ rules:
import/no-duplicates: warn
import/no-dynamic-require: error
import/no-unresolved: error
import/order: [warn, {newlines-between: always}]

#######################
# eslint-plugin-react #
Expand Down Expand Up @@ -357,3 +357,23 @@ rules:

react-hooks/exhaustive-deps: error
react-hooks/rules-of-hooks: error

####################################
# eslint-plugin-simple-import-sort #
####################################

simple-import-sort/imports: [warn, {groups: [
# Node.js builtins. You could also generate this regex if you use a `.js` config.
# For example: `^(${require("module").builtinModules.join("|")})(/|$)`
["^(assert|buffer|child_process|cluster|console|constants|crypto|dgram|dns|domain|events|fs|http|https|module|net|os|path|punycode|querystring|readline|repl|stream|string_decoder|sys|timers|tls|tty|url|util|vm|zlib|freelist|v8|process|async_hooks|http2|perf_hooks)(/.*|$)"],
# Packages.
["^@?\\w"],
# Side effect imports.
["^\\u0000"],
# Parent imports. Put `..` last.
["^\\.\\.(?!/?$)", "^\\.\\./?$"],
# Other relative imports. Put same-folder imports and `.` last.
["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"],
],
}]
simple-import-sort/exports: warn
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
"core-js": "3.6.5",
"deep-freeze-strict": "1.1.1",
"detect-node": "2.0.3",
"eslint-plugin-simple-import-sort": "^7.0.0",
"fast-diff": "1.2.0",
"filesize": "2.0.4",
"generic-diff": "1.0.1",
Expand Down
4 changes: 2 additions & 2 deletions root/account/EditProfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ import UserAccountLayout, {
} from '../components/UserAccountLayout.js';
import {CatalystContext} from '../context.mjs';
import * as manifest from '../static/manifest.mjs';
import EditProfileForm
from '../static/scripts/account/components/EditProfileForm.js';
import type {EditProfileFormPropsT}
from '../static/scripts/account/components/EditProfileForm.js';
import EditProfileForm
from '../static/scripts/account/components/EditProfileForm.js';

const EditProfile = (
props: EditProfileFormPropsT,
Expand Down
2 changes: 1 addition & 1 deletion root/account/LostPassword.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ import Layout from '../layout/index.js';
import FormCsrfToken
from '../static/scripts/edit/components/FormCsrfToken.js';
import FormRow from '../static/scripts/edit/components/FormRow.js';
import FormRowText from '../static/scripts/edit/components/FormRowText.js';
import FormRowEmailLong
from '../static/scripts/edit/components/FormRowEmailLong.js';
import FormRowText from '../static/scripts/edit/components/FormRowText.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';

type LostPasswordFormT = FormT<{
Expand Down
2 changes: 1 addition & 1 deletion root/account/LostPasswordSent.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

import * as React from 'react';

import {CONTACT_URL} from '../constants.js';
import StatusPage from '../components/StatusPage.js';
import {CONTACT_URL} from '../constants.js';

const LostPasswordSent = (): React.Element<typeof StatusPage> => (
<StatusPage title={hyphenateTitle(l('Lost Password'), l('Email Sent!'))}>
Expand Down
2 changes: 1 addition & 1 deletion root/account/LostUsernameSent.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

import * as React from 'react';

import {CONTACT_URL} from '../constants.js';
import StatusPage from '../components/StatusPage.js';
import {CONTACT_URL} from '../constants.js';

const LostUsernameSent = (): React.Element<typeof StatusPage> => (
<StatusPage title={hyphenateTitle(l('Lost Username'), l('Email Sent!'))}>
Expand Down
6 changes: 3 additions & 3 deletions root/account/Preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ import UserAccountLayout, {
sanitizedAccountLayoutUser,
} from '../components/UserAccountLayout.js';
import {CatalystContext} from '../context.mjs';
import PreferencesForm
from '../static/scripts/account/components/PreferencesForm.js';
import * as manifest from '../static/manifest.mjs';
import type {PreferencesFormPropsT}
from '../static/scripts/account/components/PreferencesForm.js';
import * as manifest from '../static/manifest.mjs';
import PreferencesForm
from '../static/scripts/account/components/PreferencesForm.js';

const Preferences = (
props: PreferencesFormPropsT,
Expand Down
4 changes: 2 additions & 2 deletions root/account/applications/Edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
import * as React from 'react';

import Layout from '../../layout/index.js';
import ApplicationForm
from '../../static/scripts/account/components/ApplicationForm.js';
import type {ApplicationFormT}
from '../../static/scripts/account/components/ApplicationForm.js';
import ApplicationForm
from '../../static/scripts/account/components/ApplicationForm.js';

type Props = {
+form: ApplicationFormT,
Expand Down
4 changes: 2 additions & 2 deletions root/account/applications/Index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@

import * as React from 'react';

import PaginatedResults from '../../components/PaginatedResults.js';
import {ACCESS_SCOPE_PERMISSIONS} from '../../constants.js';
import {compare} from '../../static/scripts/common/i18n.js';
import Layout from '../../layout/index.js';
import PaginatedResults from '../../components/PaginatedResults.js';
import {compare} from '../../static/scripts/common/i18n.js';
import {commaOnlyListText}
from '../../static/scripts/common/i18n/commaOnlyList.js';
import loopParity from '../../utility/loopParity.js';
Expand Down
4 changes: 2 additions & 2 deletions root/account/applications/Register.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import * as React from 'react';

import Layout from '../../layout/index.js';
import * as manifest from '../../static/manifest.mjs';
import ApplicationForm
from '../../static/scripts/account/components/ApplicationForm.js';
import type {ApplicationFormT}
from '../../static/scripts/account/components/ApplicationForm.js';
import ApplicationForm
from '../../static/scripts/account/components/ApplicationForm.js';

type Props = {
+form: ApplicationFormT,
Expand Down
2 changes: 1 addition & 1 deletion root/admin/EditBanner.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@

import * as React from 'react';

import Layout from '../layout/index.js';
import FormCsrfToken
from '../static/scripts/edit/components/FormCsrfToken.js';
import FormRowTextArea
from '../static/scripts/edit/components/FormRowTextArea.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import Layout from '../layout/index.js';

type Props = {
+form: ReadOnlyFormT<{
Expand Down
4 changes: 2 additions & 2 deletions root/admin/EmailSearch.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@

import * as React from 'react';

import FormRowText from '../static/scripts/edit/components/FormRowText.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import Layout from '../layout/index.js';
import expand2react from '../static/scripts/common/i18n/expand2react.js';
import FormRowText from '../static/scripts/edit/components/FormRowText.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';

import UserList from './components/UserList.js';

Expand Down
4 changes: 2 additions & 2 deletions root/admin/LockedUsernameSearch.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
import * as React from 'react';

import Layout from '../layout/index.js';
import expand2react from '../static/scripts/common/i18n/expand2react.js';
import bracketed from '../static/scripts/common/utility/bracketed.js';
import FormRowCheckbox
from '../static/scripts/edit/components/FormRowCheckbox.js';
import FormRowText from '../static/scripts/edit/components/FormRowText.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import expand2react from '../static/scripts/common/i18n/expand2react.js';
import bracketed from '../static/scripts/common/utility/bracketed.js';

type Props = {
+form: FormT<{
Expand Down
2 changes: 1 addition & 1 deletion root/admin/LockedUsernameUnlock.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
import * as React from 'react';

import Layout from '../layout/index.js';
import expand2text from '../static/scripts/common/i18n/expand2text.js';
import FormCsrfToken
from '../static/scripts/edit/components/FormCsrfToken.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import expand2text from '../static/scripts/common/i18n/expand2text.js';

type Props = {
+form: SecureConfirmFormT,
Expand Down
2 changes: 1 addition & 1 deletion root/admin/PrivilegeSearch.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
import * as React from 'react';

import PaginatedResults from '../components/PaginatedResults.js';
import Layout from '../layout/index.js';
import FormRowCheckbox
from '../static/scripts/edit/components/FormRowCheckbox.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import Layout from '../layout/index.js';

import UserList from './components/UserList.js';

Expand Down
2 changes: 1 addition & 1 deletion root/admin/wikidoc/WikiDocIndex.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
import * as React from 'react';
import type {CellRenderProps} from 'react-table';

import Layout from '../../layout/index.js';
import Table from '../../components/Table.js';
import {SanitizedCatalystContext} from '../../context.mjs';
import Layout from '../../layout/index.js';
import bracketed from '../../static/scripts/common/utility/bracketed.js';
import {isWikiTranscluder}
from '../../static/scripts/common/utility/privileges.js';
Expand Down
2 changes: 1 addition & 1 deletion root/annotation/AnnotationComparison.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import ENTITIES from '../../entities.mjs';
import {SanitizedCatalystContext} from '../context.mjs';
import EditorLink from '../static/scripts/common/components/EditorLink.js';
import DiffSide from '../static/scripts/edit/components/edit/DiffSide.js';
import {INSERT, DELETE} from '../static/scripts/edit/utility/editDiff.js';
import {DELETE, INSERT} from '../static/scripts/edit/utility/editDiff.js';
import chooseLayoutComponent from '../utility/chooseLayoutComponent.js';
import formatUserDate from '../utility/formatUserDate.js';

Expand Down
2 changes: 1 addition & 1 deletion root/annotation/AnnotationHistory.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import * as React from 'react';
import ENTITIES from '../../entities.mjs';
import PaginatedResults from '../components/PaginatedResults.js';
import * as manifest from '../static/manifest.mjs';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import AnnotationHistoryTable
from '../static/scripts/annotation/AnnotationHistoryTable.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import chooseLayoutComponent from '../utility/chooseLayoutComponent.js';

type AnnotationHistoryProps = {
Expand Down
6 changes: 3 additions & 3 deletions root/annotation/EditAnnotation.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@

import * as React from 'react';

import FormRowText from '../static/scripts/edit/components/FormRowText.js';
import FormRowTextArea
from '../static/scripts/edit/components/FormRowTextArea.js';
import EnterEdit from '../static/scripts/edit/components/EnterEdit.js';
import EnterEditNote
from '../static/scripts/edit/components/EnterEditNote.js';
import FormRowText from '../static/scripts/edit/components/FormRowText.js';
import FormRowTextArea
from '../static/scripts/edit/components/FormRowTextArea.js';
import chooseLayoutComponent from '../utility/chooseLayoutComponent.js';

type EditAnnotationFormT = FormT<{
Expand Down
2 changes: 1 addition & 1 deletion root/area/AreaHeader.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@

import * as React from 'react';

import EntityHeader from '../components/EntityHeader.js';
import AreaContainmentLink
from '../static/scripts/common/components/AreaContainmentLink.js';
import localizeTypeNameForEntity
from '../static/scripts/common/i18n/localizeTypeNameForEntity.js';
import EntityHeader from '../components/EntityHeader.js';

type Props = {
+area: AreaT,
Expand Down
2 changes: 1 addition & 1 deletion root/area/AreaIndex.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@

import * as React from 'react';

import * as manifest from '../static/manifest.mjs';
import Annotation from '../static/scripts/common/components/Annotation.js';
import Relationships
from '../static/scripts/common/components/Relationships.js';
import WikipediaExtract
from '../static/scripts/common/components/WikipediaExtract.js';
import * as manifest from '../static/manifest.mjs';

import AreaLayout from './AreaLayout.js';

Expand Down
2 changes: 1 addition & 1 deletion root/area/AreaLayout.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

import * as React from 'react';

import Layout from '../layout/index.js';
import AreaSidebar from '../layout/components/sidebar/AreaSidebar.js';
import Layout from '../layout/index.js';
import localizeAreaName
from '../static/scripts/common/i18n/localizeAreaName.js';

Expand Down
6 changes: 3 additions & 3 deletions root/area/AreaMerge.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@

import * as React from 'react';

import sortByEntityName
from '../static/scripts/common/utility/sortByEntityName.js';
import FieldErrors from '../static/scripts/edit/components/FieldErrors.js';
import AreaList from '../components/list/AreaList.js';
import Layout from '../layout/index.js';
import sortByEntityName
from '../static/scripts/common/utility/sortByEntityName.js';
import EnterEdit from '../static/scripts/edit/components/EnterEdit.js';
import EnterEditNote
from '../static/scripts/edit/components/EnterEditNote.js';
import FieldErrors from '../static/scripts/edit/components/FieldErrors.js';

type Props = {
+form: MergeFormT,
Expand Down
14 changes: 7 additions & 7 deletions root/artist/ArtistIndex.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@

import * as React from 'react';

import RecordingList from '../components/list/RecordingList.js';
import ReleaseGroupList from '../components/list/ReleaseGroupList.js';
import PaginatedResults from '../components/PaginatedResults.js';
import RelatedEntitiesDisplay from '../components/RelatedEntitiesDisplay.js';
import {SanitizedCatalystContext} from '../context.mjs';
import * as manifest from '../static/manifest.mjs';
import Annotation from '../static/scripts/common/components/Annotation.js';
import DescriptiveLink
from '../static/scripts/common/components/DescriptiveLink.js';
Expand All @@ -20,14 +26,8 @@ import WikipediaExtract
import commaOnlyList, {commaOnlyListText}
from '../static/scripts/common/i18n/commaOnlyList.js';
import {bracketedText} from '../static/scripts/common/utility/bracketed.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import RecordingList from '../components/list/RecordingList.js';
import ReleaseGroupList from '../components/list/ReleaseGroupList.js';
import PaginatedResults from '../components/PaginatedResults.js';
import RelatedEntitiesDisplay from '../components/RelatedEntitiesDisplay.js';
import {SanitizedCatalystContext} from '../context.mjs';
import * as manifest from '../static/manifest.mjs';
import entityHref from '../static/scripts/common/utility/entityHref.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import {returnToCurrentPage} from '../utility/returnUri.js';

import ArtistLayout from './ArtistLayout.js';
Expand Down
2 changes: 1 addition & 1 deletion root/artist/ArtistLayout.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

import * as React from 'react';

import Layout from '../layout/index.js';
import ArtistSidebar from '../layout/components/sidebar/ArtistSidebar.js';
import Layout from '../layout/index.js';

import ArtistHeader from './ArtistHeader.js';

Expand Down
6 changes: 3 additions & 3 deletions root/artist/ArtistMerge.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ import ArtistList from '../components/list/ArtistList.js';
import Layout from '../layout/index.js';
import sortByEntityName
from '../static/scripts/common/utility/sortByEntityName.js';
import FieldErrors from '../static/scripts/edit/components/FieldErrors.js';
import FormRowCheckbox
from '../static/scripts/edit/components/FormRowCheckbox.js';
import EnterEdit from '../static/scripts/edit/components/EnterEdit.js';
import EnterEditNote
from '../static/scripts/edit/components/EnterEditNote.js';
import FieldErrors from '../static/scripts/edit/components/FieldErrors.js';
import FormRowCheckbox
from '../static/scripts/edit/components/FormRowCheckbox.js';

type Props = {
+form: MergeFormT,
Expand Down
2 changes: 1 addition & 1 deletion root/artist/ArtistRecordings.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@

import * as React from 'react';

import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import RecordingList from '../components/list/RecordingList.js';
import PaginatedResults from '../components/PaginatedResults.js';
import {SanitizedCatalystContext} from '../context.mjs';
import Filter from '../static/scripts/common/components/Filter.js';
import {type FilterFormT}
from '../static/scripts/common/components/FilterForm.js';
import bracketed from '../static/scripts/common/utility/bracketed.js';
import FormSubmit from '../static/scripts/edit/components/FormSubmit.js';
import {returnToCurrentPage} from '../utility/returnUri.js';

import ArtistLayout from './ArtistLayout.js';
Expand Down
Loading

0 comments on commit 30aff7b

Please sign in to comment.