| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | exports.set = function (target, path, value) {  const fields = path.split('.')  let obj = target  const l = fields.length  for (let i = 0; i < l - 1; i++) {    const key = fields[i]    if (!obj[key]) {      obj[key] = {}    }    obj = obj[key]  }  obj[fields[l - 1]] = value}exports.get = function (target, path) {  const fields = path.split('.')  let obj = target  const l = fields.length  for (let i = 0; i < l - 1; i++) {    const key = fields[i]    if (!obj[key]) {      return undefined    }    obj = obj[key]  }  return obj[fields[l - 1]]}exports.unset = function (target, path) {  const fields = path.split('.')  let obj = target  const l = fields.length  const objs = []  for (let i = 0; i < l - 1; i++) {    const key = fields[i]    if (!obj[key]) {      return    }    objs.splice(0, 0, { obj, key, value: obj[key] })    obj = obj[key]  }  delete obj[fields[l - 1]]  // Clear empty objects  for (const { obj, key, value } of objs) {    if (!Object.keys(value).length) {      delete obj[key]    }  }}
 |