1.0.0 • Published 10 years ago
own2json v1.0.0
own2json
Stringify objects' own properties.
The Problem
Some objects (read Errors) don't stringify the way you'd like them to:
const err = new Error('foo');
console.log(JSON.stringify(err));
// Logs {}The Solution
own2json exports a single method, which can be used as an object's toJSON() method. The result is that JSON.stringify() will contain all of the properties returned by Object.getOwnPropertyNames() that can be stringified (undefined, functions, etc. will not be included).
const Own2Json = require('own2json');
const err = new Error('foo');
e2.toJSON = Own2Json;
console.log(JSON.stringify(err));
// Value contains error's `message` and `stack`
// Only applies to `e2`This technique can be applied to prototypes as well (although modifying builtins is not recommended):
const Own2Json = require('own2json');
const err = new Error('foo');
Error.prototype.toJSON = Own2Json;
console.log(JSON.stringify(err));
// Value contains error's `message` and `stack`
// Applies to all Error objects1.0.0
10 years ago