renke / import-sort

Sort ES2015 (aka ES6) imports. Both JavaScript and TypeScript are supported.
ISC License
466 stars 69 forks source link

[Bug] Imports sorting order issue #126

Open jerome-benoit opened 4 years ago

jerome-benoit commented 4 years ago

Configuration:

"importSort": {
    ".js, .jsx, .es6, .es, .mjs": {
      "parser": "babylon",
      "style": "module",
      "options": {}
    },
    ".ts, .tsx": {
      "parser": "typescript",
      "style": "module",
      "options": {}
    }
 },

Import list samples triggering the issue:

import { Icon, Text, View } from 'native-base';
import React from 'react';
import { TouchableOpacity } from 'react-native';
import * as Animatable from 'react-native-animatable';

import I18nManager from '../../../I18n/I18nManager';
import BaseProps from '../../../types/BaseProps';
import Transaction from '../../../types/Transaction';
import Constants from '../../../utils/Constants';
import Utils from '../../../utils/Utils';
import TransactionHeaderComponent from '../header/TransactionHeaderComponent';
import computeStyleSheet from '../TransactionComponentCommonStyles';
import I18n from 'i18n-js';
import CentralServerProvider from 'provider/CentralServerProvider';
import { NativeModules, Platform } from 'react-native';
import { showLocation } from 'react-native-map-link';
import { NavigationParams, NavigationScreenProp, NavigationState } from 'react-navigation';
import Address from 'types/Address';
import { KeyValue } from 'types/Global';
import validate from 'validate.js';

import { buildCommonColor } from '../custom-theme/customCommonColor';
import ThemeManager from '../custom-theme/ThemeManager';
import I18nManager from '../I18n/I18nManager';
import ChargingStation, { ChargePoint, ChargePointStatus, Connector, ConnectorType, CurrentType } from '../types/ChargingStation';
import { RequestError } from '../types/RequestError';
import { InactivityStatus } from '../types/Transaction';
import User from '../types/User';
import Constants from './Constants';
import Message from './Message';
import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { JwtHelperService } from '@auth0/angular-jwt';
import { Asset } from 'app/types/Asset';
import { BillingInvoice, BillingTax } from 'app/types/Billing';
import { Car, CarCatalog, CarMaker, ImageObject } from 'app/types/Car';
import { ChargingProfile, GetCompositeScheduleCommandResult } from 'app/types/ChargingProfile';
import { ChargePoint, ChargingStation, OCPPAvailabilityType, OcppParameter } from 'app/types/ChargingStation';
import { Company } from 'app/types/Company';
import CentralSystemServerConfiguration from 'app/types/configuration/CentralSystemServerConfiguration';
import { IntegrationConnection, UserConnection } from 'app/types/Connection';
import { ActionResponse, ActionsResponse, CheckAssetConnectionResponse, CheckBillingConnectionResponse, DataResult, LoginResponse, OCPIGenerateLocalTokenResponse, OCPIJobStatusesResponse, OCPIPingResponse, OCPITriggerJobsResponse, Ordering, Paging } from 'app/types/DataResult';
import { EndUserLicenseAgreement } from 'app/types/Eula';
import { FilterParams, Image, KeyValue, Logo } from 'app/types/GlobalType';
import { HTTPError } from 'app/types/HTTPError';
import { AssetInError, ChargingStationInError, TransactionInError } from 'app/types/InError';
import { Log } from 'app/types/Log';
import { OcpiEndpoint } from 'app/types/OCPIEndpoint';
import { RefundReport } from 'app/types/Refund';
import { RegistrationToken } from 'app/types/RegistrationToken';
import { ServerAction } from 'app/types/Server';
import { Setting } from 'app/types/Setting';
import { Site, SiteUser } from 'app/types/Site';
import { SiteArea, SiteAreaConsumption } from 'app/types/SiteArea';
import { StatisticData } from 'app/types/Statistic';
import { Tenant } from 'app/types/Tenant';
import { Transaction } from 'app/types/Transaction';
import { User, UserCar, UserSite, UserToken } from 'app/types/User';
import { Utils } from 'app/utils/Utils';
import { BehaviorSubject, EMPTY, Observable, throwError, timer } from 'rxjs';
import { catchError, mergeMap, retryWhen } from 'rxjs/operators';

import { Constants } from '../utils/Constants';
import { CentralServerNotificationService } from './central-server-notification.service';
import { ConfigService } from './config.service';
import { LocalStorageService } from './local-storage.service';
import { WindowService } from './window.service';

import-sort is not able to properly order the imports given the configuration. TSLint is able to do it properly.