Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
azanul / server / node_modules / mongoose / lib / helpers / path / setDottedPath.js
Size: Mime:
'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;
  }
};