UNPKG

throw-expression

Version:

Allows you, through a simple function, to throw an error inside an expression

61 lines (60 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.throwIfNullish = exports.throwIfNotANumber = exports.throwIfFalsy = exports.throwIfUndefined = exports.throwIfNull = exports.Throw = void 0; /** * Throws an error when called * @param error either error object or a string */ exports.Throw = function (error) { var errorObject = typeof error === "string" ? new Error(error) : error; // Big thanks to https://github.com/Yona-Appletree for creating this issue! This was all their idea: https://github.com/jindra12/throw-expression/issues/2 // This prevents this function from appearing in the stack trace, making // it look the same as if a normal throw statement had been used Error.captureStackTrace(errorObject, exports.Throw); throw errorObject; }; /** * Throw exception if value is null * @param value value to be checked for null * @param error either error object or a string */ exports.throwIfNull = function (value, error) { if (error === void 0) { error = 'value is null'; } return value === null ? exports.Throw(error) : value; }; /** * Throw exception if value is undefined * @param value value to be checked for undefined * @param error either error object or a string */ exports.throwIfUndefined = function (value, error) { if (error === void 0) { error = 'value is undefined'; } return value === undefined ? exports.Throw(error) : value; }; /** * Throw exception if value is falsy: empty string, zero, false, NaN, undefined or null * @param value value to be checked for falsy: empty string, zero, false, NaN, undefined or null * @param error either error object or a string */ exports.throwIfFalsy = function (value, error) { if (error === void 0) { error = 'value is falsy'; } return !value ? exports.Throw(error) : value; }; /** * Throw exception if value is NaN, or not a number at all * @param value value to be checked for NaN or not a number at all * @param error either error object or a string */ exports.throwIfNotANumber = function (value, error) { if (error === void 0) { error = 'value is not a number'; } return typeof value !== "number" || isNaN(value) ? exports.Throw(error) : value; }; /** * Throw expression if value is null or undefined * @param value to be checked for null or undefined * @param error either error object or a string */ exports.throwIfNullish = function (value, error) { if (error === void 0) { error = 'value is nullish'; } return (value === undefined || value === null) ? exports.Throw(error) : value; };