From 32c0d81bffd23fcb5ec30440fe3754baacdce25e Mon Sep 17 00:00:00 2001 From: Sam Carlton Date: Wed, 18 May 2022 12:07:53 -0500 Subject: [PATCH] Convert status data to objects --- helpers/statuses.js | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/helpers/statuses.js b/helpers/statuses.js index de3014f..48449b0 100644 --- a/helpers/statuses.js +++ b/helpers/statuses.js @@ -2,16 +2,42 @@ const statuses = { - '✅': 'native', - '✳️': 'rosetta', - '⏹': 'no-in-progress', - '🚫': 'no', - '🔶': 'unreported', + 'native': { + icon: '✅', + filterLabel: 'Native Support', + snakeSlug: 'native', + }, + 'rosetta': { + icon: '✳️', + filterLabel: 'Rosetta', + snakeSlug: 'rosetta', + }, + 'no-in-progress': { + icon: '⏹', + filterLabel: 'In Progress', + snakeSlug: 'no_in_progress', + }, + 'no': { + icon: '🚫', + filterLabel: 'Unsupported', + snakeSlug: 'no', + }, + 'unreported': { + icon: '🔶', + filterLabel: 'Unreported', + snakeSlug: 'unreported', + } } +const statusesByIcon = Object.keys( statuses ).reduce( ( acc, key ) => { + const status = statuses[ key ] + acc[ status.icon ] = key + return acc +}, {} ) + export function getStatusName ( status ) { - for (const key in statuses) { - if (status.trim().startsWith( key )) return statuses[key] + for (const key in statusesByIcon) { + if (status.trim().startsWith( key )) return statusesByIcon[key] } throw new Error('Non status matched') @@ -33,4 +59,4 @@ export function getStatusOfScan ( appScan, includeVersion = true ) { } -export default statuses +export default statusesByIcon