Releases: BridgeAR/safe-stable-stringify
Releases · BridgeAR/safe-stable-stringify
v2.5.0
- Accept
Array#sort(comparator)comparator method as deterministic option value to use that comparator for sorting object keys.
import { configure } from 'safe-stable-stringify'
const object = {
a: 1,
b: 2,
c: 3,
}
const stringify = configure({
deterministic: (a, b) => b.localeCompare(a)
})
stringify(object)
// '{"c": 3,"b":2,"a":1}'- Very minor performance optimization.
Thanks to @flobernd, @cesco69 and @prisis to contribute to this release!
v2.4.3
- Fixed toJSON function receiving array keys as number instead of string
- Fixed replacer function receiving array keys as number instead of string
- Fixed replacer function not being called for TypedArray entries
- Improved performance to escape long strings that contain characters that need escaping
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
- Accept the
Errorconstructor ascircularValueoption to throw on circular references as the regular JSON.stringify would:
import { configure } from 'safe-stable-stringify'
const object = {}
object.circular = object;
const stringify = configure({ circularValue: TypeError })
stringify(object)
// TypeError: Converting circular structure to JSON- Fixed escaping wrong surrogates. Only lone surrogates are now escaped.
v2.2.0
- Reduce module size by removing the test and benchmark files from the published package
- Accept
undefinedascircularValueoption to remove circular properties from the serialized output:
import { configure } from 'safe-stable-stringify'
const object = { array: [] }
object.circular = object;
object.array.push(object)
configure({ circularValue: undefined })(object)
// '{"array":[null]}'v2.1.0
- Added
maximumBreadthoption to limit stringification at a specific object or array "width" (number of properties / values) - Added
maximumDepthoption to limit stringification at a specific nesting depth - Implemented the well formed stringify proposal that is now part of the spec
- Fixed maximum spacer length (10)
- Fixed TypeScript definition
- Fixed duplicated array replacer values serialized more than once
v2.0.0
- [BREAKING] Convert BigInt to number by default instead of ignoring these values
If you wish to ignore these values similar to earlier versions, just use the newbigintoption and set it tofalse. - [BREAKING] Support ESM
- [BREAKING] Requires ES6
- Optional BigInt support
- Deterministic behavior is now optional
- The value to indicate a circular structure is now adjustable
- Significantly faster TypedArray stringification
- Smaller Codebase
- Removed stateful indentation to guarantee side-effect freeness