Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/forms / build / dist / validators / isValid.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const isValidTelephone_1 = require("./isValidTelephone");
const isValidEmail_1 = require("./isValidEmail");
const isValidPassword_1 = require("./isValidPassword");
const isValidName_1 = require("./isValidName");
const isValidZipCode_1 = require("./isValidZipCode");
const isValidLength_1 = require("./isValidLength");
const isValidExpiryDate_1 = require("./isValidExpiryDate");
const isValidCoupon_1 = require("./isValidCoupon");
const isValidOrderId_1 = require("./isValidOrderId");
const isValidCreditCard_1 = require("./isValidCreditCard");
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 '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);
    };
    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;
exports.default = isValid;
//# sourceMappingURL=isValid.js.map