UNPKG

@modern-kit/utils

Version:
50 lines (45 loc) 1.58 kB
'use strict'; var validatorIsBoolean = require('../../validator/isBoolean/index.cjs'); var validatorIsNumber = require('../../validator/isNumber/index.cjs'); var validatorIsNil = require('../../validator/isNil/index.cjs'); var validatorIsArray = require('../../validator/isArray/index.cjs'); var validatorIsString = require('../../validator/isString/index.cjs'); var validatorIsPlainObject = require('../../validator/isPlainObject/index.cjs'); require('../../validator/isReference/index.cjs'); require('../../validator/isPrimitive/index.cjs'); const isFalsyNumber = (value) => { return validatorIsNumber.isNumber(value) && value === 0; }; const isFalsyString = (value) => { return validatorIsString.isString(value) && value === ""; }; const isFalsyArray = (value) => { return validatorIsArray.isArray(value) && value.length === 0; }; const isFalsyObject = (value) => { return validatorIsPlainObject.isPlainObject(value) && Object.keys(value).length === 0; }; const FALSY_CHECK_MAPPER = { number: isFalsyNumber, string: isFalsyString, array: isFalsyArray, object: isFalsyObject }; function pickFalsy(...falsyCheckList) { return function(value) { if (validatorIsNil.isNil(value)) { return true; } if (validatorIsNumber.isNumber(value) && isNaN(value)) { return true; } if (validatorIsBoolean.isBoolean(value) && value === false) { return true; } return falsyCheckList.some( (falsyProp) => !!FALSY_CHECK_MAPPER[falsyProp](value) ); }; } exports.pickFalsy = pickFalsy; //# sourceMappingURL=index.cjs.map