art-standard-lib
Version:
The Standard Library for JavaScript that aught to be.
26 lines (24 loc) • 847 B
text/coffeescript
{deepMap, hasKeys, isPlainArray, isPlainObject, isFunction, isClass} = require '../TypesExtended'
{inspectedObjectLiteral} = require './InspectedObjectLiteral'
module.exports = class PlainObjects
: toPlainObjects = (m) ->
return m unless m?
oldm = m
if out = m.getPlainObjects?()
out
else if isPlainObject(m) || isPlainArray(m)
deepMap m, (v) -> toPlainObjects v
else if isClass m
inspectedObjectLiteral "<#{m.getName()}>"
else if isFunction m
functionString = "#{m}"
reducedFunctionString = functionString
.replace /\s+/g, ' '
.replace /^function (\([^)]*\))/, "$1 ->"
.replace /^\(\)\s*/, ''
inspectedObjectLiteral if reducedFunctionString.length < 80
reducedFunctionString
else
functionString.slice 0, 5 * 80
else
m