Repository URL to install this package:
|
Version:
2.7.6 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const tslib_1 = require("tslib");
const isValidTelephone_1 = tslib_1.__importStar(require("./isValidTelephone"));
const isValidEmail_1 = tslib_1.__importDefault(require("./isValidEmail"));
const isValidPassword_1 = tslib_1.__importDefault(require("./isValidPassword"));
const isValidName_1 = require("./isValidName");
const isValidZipCode_1 = tslib_1.__importDefault(require("./isValidZipCode"));
const isValidLength_1 = tslib_1.__importDefault(require("./isValidLength"));
const isValidExpiryDate_1 = tslib_1.__importDefault(require("./isValidExpiryDate"));
const isValidCoupon_1 = require("./isValidCoupon");
const isValidOrderId_1 = require("./isValidOrderId");
const isValidCreditCard_1 = require("./isValidCreditCard");
const isValidShippingAddress_1 = require("./isValidShippingAddress");
const isAlphaNumeric_1 = require("./isAlphaNumeric");
/**
* @todo multipliers, may need length on any values,
* so type should be an array always
*
* @todo ^ might want to have settings for these, so would be an array of strings or objects...
*/
function isValid(value, types = 'length,email') {
// @todo add options
const doesSatisfySpecification = (type, options) => {
switch (type) {
// may be used for other types
case 'number':
return isAlphaNumeric_1.isNumeric(value);
case 'email':
return isValidEmail_1.default(value);
case 'emailOrPhone':
return isValidEmail_1.default(value) || isValidTelephone_1.default(value);
case 'zipCode':
case 'zip':
case 'postalCode':
return isValidZipCode_1.default(value);
// @todo - month, year, ccv
// case 'date': return isValidDate(value)
case 'creditCard':
return isValidCreditCard_1.isValidCreditCard(value);
case 'securityCode':
return isValidCreditCard_1.isValidSecurityCode(value);
case 'coupon':
return isValidCoupon_1.isValidCoupon(value);
case 'tel':
case 'phone':
case 'telephone':
return isValidTelephone_1.default(value);
case 'emptyOrTelephone':
return isValidTelephone_1.isEmptyOrValidTelephone(value);
case 'address':
case 'alphaNumericWithSpace':
return isAlphaNumeric_1.isAlphaNumericWithSpace(value);
case 'emptyOrAddress':
case 'emptyOrAlphaNumericWithSpace':
return isAlphaNumeric_1.isEmptyOrAlphaNumericWithSpace(value);
case 'shippingAddress':
return isValidShippingAddress_1.isValidShippingAddress(value);
case 'emptyOrShippingAddress':
return isValidShippingAddress_1.EmptyOrValidShippingAddress(value);
case 'alphanumeric':
case 'letterNumber':
return isAlphaNumeric_1.isAlphaNumeric(value);
case 'emptyOrAlphaNumeric':
return isAlphaNumeric_1.isEmptyOrAlphaNumeric(value);
case 'taxIdentifier':
case 'alphaNumericWithPlusMinus':
return isAlphaNumeric_1.isAlphaNumericWithPlusMinus(value);
case 'duns':
case 'emptyOrAlphaNumericWithMinus':
return isAlphaNumeric_1.isEmptyOrAlphaNumericWithMinus(value);
case 'alphabet':
return isAlphaNumeric_1.isAlphabet(value);
case 'city':
return isAlphaNumeric_1.isValidCity(value);
case 'alphaNumericSpecialCharacters':
return isAlphaNumeric_1.isAlphaNumericSpecialCharacters(value);
case 'password':
return isValidPassword_1.default(value);
case 'country':
case 'state':
case 'name':
return isValidName_1.isValidName(value);
case 'emptyOrName':
return isValidName_1.isEmptyOrValidName(value);
case 'nameWithoutSpace':
return isValidName_1.isValidNameWithoutSpace(value);
case 'emptyOrNumber':
return isAlphaNumeric_1.isEmptyOrValidNumber(value);
// case 'month':
// return expiryDate.isValidMonth(value)
// case 'year':
// return expiryDate.isValidYear(value)
case 'expiryDate':
return isValidExpiryDate_1.default(value);
// may not work this way since we need lengths per type
case 'length':
return isValidLength_1.default(value);
// case 'month': return isValidMonth(value)
case 'required':
return value !== '';
case 'orderId':
return isValidOrderId_1.isValidOrderId(value);
case 'none':
return true;
default:
return false;
}
}; // @todo will use isMatcher & isObject here
const doesSatisfy = type => {
return doesSatisfySpecification(type);
};
/**
* @Ganesh: @James exotic method 'all' is not working here
*
*
* @james: @ganesh
* 1. ^ .every & .some works
* 2. exotic has no method named .all, `chain` does
*/
const result = types.split(',').map(doesSatisfy); // Multiple validations has been done and the results will be an array. If anyone of the validations is passed, then the value should be called as 'valid'
return result.indexOf(true) >= 0;
}
exports.isValid = isValid;
/**
* @param {Array<enum> | enum | Function | RegExp} types
* @return {isValid}
*/
const validatorFor = types => value => isValid(value, types);
exports.default = isValid; //# sourceMappingURL=isValid.js.map