UNPKG

intercom-client

Version:

[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fintercom%2Fintercom-node) [![npm shield](ht

44 lines (43 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setObjectProperty = void 0; /** * Sets the value at path of object. If a portion of path doesn’t exist it’s created. This is * inspired by Lodash's set function, but is simplified to accommodate our use case. * For more details, see https://lodash.com/docs/4.17.15#set. * * @param object The object to modify. * @param path The path of the property to set. * @param value The value to set. * @return Returns object. */ function setObjectProperty(object, path, value) { if (object == null) { return object; } const keys = path.split("."); if (keys.length === 0) { // Invalid path; do nothing. return object; } let current = object; for (let i = 0; i < keys.length - 1; i++) { const key = keys[i]; if (key == null) { // Unreachable. continue; } if (!current[key] || typeof current[key] !== "object") { current[key] = {}; } current = current[key]; } const lastKey = keys[keys.length - 1]; if (lastKey == null) { // Unreachable. return object; } current[lastKey] = value; return object; } exports.setObjectProperty = setObjectProperty;