From 1ff0f99fc36e2295d3b0615296dcc681c2d5101c Mon Sep 17 00:00:00 2001 From: Snickbit Date: Fri, 3 Jun 2022 20:38:19 -0400 Subject: [PATCH] fix: rename config to _config --- src/actions/add.ts | 21 ++++++++++++++++----- src/utilities/common.ts | 40 ++++++++++++++++++++-------------------- 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/actions/add.ts b/src/actions/add.ts index 0f238621..97943a04 100644 --- a/src/actions/add.ts +++ b/src/actions/add.ts @@ -45,24 +45,35 @@ export default async argv => cli(argv) continue } - const icon_results = results?.data?.search?.map(r => r.id) || [] + const icon_results: IconResult[] = results?.data?.search || [] if (icon_results.length) { - let icon_selected = icon_results.find(r => r === icon) + let icon_selected: IconResult | 'None of the above' = icon_results.find(r => r.id === icon) if (!icon_selected) { if (icon_results.length === 1) { icon_selected = icon_results[0] } else { - icon_results.push('None of the above') - icon_selected = await ask(`Found ${icon_results.length} matches for ${icon}`, {type: 'select', choices: icon_results}) + const choices: ChoiceOption[] = icon_results.map(r => ({ + title: `${r.label}\t(${r.styles.join(', ')})`, + value: r.id + })) + choices.push('None of the above') + icon_selected = await ask(`Found ${icon_results.length} matches for ${icon}`, { + type: 'select', + choices + }) if (icon_selected === 'None of the above') { continue } } } - iconName = normalizeIconName(icon_selected.replace(/(fa[a-z]?)-/, `$1:`)) + if (icon_selected) { + iconName = normalizeIconName(icon_selected.id) + if (icon_selected.styles.includes('brands')) { + iconName = iconName.replace(/fa:/, 'fab:') + } if (!config.icons.includes(iconName)) { config.icons.push(iconName) diff --git a/src/utilities/common.ts b/src/utilities/common.ts index 15145b8d..c3647a82 100644 --- a/src/utilities/common.ts +++ b/src/utilities/common.ts @@ -16,7 +16,7 @@ interface Config { output?: string } -let config: Config +let _config: Config export const $out = new Out('fa-cli') @@ -29,14 +29,14 @@ export function getNodeModulesPath() { export const config_path = path.join(process.cwd(), 'fa.config.json') export async function initConfig() { - if (!config) { + if (!_config) { if (!fileExists(config_path)) { // create with inquirer $out.block.info('fa-cli config') - config = {} as Config + _config = {} as Config - config.version = await ask('Which FontAwesome version?', { + _config.version = await ask('Which FontAwesome version?', { type: 'select', choices: [{ title: 'FontAwesome Pro 5', @@ -47,11 +47,11 @@ export async function initConfig() { }] }) - if (!config.version) { + if (!_config.version) { out.fatal('No FontAwesome version selected') } - config.default = await ask('Default Style?', { + _config.default = await ask('Default Style?', { type: 'select', choices: [ { @@ -73,25 +73,25 @@ export async function initConfig() { ] }) - if (!config.default) { + if (!_config.default) { out.fatal('No default style selected') } if (fileExists('tsconfig.json') && await confirm('Use TypeScript?')) { - config.typescript = true + _config.typescript = true } - config.icons = default_icons.slice() - config.aliases = {...default_icon_aliases} + _config.icons = default_icons.slice() + _config.aliases = {...default_icon_aliases} if (fileExists('quasar.conf.js') || fileExists('quasar.config.js')) { $out.info('Quasar Framework detected!') - config.isQuasar = true + _config.isQuasar = true } - saveConfig(config) + saveConfig(_config) } else { try { - config = getFileJson(config_path) + _config = getFileJson(config_path) } catch (e) { $out.error(`Error parsing config file: ${e.message}`) process.exit(1) @@ -99,24 +99,24 @@ export async function initConfig() { } } - icon_prefix_types.fa = icon_prefix_types[config.default] + icon_prefix_types.fa = icon_prefix_types[_config.default] - return config + return _config } export function useConfig() { - if (!config) { + if (!_config) { out.throw('No config found!') } - icon_prefix_types.fa = icon_prefix_types[config.default] + icon_prefix_types.fa = icon_prefix_types[_config.default] - return config + return _config } export function saveConfig(conf) { - config = conf - return saveFileJson(config_path, config) + _config = conf + return saveFileJson(config_path, _config) } export function cleanIconName(icon_name: string): string {