UNPKG

@newdash/newdash

Version:

javascript/typescript utility library

36 lines (35 loc) 1.36 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const isIterateeCall_1 = __importDefault(require("./isIterateeCall")); const baseRest_1 = __importDefault(require("./baseRest")); /** * Creates a function like `assign`. * * @private * @param assigner The function to assign values. * @returns Returns the new assigner function. */ function createAssigner(assigner) { return (0, baseRest_1.default)(function (object, sources) { var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined, guard = length > 2 ? sources[2] : undefined; customizer = (assigner.length > 3 && typeof customizer == 'function') ? (length--, customizer) : undefined; if (guard && (0, isIterateeCall_1.default)(sources[0], sources[1], guard)) { customizer = length < 3 ? undefined : customizer; length = 1; } object = Object(object); while (++index < length) { var source = sources[index]; if (source) { assigner(object, source, index, customizer); } } return object; }); } exports.default = createAssigner;