UNPKG

react-native-unit-components

Version:

Unit React Native components

60 lines (54 loc) 2.99 kB
import { UNVersioningStrategyType, UNWebVersioningStrategy } from '../types/shared'; import { UNSDKConstants } from '../unitSdkManager/UnitSdk.constants'; export const getWebSdkVersionString = (webVersioningStrategy: UNWebVersioningStrategy) => { switch (webVersioningStrategy.type) { case UNVersioningStrategyType.latest: return 'latest'; case UNVersioningStrategyType.exact: return `${webVersioningStrategy.major}.${webVersioningStrategy.minor}.${webVersioningStrategy.patch}`; case UNVersioningStrategyType.upToNextMinor: return `${webVersioningStrategy.major}.${webVersioningStrategy.minor}`; case UNVersioningStrategyType.upToNextMajor: return `${webVersioningStrategy.major}`; } }; export const getVersionArray = (webVersioningStrategy: UNWebVersioningStrategy) => { switch (webVersioningStrategy.type) { case UNVersioningStrategyType.latest: return [null, null, null]; case UNVersioningStrategyType.exact: return [webVersioningStrategy.major, webVersioningStrategy.minor, webVersioningStrategy.patch]; case UNVersioningStrategyType.upToNextMinor: return [webVersioningStrategy.major, webVersioningStrategy.minor, null]; case UNVersioningStrategyType.upToNextMajor: return [webVersioningStrategy.major, null, null]; } }; export const isBehindRecommendedStrategy = (currentWebVersioningStrategy: UNWebVersioningStrategy) => { const recommendedWebVersionArray = getVersionArray(UNSDKConstants.webSDKRecommendedStrategy); const currentWebVersionArray = getVersionArray(currentWebVersioningStrategy); for (let i = 0; i < 3; i++) { let currentVersion = currentWebVersionArray[i]; let recommendedVersion = recommendedWebVersionArray[i]; if (currentVersion === null || recommendedVersion === null) { return false; } currentVersion = currentVersion as number; recommendedVersion = recommendedVersion as number; if (currentVersion !== recommendedVersion) { return currentVersion < recommendedVersion; } } return false; }; export const warnClientIfNeeded = (currentWebVersioningStrategy: UNWebVersioningStrategy) => { if (currentWebVersioningStrategy.type === UNVersioningStrategyType.latest) { return; } if (currentWebVersioningStrategy.major > UNSDKConstants.webSDKRecommendedStrategy.major) { console.log(`The current web sdk version is ${getWebSdkVersionString(currentWebVersioningStrategy)} which is higher than the latest supported version ${getWebSdkVersionString(UNSDKConstants.webSDKRecommendedStrategy)}. Please update the latest version of the web sdk.`); } if (isBehindRecommendedStrategy(currentWebVersioningStrategy)) { console.log(`The current web sdk version is ${getWebSdkVersionString(currentWebVersioningStrategy)} which is older than the latest supported version ${getWebSdkVersionString(UNSDKConstants.webSDKRecommendedStrategy)}. Please consider updating to the latest version of the web sdk.`); } };