A way to truncate a json object. Useful for circular referenced objects.
If you need to write data to a file or output an object to an api endpoint that has circular references I recommend you give json-truncate a try.
By removing deeply nested data to maintain simple copies of the circular references you can keep most of the data you might be interested in.
npm install json-truncate --save
Below are examples of how to use json-truncate
You can include with regular node require:
JSON.truncate = require('json-truncate')Figure 1.0 - A basic example with default options.
JSON.truncate(SomeDeepObject)Figure 1.1 - An example of setting the maxDepth property.
JSON.truncate(SomeDeepObject, 5)Figure 1.2 - An example of all configurable options.
console.log(JSON.truncate({
  data: 'foo',
  level1: {
    data: 'bar',
    level2: {
      level3: {}
    }
  }
}, {
  maxDepth: 2,
  replace: '[Truncated]'
}))
/**
 * Output:
{
  "data": "foo",
  "level1": {
    "data": "bar",
    "level2": "[Truncated]"
  }
}
 **/By default, there are two configurable variables to keep in mind when using json-truncate:
- maxDepth (Number)=- 10
- replace (Any)=- undefined
If you would you can configure these either individually with each request, or globally with the configuration function. The following example mimics figure 1.2 above.
JSON.truncate.configure({
  maxDepth: 2,
  replace: '[Truncated]'
})- obj- The Object that will be truncated.
- options- (optional) An option object to customize the behavior of the utility. Defaults to- {}.
Current Option Properties
| Option | Description | 
|---|---|
| maxDepth | The default maxDepth to use for nested and deep properties on an object. Defaults to 10 | 
| :-- | :-- | 
| replace | A string value that is used to replace all truncated values. If this value is not a string then all truncated values will be replaced with undefined | 
MIT