UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

41 lines (40 loc) 1.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.transform = void 0; const arrayEach_1 = __importDefault(require("./.internal/arrayEach")); const baseForOwn_1 = __importDefault(require("./.internal/baseForOwn")); const isBuffer_1 = __importDefault(require("./isBuffer")); const isObject_1 = __importDefault(require("./isObject")); const isTypedArray_1 = __importDefault(require("./isTypedArray")); const isArray_1 = __importDefault(require("./isArray")); const getIteratee_1 = __importDefault(require("./.internal/getIteratee")); const isFunction_1 = __importDefault(require("./isFunction")); const baseCreate_1 = __importDefault(require("./.internal/baseCreate")); const overArg_1 = __importDefault(require("./.internal/overArg")); /** * @ignore */ const getPrototype = (0, overArg_1.default)(Object.getPrototypeOf, Object); function transform(object, iteratee, accumulator) { const isArr = (0, isArray_1.default)(object), isArrLike = isArr || (0, isBuffer_1.default)(object) || (0, isTypedArray_1.default)(object); iteratee = (0, getIteratee_1.default)(iteratee, 4); if (accumulator == null) { const Ctor = object && object.constructor; if (isArrLike) { accumulator = isArr ? new Ctor : []; } else if ((0, isObject_1.default)(object)) { accumulator = (0, isFunction_1.default)(Ctor) ? (0, baseCreate_1.default)(getPrototype(object)) : {}; } else { accumulator = {}; } } (isArrLike ? arrayEach_1.default : baseForOwn_1.default)(object, (value, index, object) => iteratee(accumulator, value, index, object)); return accumulator; } exports.transform = transform; exports.default = transform;