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/ui / dist / forms / deps / isValid.js
Size: Mime:
"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