1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 'use strict';
- const invariant = require('./invariant');
- function isEmpty(value: mixed): boolean {
- if (Array.isArray(value)) {
- return value.length === 0;
- } else if (typeof value === 'object') {
- if (value) {
- invariant(!isIterable(value) || value.size === undefined, 'isEmpty() does not support iterable collections.');
- for (const _ in value) {
- return false;
- }
- }
- return true;
- } else {
- return !value;
- }
- }
- function isIterable(value: any): boolean {
- if (typeof Symbol === 'undefined') {
- return false;
- }
- return value[Symbol.iterator];
- }
- module.exports = isEmpty;
|