From db8543a0b4853d43cd4070e0e773d2408bdc39b7 Mon Sep 17 00:00:00 2001 From: Nishant Arora Date: Thu, 21 Oct 2021 23:49:36 -0600 Subject: [PATCH] utils/getService: Improve Functionality to run on O(n) --- src/utils/getService.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/utils/getService.ts b/src/utils/getService.ts index 980f240..9a9e7f6 100644 --- a/src/utils/getService.ts +++ b/src/utils/getService.ts @@ -1,14 +1,15 @@ import { Service } from "../types/segments.model"; export function getService(...value: T[]): Service { + const serviceByName = Object.values(Service).reduce((acc, serviceName) => { + acc[serviceName.toLowerCase()] = serviceName; + + return acc; + }, {} as Record); + for (const name of value) { - if (name) { - const service = Object.values(Service).find( - (val) => val.toLowerCase() === name.trim().toLowerCase() - ); - if (service) { - return service; - } + if (name?.trim().toLowerCase() in serviceByName) { + return serviceByName[name.trim().toLowerCase()]; } }