UNPKG

@arnaudnyc/mout

Version:

Modular Utilities

23 lines (18 loc) 598 B
var namespace = require('./namespace'); /** * set "nested" object property */ function set(obj, prop, val){ // prototype pollution mitigation if(Object.prototype.toString.call(prop) === '[object String]' && (prop.includes('__proto__') || prop.includes('prototype') || prop.includes('constructor'))) { return false; } var parts = (/^(.+)\.(.+)$/).exec(prop); if (parts){ namespace(obj, parts[1])[parts[2]] = val; } else { obj[prop] = val; } } module.exports = set;