blakeembrey / blakeembrey/javascript-stringify
allow identifier when maxDepth/maxValues is hit
- Dominant language
- TypeScript
- Stars
- 146
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
currently when using maxDepth/ maxValue, there is no way to know if a item is an empty object/undefined or if its been truncated by this param, I propose adding either a custom text param, or at least a flag to set default text variables to tell the client that the data is truncated and not in fact empty/undefined
# max depth example
```
//currently
const obj = {"hello":{"world":{"i am":"an Object"}}}
stringify(obj,null,null,{maxDepth:2});
//outputs: '{hello:{world:{}}}'
// unknown if depth has been reached or if "world" key just goes to an empty object
//feature with same object
const str = "[JSON max depth has been reached]"
stringify(obj,null,null,{maxDepth:2, maxDepthText: str});
//outputs:'{hello:{world:[JSON max depth has been reached]}}'
```
# max value example
```
//currently
const obj2 = {"hello":{"world":{"i": "am","an": "Object"}, test1: true, test2:false}}
stringify(obj2,null,null,{maxValues:3});
//outputs:'{hello:{world:{}}}'
// unknown if value limt has been reached or if the value for the "hello" key just has an object with a "world" key
//feature with same object
const str = "max values for object reached"
stringify(obj,null,null,{maxValues:3, maxValuesText: str});
//outputs: '{hello:{world:{"..." : "max values for object reached" }, "...": "max values for object reached"}}'
// notice not "..." for both test1 and test2, just 1 "..." for the object that is missing keys
```
Contributor guide
No contributing guide indexed for this repository
Research direction
No file or test path is named. Locate the stringify entry point and current maxDepth/maxValues handling, compare the proposed custom text and flag options, then add coverage distinguishing truncated values from genuinely empty or undefined values and verify the example outputs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100