UNPKG

crocks

Version:

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

49 lines (38 loc) 1.06 kB
/** @license ISC License (c) copyright 2016 original and current authors */ /** @author Ian Hofmann-Hicks (evil) */ var isArray = require('./isArray') var isFunction = require('./isFunction') var isObject = require('./isObject') var isString = require('./isString') var isSymbol = require('./isSymbol') var isDate = require('./isDate') function arrayInspect(xs) { return xs.length ? xs.map(inspect).reduce(function (a, x) { return a + ',' + x; }) : xs } // inspect : a -> String function inspect(x) { if(x && isFunction(x.inspect)) { return (" " + (x.inspect())) } if(isFunction(x)) { return ' Function' } if(isArray(x)) { return (" [" + (arrayInspect(x)) + " ]") } if(isObject(x)) { return (" { " + (Object.keys(x).reduce(function (acc, key) { return acc.concat([ (key + ":" + (inspect(x[key]))) ]) }, []).join(', ')) + " }") } if(isString(x)) { return (" \"" + x + "\"") } if(isSymbol(x) || isDate(x)) { return (" " + (x.toString())) } return (" " + x) } module.exports = inspect