2022-06-07 03:13:32 -03:00
export function deriveAppDictKeyFromType ( appType : string , dict : Record < string , unknown > ) {
let handlers = dict [ appType ] ;
if ( handlers ) {
return appType ;
}
// Transforms zoom_video to zoom
// Apps creates through cli would also meet this condition as their type would always be in the format {slug}_{category} and app dir name would be {slug}
const appTypeVariant1 = appType . substring ( 0 , appType . lastIndexOf ( "_" ) ) ;
handlers = dict [ appTypeVariant1 ] ;
if ( handlers ) {
return appTypeVariant1 ;
}
// Transform `zoom_video` to `zoomvideo`;
const appTypeVariant2 =
appType . substring ( 0 , appType . lastIndexOf ( "_" ) ) + appType . substring ( appType . lastIndexOf ( "_" ) + 1 ) ;
handlers = dict [ appTypeVariant2 ] ;
if ( handlers ) {
return appTypeVariant2 ;
}
2022-11-22 17:44:08 -03:00
// TODO: Deprecated?
2022-06-28 13:36:19 -03:00
// Transform as last resort removing all underscores, applies to `hubspot_other_calendar` to be `hubsporothercalendar`
2022-08-15 17:45:15 -03:00
// and `closecom_other_calendar` to be `closecomothercalendar`
2022-06-28 13:36:19 -03:00
const appTypeVariant3 = appType . replace ( /_/g , "" ) ;
handlers = dict [ appTypeVariant3 ] ;
if ( handlers ) {
return appTypeVariant3 ;
}
2022-06-07 03:13:32 -03:00
return appType ;
// const categories = ["video", "other", "calendar", "web3", "payment", "messaging"];
// // Instead of doing a blind split at _ and using the first part, apply this hack only on strings that match legacy type.
// // Transform zoomvideo to zoom
// categories.some((type) => {
// const matcher = new RegExp(`(.+)${type}$`);
// if (appType.match(matcher)) {
// appType = appType.replace(matcher, "$1");
// return true;
// }
// return appType;
// });
}