crocks
Version:
A collection of well known Algebraic Datatypes for your utter enjoyment.
27 lines (20 loc) • 578 B
JavaScript
/** @license ISC License (c) copyright 2016 original and current authors */
/** @author Ian Hofmann-Hicks (evil) */
var isObject = require('./isObject')
var isMonoid = require('./isMonoid')
var equals = require('./equals')
var fl = require('./flNames')
function isEmpty(x) {
if(isMonoid(x)) {
var empty = x.constructor[fl['empty']] || x.constructor['empty'] || x['empty']
return equals(x, empty())
}
if(isObject(x)) {
return !Object.keys(x).length
}
if(x && x.length !== undefined) {
return !x.length
}
return true
}
module.exports = isEmpty