@fantasticfiasco/expect
Version:
A Node.js library written in TypeScript providing argument validation.
97 lines • 3.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toBeEmail = exports.toBeCharCodes = exports.toBeAlphanumeric = exports.toNotExist = exports.toExist = exports.toBeFalse = exports.toBeTrue = void 0;
const ExpectationError_1 = require("./ExpectationError");
/**
* Expect a condition to be true.
* @param condition The condition expected to be true.
* @param errorMessage The optional error message displayed if expectation fails.
* @throws {ExpectationError}
*/
function toBeTrue(condition, errorMessage) {
if (!condition) {
throw new ExpectationError_1.ExpectationError(errorMessage);
}
}
exports.toBeTrue = toBeTrue;
/**
* Expect a condition to be false.
* @param condition The condition expected to be false.
* @param errorMessage The optional error message displayed if expectation fails.
* @throws {ExpectationError}
*/
function toBeFalse(condition, errorMessage) {
if (condition) {
throw new ExpectationError_1.ExpectationError(errorMessage);
}
}
exports.toBeFalse = toBeFalse;
/**
* Expect a value to exist.
* @param value The value expected to exist.
* @param errorMessage The optional error message displayed if expectation fails.
* @throws {ExpectationError}
*/
function toExist(value, errorMessage) {
if (!value) {
throw new ExpectationError_1.ExpectationError(errorMessage);
}
}
exports.toExist = toExist;
/**
* Expect a value not to exist.
* @param value The value expected not to exist.
* @param errorMessage The optional error message displayed if expectation fails.
* @throws {ExpectationError}
*/
function toNotExist(value, errorMessage) {
if (value) {
throw new ExpectationError_1.ExpectationError(errorMessage);
}
}
exports.toNotExist = toNotExist;
/**
* Expect a value to be alphanumeric.
* @param value The value expected to be alphanumeric.
* @param errorMessage The optional error message displayed if expectation fails.
* @throws {ExpectationError}
*/
function toBeAlphanumeric(value, errorMessage) {
if (!alphanumeric.test(value)) {
throw new ExpectationError_1.ExpectationError(errorMessage);
}
}
exports.toBeAlphanumeric = toBeAlphanumeric;
const alphanumeric = /^[0-9A-Z]+$/i;
/**
* Expect a value to only contain characters from a range of character codes.
* @param value The value expected to have characters from a range of character codes.
* @param minCharCode The expected minimum character code.
* @param maxCharCode The expected maximum character code.
* @param errorMessage The optional error message displayed if expectation fails.
* @throws {ExpectationError}
*/
function toBeCharCodes(value, minCharCode, maxCharCode, errorMessage) {
for (let index = 0; index < value.length; index++) {
const charCode = value.charCodeAt(index);
if (charCode < minCharCode || charCode > maxCharCode) {
throw new ExpectationError_1.ExpectationError(errorMessage);
}
}
}
exports.toBeCharCodes = toBeCharCodes;
/**
* Expect a value to be an email.
* @param email The value expected to be an email.
* @param errorMessage The optional error message displayed if expectation fails.
* @throws {ExpectationError}
*/
function toBeEmail(email, errorMessage) {
const regex = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
const match = email.match(regex);
if (match === null || (match[0] !== email)) {
throw new ExpectationError_1.ExpectationError(errorMessage);
}
}
exports.toBeEmail = toBeEmail;
//# sourceMappingURL=Expect.js.map