UNPKG

portal-www

Version:

Nova Portal Website. Based on Next starter by Ueno

86 lines (73 loc) 2.89 kB
import { IconMapper, IconType, sprinkleVars } from '@nova-hf/ui'; import { MobileServiceRequest, OptionVariant, ProvisionedSubscriptionVariant, SignupContract, } from 'typings/graphql'; const allIcons = { ...IconMapper[48], ...IconMapper[24] }; export const isThemeColorType = (color: unknown): color is sprinkleVars.ThemeColorType => { return typeof color === 'string' && sprinkleVars.themeColors.hasOwnProperty(color); }; export const parseThemeColor = ( maybeThemeColor: string, fallbackColor?: sprinkleVars.ThemeColorType, ): sprinkleVars.ThemeColorType => { if (isThemeColorType(maybeThemeColor)) { return maybeThemeColor; } else if (fallbackColor) return fallbackColor; throw new Error('This is not of type ThemeColorType'); }; export const isMainColorType = (color: unknown): color is sprinkleVars.MainColorType => { return typeof color === 'string' && sprinkleVars.mainColors.hasOwnProperty(color); }; export const parseMainColor = ( maybeMainColor: string, fallbackColor?: sprinkleVars.MainColorType, ): sprinkleVars.MainColorType => { if (isMainColorType(maybeMainColor)) { return maybeMainColor; } else if (fallbackColor) return fallbackColor; throw new Error('This is not of type MainColorType'); }; export const isBoxShadowType = ( shadowColor: unknown, ): shadowColor is sprinkleVars.BoxShadowType => { return typeof shadowColor === 'string' && sprinkleVars.boxShadows.hasOwnProperty(shadowColor); }; export const parseBoxShadowColor = ( maybeBoxShadow: string, fallbackShadow?: sprinkleVars.BoxShadowType, ): sprinkleVars.BoxShadowType => { if (isBoxShadowType(maybeBoxShadow)) { return maybeBoxShadow; } else if (fallbackShadow) return fallbackShadow; throw new Error('This is not of type BoxShadowType'); }; export const isIcon = (icon: unknown): icon is IconType => { return typeof icon === 'string' && allIcons.hasOwnProperty(icon); }; export const parseIcon = (maybeIcon: string, fallbackIcon?: IconType): IconType => { if (isIcon(maybeIcon)) { return maybeIcon; } else if (fallbackIcon) return fallbackIcon; throw new Error('This is not of type IconType'); }; export const isProvisionedSubscriptionVariant = (variant: { __typename?: string; }): variant is ProvisionedSubscriptionVariant => { return variant?.__typename === 'ProvisionedSubscriptionVariant'; }; export const isOptionVariant = (variant: { __typename?: string }): variant is OptionVariant => { return variant?.__typename === 'OptionVariant'; }; export const isMobileServiceRequest = ( service: { __typename?: string } | undefined | null, ): service is MobileServiceRequest => { return service?.__typename === 'MobileServiceRequest'; }; export const isSignupContract = ( contract: { __typename?: string } | undefined | null, ): contract is SignupContract => { return contract?.__typename === 'SignupContract'; };