https://github.com/mrsteele/json-truncate
A way to truncate a json object.
https://github.com/mrsteele/json-truncate
json
Last synced: about 1 month ago
JSON representation
A way to truncate a json object.
- Host: GitHub
- URL: https://github.com/mrsteele/json-truncate
- Owner: mrsteele
- License: mit
- Created: 2016-04-29T19:00:22.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-09-22T17:47:20.000Z (over 2 years ago)
- Last Synced: 2025-03-26T06:41:43.718Z (about 2 months ago)
- Topics: json
- Language: JavaScript
- Size: 303 KB
- Stars: 5
- Watchers: 1
- Forks: 6
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# json-truncate
A way to truncate a json object. Useful for circular referenced objects.
## Status
[](https://www.npmjs.com/package/json-truncate)
[](https://github.com/mrsteele/json-truncate/actions/workflows/main.yml)
[](#)
[](https://david-dm.org/mrsteele/json-truncate#info=devDependencies)
[](http://standardjs.com/)
[](https://github.com/semantic-release/semantic-release)
[](https://raw.githubusercontent.com/mrsteele/json-truncate/master/LICENSE)
[](https://greenkeeper.io/)## About
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.
## Install
```
npm install json-truncate --save
```## Usage
Below are examples of how to use `json-truncate`
#### Including
You can include with regular node require:
```javascript
JSON.truncate = require('json-truncate')
```#### Usage
**Figure 1.0** - A basic example with default options.
```javascript
JSON.truncate(SomeDeepObject)
```**Figure 1.1** - An example of setting the `maxDepth` property.
```javascript
JSON.truncate(SomeDeepObject, 5)
```**Figure 1.2** - An example of all configurable options.
```javascript
console.log(JSON.truncate({
data: 'foo',
level1: {
data: 'bar',
level2: {
level3: {}
}
}
}, {
maxDepth: 2,
replace: '[Truncated]'
}))
/**
* Output:
{
"data": "foo",
"level1": {
"data": "bar",
"level2": "[Truncated]"
}
}
**/
```### Configuration
By default, there are two configurable variables to keep in mind when using `json-truncate`:
1. `maxDepth (Number)` = `10`
2. `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.
```javascript
JSON.truncate.configure({
maxDepth: 2,
replace: '[Truncated]'
})
```#### Arguments
* `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`|## Licence
MIT