/** * Каллбек изменнеия, ожидает что вернется измененный объект * * @callback adapterCallback * @param {Object} modifiedObject - новый объект * @param {Object} originalObject - изначальный объект * @returns {Object} измененный коллбэком объект */ /** * * Если у newKey значение отстутсвует - null, '', false, 0, то oldKey удаляется из объекта * * @param {Object} targetObject * @param {Object} params * @param {Object} params.config - oldKey: null // delete oldKey * @param {adapterCallback | undefined} params.callback * @returns {Object} */ const convertObject = (targetObject, {config, callback = (v) => v}) => { let newObject = {} for (const key in config) { newObject[config[key]] = targetObject[key] } return callback(newObject, targetObject) } /** * * Если у newKey значение отстутсвует - null, '', false, 0, то oldKey удаляется из объекта * * @param {Array} targetList * @param {Object} options - oldKey: null // delete oldKey * @param {Object} options.config - oldKey: null // delete oldKey * @param {adapterCallback | undefined} options.callback * @returns {Object} */ const convertList = (targetList, {config, callback = (v) => v}) => { return targetList.map((targetObject) => convertObject(targetObject, {config, callback})) } export {convertList, convertObject}