rubico
Version:
[a]synchronous functional programming
24 lines (20 loc) • 549 B
JavaScript
/**
* rubico v2.6.2
* https://github.com/a-synchronous/rubico
* (c) 2019-2024 Richard Tong
* rubico may be freely distributed under the MIT license.
*/
const objectKeysLength = object => {
let numKeys = 0
for (const _ in object) {
numKeys += 1
}
return numKeys
}
const size = value => typeof value == 'string' ? value.length
: value == null ? 0
: typeof value.length == 'number' ? value.length
: typeof value.size == 'number' ? value.size
: value.constructor == Object ? objectKeysLength(value)
: 1
export default size