UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

35 lines (34 loc) 1.11 kB
"use strict"; 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;