UNPKG

abolish

Version:

A javascript object validator.

89 lines (88 loc) 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.optional = exports.$inlineAsync = exports.$inline = void 0; exports.$skip = $skip; exports.skipIfUndefined = skipIfUndefined; exports.skipIfNotDefined = skipIfNotDefined; exports.required = required; exports.requiredT = requiredT; /** * $inLine object generator * @param fn * @param $error */ const $inline = (fn, $error) => { return $error ? { $inline: fn, $error } : { $inline: fn }; }; exports.$inline = $inline; /** * $inLineAsync object generator */ const $inlineAsync = (fn, $error) => { return $error ? { $inlineAsync: fn, $error } : { $inlineAsync: fn }; }; exports.$inlineAsync = $inlineAsync; /** * Skip Rule Function Type * @param fn */ function $skip(fn) { return { $skip: fn }; } /** * Skip if undefined * @param rule */ function skipIfUndefined(rule) { if (!Array.isArray(rule)) rule = [rule]; return [$skip((v) => v === undefined)].concat(rule); } /** * Skip if is undefined || null * @param rule */ function skipIfNotDefined(rule) { if (!Array.isArray(rule)) rule = [rule]; return [$skip((v) => v === undefined || v === null)].concat(rule); } /** * Optional - alias for skipIfNotDefined */ exports.optional = skipIfNotDefined; /** * Required helper function. * @example * required("string") * // is same as * ["required", "string"] */ function required(rule) { if (typeof rule === "string") { // add `required` to rule return "required|" + rule; } else if (Array.isArray(rule)) { // add `required` to rule return ["required", ...rule]; } else if (typeof rule === "object") { // add `required` to rule return { required: true, ...rule }; } else { throw new Error("Required: Invalid Rule"); } } /** * Required helper function for typed rules. * @param rule * @example * requiredT("string") * // is same as * ["required", "string"] */ function requiredT(rule) { return required(rule); }