UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

53 lines (52 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setObjectPropertyPathValue = exports.getOptionalObjectPropertyPathValue = exports.getObjectPropertyPathValue = exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_FALSE = exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_UNDEFINED = exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_THROW = void 0; var is_nullish_1 = require("../is-type/is-nullish.cjs"); var OBJECT_PROPERTY_PATH_ON_INCOMPLETE_THROW = function () { throw new Error("Invalid property path"); }; exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_THROW = OBJECT_PROPERTY_PATH_ON_INCOMPLETE_THROW; var OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_UNDEFINED = function () { return void 0; }; exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_UNDEFINED = OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_UNDEFINED; var OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_FALSE = function () { return false; }; exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_FALSE = OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_FALSE; function getObjectPropertyPathValue(data, path, onIncompletePath) { if (onIncompletePath === void 0) { onIncompletePath = exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_THROW; } for (var i = 0, l = path.length; i < l; i++) { var propertyKey = path[i]; data = data[propertyKey]; if ((0, is_nullish_1.isNullish)(data)) { return onIncompletePath(); } } return data; } exports.getObjectPropertyPathValue = getObjectPropertyPathValue; function getOptionalObjectPropertyPathValue(data, path) { return getObjectPropertyPathValue(data, path, exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_UNDEFINED); } exports.getOptionalObjectPropertyPathValue = getOptionalObjectPropertyPathValue; function setObjectPropertyPathValue(data, path, value, onIncompletePath) { if (onIncompletePath === void 0) { onIncompletePath = exports.OBJECT_PROPERTY_PATH_ON_INCOMPLETE_RETURN_FALSE; } var lengthMinusOne = path.length - 1; for (var i = 0; i < lengthMinusOne; i++) { var propertyKey = path[i]; data = data[propertyKey]; if ((0, is_nullish_1.isNullish)(data)) { return onIncompletePath(); } } data[path[lengthMinusOne]] = value; return true; } exports.setObjectPropertyPathValue = setObjectPropertyPathValue;