UNPKG

bluechip-utils

Version:

Utitity function package for javsacript and Typescript

61 lines (60 loc) 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validatePhoneNumber = exports.validateEmailAddress = exports.validateIfArray = exports.validateRequiredNumericProperty = exports.validateRequiredDateProperty = exports.validateRequiredProperty = exports.validateRequiredStringProperty = void 0; var helpers_1 = require("../helpers/helpers"); var data_1 = require("../exceptions/data"); var property_1 = require("../exceptions/property"); exports.validateRequiredStringProperty = function (label, property) { if (property == null || property === undefined || property === 'undefined') { throw new property_1.RequiredPropertyError(label + " must be provided"); } if (typeof property !== 'string') { throw new data_1.InvalidDataTypeError(label + " is of an invalid data type"); } }; exports.validateRequiredProperty = function (label, property) { if (property == null || property === undefined || property === 'undefined') { throw new property_1.RequiredPropertyError(label + " must be provided"); } }; exports.validateRequiredDateProperty = function (label, property) { var regEx = /^\d{1,2}\/\d{1,2}\/\d{4}$/; if (property == null || property === undefined || property === 'undefined') { throw new property_1.RequiredPropertyError(label + " must be provided"); } if (!(new Date(property) instanceof Date)) { throw new data_1.InvalidDataTypeError(label + " is of an invalid date format"); } }; exports.validateRequiredNumericProperty = function (label, property) { var newProp = +property; if (Number.isNaN(newProp) && property !== undefined) { throw new data_1.InvalidDataTypeError(label + " is of an invalid data type"); } if (property == null || property === undefined || property === 'undefined') { throw new property_1.RequiredPropertyError(label + " must be provided"); } if (typeof property !== 'number' && isNaN(property)) { throw new data_1.InvalidDataTypeError(label + " is of an invalid data type"); } }; exports.validateIfArray = function (label, arrayProspect) { if (arrayProspect == null || arrayProspect === undefined || arrayProspect === 'undefined') { throw new property_1.RequiredPropertyError(label + " must be provided"); } else { if (!(Array.isArray(arrayProspect) && arrayProspect.length > 0)) { throw new property_1.RequiredPropertyError(label + " must be provided"); } } }; exports.validateEmailAddress = function (email) { if (!helpers_1.isValidEmail(email)) { throw new Error('Invalid email address'); } }; exports.validatePhoneNumber = function (phone) { if (!helpers_1.isValidPhoneNumber(phone)) { throw new Error('Invalid phone number'); } };