@newdash/newdash
Version:
javascript/typescript utility library
35 lines (34 loc) • 1.11 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.size = void 0;
const getTag_1 = __importDefault(require("./.internal/getTag"));
const isArrayLike_1 = __importDefault(require("./isArrayLike"));
const isString_1 = __importDefault(require("./isString"));
const stringSize_1 = __importDefault(require("./.internal/stringSize"));
/**
* `Object#toString` result references.
* @ignore
*/
const mapTag = "[object Map]";
/**
* @ignore
*/
const setTag = "[object Set]";
function size(collection) {
if (collection == null) {
return 0;
}
if ((0, isArrayLike_1.default)(collection)) {
return (0, isString_1.default)(collection) ? (0, stringSize_1.default)(collection) : collection.length;
}
const tag = (0, getTag_1.default)(collection);
if (tag == mapTag || tag == setTag) {
return collection.size;
}
return Object.keys(collection).length;
}
exports.size = size;
exports.default = size;