UNPKG

crocks

Version:

A collection of well known Algebraic Datatypes for your utter enjoyment.

33 lines (24 loc) 692 B
/** @license ISC License (c) copyright 2017 original and current authors */ /** @author Ian Hofmann-Hicks (evil) */ var hasAlg = require('../core/hasAlg') var isSameType = require('../core/isSameType') var fl = require('../core/flNames') function empty(m) { if(m && hasAlg('empty', m)) { return (m[fl.empty] || m.empty).call(m) } if(m && hasAlg('empty', m.constructor)) { return (m.constructor[fl.empty] || m.constructor.empty).call(m) } if(isSameType([], m)) { return [] } if(isSameType('', m)) { return '' } if(isSameType({}, m)) { return {} } throw new TypeError('empty: Monoid, Array, String or Object required') } module.exports = empty