/*! * unset-value <https://github.com/jonschlinkert/unset-value> * * Copyright (c) 2015, 2017, Jon Schlinkert. * Released under the MIT License. */ 'use strict'; var isObject = require('isobject'); var has = require('has-value'); module.exports = function unset(obj, prop) { if (!isObject(obj)) { throw new TypeError('expected an object.'); } if (obj.hasOwnProperty(prop)) { delete obj[prop]; return true; } if (has(obj, prop)) { var segs = prop.split('.'); var last = segs.pop(); while (segs.length && segs[segs.length - 1].slice(-1) === '\\') { last = segs.pop().slice(0, -1) + '.' + last; } while (segs.length) obj = obj[prop = segs.shift()]; return (delete obj[last]); } return true; };