Skip to content
This repository has been archived by the owner on Oct 10, 2018. It is now read-only.

Commit

Permalink
style(tests): extract needlessly-inner function
Browse files Browse the repository at this point in the history
This refactoring (which totally makes sense) was requested in
#336 (review)
  • Loading branch information
tdd committed Nov 6, 2017
1 parent 94008bf commit ad25359
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 18 deletions.
2 changes: 1 addition & 1 deletion src/extension/managers/ImportManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import {
importGroupSortForPrecedence,
importSort,
importSortByFirstSpecifier,
specifierSort
specifierSort,
} from '../utilities/utilityFunctions';
import { Logger } from '../utilities/winstonLogger';
import { ObjectManager } from './ObjectManager';
Expand Down
43 changes: 26 additions & 17 deletions src/extension/utilities/utilityFunctions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,28 +113,37 @@ export function importSortByFirstSpecifier(i1: Import, i2: Import, order: 'asc'
const strB = getImportFirstSpecifier(i2);

return localeStringSort(strA, strB, order);
}

function getImportFirstSpecifier(imp: Import): string {
if (imp instanceof NamespaceImport || imp instanceof ExternalModuleImport) {
return imp.alias;
}
/**
* Computes the first specifier/alias of an import, falling back ot its
* module path (for StringImports, basically). Does not re-sort specifiers
* internally: assumes they were sorted AOT (which happens in
* `ImportManager#organizeImports`, indeed).
*
* @param {Import} imp
* @returns {String}
*/
function getImportFirstSpecifier(imp: Import): string {
if (imp instanceof NamespaceImport || imp instanceof ExternalModuleImport) {
return imp.alias;
}

if (imp instanceof StringImport) {
return basename(imp.libraryName);
}
if (imp instanceof StringImport) {
return basename(imp.libraryName);
}

if (imp instanceof NamedImport) {
const namedSpecifiers = (imp as NamedImport).specifiers
.map(s => s.alias || s.specifier)
.filter(Boolean);
const marker = namedSpecifiers[0] || imp.defaultAlias;
if (marker) {
return marker;
}
if (imp instanceof NamedImport) {
const namedSpecifiers = (imp as NamedImport).specifiers
.map(s => s.alias || s.specifier)
.filter(Boolean);
const marker = namedSpecifiers[0] || imp.defaultAlias;
if (marker) {
return marker;
}

return basename(imp.libraryName);
}

return basename(imp.libraryName);
}

/**
Expand Down

0 comments on commit ad25359

Please sign in to comment.