Sha256: c28303130f8bcfd88efce6120533e31cdf1788097f9e4e20dced8375a29edb67
Contents?: true
Size: 934 Bytes
Versions: 5
Compression:
Stored size: 934 Bytes
Contents
// Safe toJSON module.exports = function getSafe (self, uuid) { if (typeof self === 'object' || typeof self === 'function') var safe = {} if (Array.isArray(self)) var safe = [] var recurse = [] Object.defineProperty(self, uuid, {}) var attrs = Object.keys(self).filter(function (i) { if (i === uuid) return false if ( (typeof self[i] !== 'object' && typeof self[i] !== 'function') || self[i] === null) return true return !(Object.getOwnPropertyDescriptor(self[i], uuid)) }) for (var i=0;i<attrs.length;i++) { if ( (typeof self[attrs[i]] !== 'object' && typeof self[attrs[i]] !== 'function') || self[attrs[i]] === null ) { safe[attrs[i]] = self[attrs[i]] } else { recurse.push(attrs[i]) Object.defineProperty(self[attrs[i]], uuid, {}) } } for (var i=0;i<recurse.length;i++) { safe[recurse[i]] = getSafe(self[recurse[i]], uuid) } return safe }
Version data entries
5 entries across 5 versions & 2 rubygems