bluechip-utils
Version:
Utitity function package for javsacript and Typescript
61 lines (60 loc) • 2.82 kB
JavaScript
;
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');
}
};