28 lines
664 B
JavaScript
28 lines
664 B
JavaScript
|
import { inspectList } from './helpers'
|
||
|
|
||
|
function inspectMapEntry([key, value], options) {
|
||
|
options.truncate -= 4
|
||
|
key = options.inspect(key, options)
|
||
|
options.truncate -= key.length
|
||
|
value = options.inspect(value, options)
|
||
|
return `${key} => ${value}`
|
||
|
}
|
||
|
|
||
|
// IE11 doesn't support `map.entries()`
|
||
|
function mapToEntries(map) {
|
||
|
const entries = []
|
||
|
map.forEach((value, key) => {
|
||
|
entries.push([key, value])
|
||
|
})
|
||
|
return entries
|
||
|
}
|
||
|
|
||
|
export default function inspectMap(map, options) {
|
||
|
const size = map.size - 1
|
||
|
if (size <= 0) {
|
||
|
return 'Map{}'
|
||
|
}
|
||
|
options.truncate -= 7
|
||
|
return `Map{ ${inspectList(mapToEntries(map), options, inspectMapEntry)} }`
|
||
|
}
|