import { isDefined } from '@rnw-community/shared'; import { validateDisplayItems } from './validate-display-items.util'; import { validateTotal } from './validate-total.util'; import type { PaymentDetailsModifier } from '../@standard/w3c/payment-details-modifier'; import type { ClassType } from '@rnw-community/shared'; export const validateModifiers = (ErrorType: ClassType, modifiers: PaymentDetailsModifier[] = []): void => { modifiers.forEach(modifier => { if (!isDefined(modifier) || !isDefined(modifier.supportedMethods)) { throw new ErrorType(`required member supportedMethods is undefined.`); } if (isDefined(modifier.total)) { validateTotal(modifier.total, ErrorType); } validateDisplayItems(ErrorType, modifier.additionalDisplayItems); }); };