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
Error
constructor ascircularValue
option 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
undefined
ascircularValue
option 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
maximumBreadth
option to limit stringification at a specific object or array "width" (number of properties / values) - Added
maximumDepth
option 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 newbigint
option 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