react-native-moyasar-sdk
Version:
Official React Native Moyasar SDK - Integrate Credit Cards, Apple Pay, Samsung Pay, and STC Pay with simple interfaces for a seamless payment experience in your React Native app
28 lines (27 loc) • 1.1 kB
JavaScript
;
import { FieldValidator } from "./field_validator.js";
import { CreditCardNetwork } from "../../models/credit_card_network.js";
import { getCreditCardNetworkFromNumber } from "../../helpers/credit_card_utils.js";
import { getConfiguredLocalizations } from "../../localizations/i18n.js";
export class CreditCardCvcValidator extends FieldValidator {
constructor() {
super();
const {
t
} = getConfiguredLocalizations();
this.addRule(t('moyasarTranslation:cvcRequired'), value => {
return value.length === 0;
});
this.addRule(t('moyasarTranslation:onlyDigits'), value => {
return !/^\d+$/.test(value);
});
this.addRule(t('moyasarTranslation:invalidCvc'), (value, creditCardNumber) => {
const network = getCreditCardNetworkFromNumber(creditCardNumber ?? '');
if (network === CreditCardNetwork.unknown) {
return value.length < 3 || value.length > 4;
}
return network === CreditCardNetwork.amex ? value.length !== 4 : value.length !== 3;
});
}
}
//# sourceMappingURL=credit_card_cvc_validator.js.map