File size: 585 Bytes
9756872
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'use strict';

const specialProperties = require('../specialProperties');


module.exports = function setDottedPath(obj, path, val) {
  if (path.indexOf('.') === -1) {
    if (specialProperties.has(path)) {
      return;
    }

    obj[path] = val;
    return;
  }
  const parts = path.split('.');

  const last = parts.pop();
  let cur = obj;
  for (const part of parts) {
    if (specialProperties.has(part)) {
      continue;
    }
    if (cur[part] == null) {
      cur[part] = {};
    }

    cur = cur[part];
  }

  if (!specialProperties.has(last)) {
    cur[last] = val;
  }
};