From f1f299484dd5643dd2ae915dbade118b4431dc3c Mon Sep 17 00:00:00 2001 From: Kristofer Baxter Date: Tue, 7 Jan 2020 18:51:30 -0800 Subject: [PATCH] Further cleanups to import specifiers --- src/parsing/import-specifiers.ts | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/parsing/import-specifiers.ts b/src/parsing/import-specifiers.ts index 4bc12cb2..d85e71c9 100644 --- a/src/parsing/import-specifiers.ts +++ b/src/parsing/import-specifiers.ts @@ -26,12 +26,14 @@ export interface Specifiers { export function Specifiers( specifiers: Array, ): Specifiers { - let defaultName: Specifiers['default'] = null; - let specificNames: Specifiers['specific'] = []; - let localNames: Specifiers['local'] = []; + const returnable: Specifiers = { + default: null, + specific: [], + local: [], + }; for (const specifier of specifiers) { - localNames.push(specifier.local.name); + returnable.local.push(specifier.local.name); switch (specifier.type) { case IMPORT_SPECIFIER: @@ -40,34 +42,31 @@ export function Specifiers( const { name: imported } = (specifier as ImportSpecifier).imported; if (local === imported) { - specificNames.push(local); + returnable.specific.push(local); } else { - specificNames.push(`${imported} as ${local}`); + returnable.specific.push(`${imported} as ${local}`); } break; case IMPORT_DEFAULT_SPECIFIER: - defaultName = specifier.local.name; + returnable.default = specifier.local.name; break; } } - return { - default: defaultName, - specific: specificNames, - local: localNames, - }; + return returnable; } export function FormatSpecifiers(specifiers: Specifiers, name: string): string { let formatted: string = 'import '; + let values: Array = []; if (specifiers.default !== null) { - formatted += specifiers.default; + values.push(specifiers.default); } if (specifiers.specific.length > 0) { - formatted += `${specifiers.default !== null ? ',' : ''}{${specifiers.specific.join(',')}}`; + values.push(`{${specifiers.specific.join(',')}}`); } - formatted += ` from '${name}';`; + formatted += `${values.join(',')} from '${name}';`; return formatted; }