@rnw-community/react-native-payments
Version:
Accept Payments with Apple Pay and Android Pay using the Payment Request API.
30 lines (20 loc) • 1.1 kB
text/typescript
import { isDefined, isEmptyArray, isNotEmptyArray } from '@rnw-community/shared';
import { SupportedNetworkEnum } from '../enum/supported-networks.enum.js';
import { PLUGIN_DEFAULT_OPTIONS } from './plugin-default-options.constant.js';
const validSupportedNetworks: readonly string[] = Object.values(SupportedNetworkEnum);
export const validateSupportedNetworks = (
supportedNetworks: SupportedNetworkEnum[] | undefined
): SupportedNetworkEnum[] => {
if (!isDefined(supportedNetworks)) {
return PLUGIN_DEFAULT_OPTIONS.supportedNetworks;
}
if (isEmptyArray(supportedNetworks)) {
throw new Error('Please provide at least one "supportedNetworks" plugin option value');
}
const invalidNetworks = supportedNetworks.filter(network => !validSupportedNetworks.includes(network));
if (isNotEmptyArray(invalidNetworks)) {
const invalidNetworkList = invalidNetworks.map(network => `"${network}"`).join(', ');
throw new Error(`Invalid "supportedNetworks" plugin option value(s): ${invalidNetworkList}`);
}
return supportedNetworks;
};