UNPKG

chain-able

Version:

interfaces that describe their intentions.

29 lines (22 loc) 2.42 kB
var isObj = require('../is/obj') var lengthMinusOne = require('../util/lengthMinusOne') var getPathSegments = require('./segments') var isDottable = require('./dottable') module.exports = function dotdelete(obj, path) { if (!isDottable(obj, path)) { return } var pathArr = getPathSegments(path) for (var i = 0; i < pathArr.length; i++) { var p = pathArr[i] if (i === lengthMinusOne(pathArr)) { delete obj[p] return } obj = obj[p] if (!isObj(obj)) { return } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLmpzIiwic291cmNlcyI6WyJkZWxldGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNPYmogPSByZXF1aXJlKCcuLi9pcy9vYmonKVxuY29uc3QgbGVuZ3RoTWludXNPbmUgPSByZXF1aXJlKCcuLi91dGlsL2xlbmd0aE1pbnVzT25lJylcbmNvbnN0IGdldFBhdGhTZWdtZW50cyA9IHJlcXVpcmUoJy4vc2VnbWVudHMnKVxuY29uc3QgaXNEb3R0YWJsZSA9IHJlcXVpcmUoJy4vZG90dGFibGUnKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRvdGRlbGV0ZShvYmosIHBhdGgpIHtcbiAgaWYgKCFpc0RvdHRhYmxlKG9iaiwgcGF0aCkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHBhdGhBcnIgPSBnZXRQYXRoU2VnbWVudHMocGF0aClcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhBcnIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwID0gcGF0aEFycltpXVxuXG4gICAgaWYgKGkgPT09IGxlbmd0aE1pbnVzT25lKHBhdGhBcnIpKSB7XG4gICAgICBkZWxldGUgb2JqW3BdXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBvYmogPSBvYmpbcF1cblxuICAgIGlmICghaXNPYmoob2JqKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiY29uc3QiLCJsZXQiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7QUFDbENBLEdBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDO0FBQ3hEQSxHQUFLLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7QUFDN0NBLEdBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQzs7QUFFeEMsTUFBTSxDQUFDLE9BQU8sR0FBRyxTQUFTLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO0VBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFO0lBQzFCLE1BQU07R0FDUDs7RUFFREEsR0FBSyxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDOztFQUVyQyxLQUFLQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUN2Q0QsR0FBSyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDOztJQUVwQixJQUFJLENBQUMsS0FBSyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUU7TUFDakMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDO01BQ2IsTUFBTTtLQUNQOztJQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDOztJQUVaLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7TUFDZixNQUFNO0tBQ1A7R0FDRjtDQUNGOyJ9