own2json

1.0.0 • Public • Published

own2json

Current Version Build Status via Travis CI Dependencies

belly-button-style

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 objects

Package Sidebar

Install

npm i own2json

Weekly Downloads

3

Version

1.0.0

License

MIT

Last publish

Collaborators

  • cjihrig