Skip to content

Commit fa390f3

Browse files
committed
chore: adds object-identity as known alternative
1 parent 8a02137 commit fa390f3

3 files changed

Lines changed: 30 additions & 20 deletions

File tree

compare.js

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,29 @@ const stringifyPackages = {
1313
'faster-stable-stringify': true,
1414
'json-stringify-deterministic': true,
1515
'fast-safe-stringify': 'stable',
16+
'object-identity': import('object-identity').then(m => m.identify),
1617
'safe-stable-stringify': require('.')
1718
}
1819

19-
for (const name in stringifyPackages) {
20-
let fn
21-
if (typeof stringifyPackages[name] === 'function') {
22-
fn = stringifyPackages[name]
23-
} else if (typeof stringifyPackages[name] === 'string') {
24-
fn = require(name)[stringifyPackages[name]]
25-
} else {
26-
fn = require(name)
27-
}
20+
async function main () {
21+
for (const name in stringifyPackages) {
22+
let fn
23+
if (typeof stringifyPackages[name] === 'function') {
24+
fn = stringifyPackages[name]
25+
} else if (typeof stringifyPackages[name] === 'string') {
26+
fn = require(name)[stringifyPackages[name]]
27+
} else if (typeof stringifyPackages[name].then === 'function') {
28+
fn = await stringifyPackages[name]
29+
} else {
30+
fn = require(name)
31+
}
2832

29-
suite.add(name, function () {
30-
fn(testData)
31-
})
33+
suite.add(name, function () {
34+
fn(testData)
35+
})
36+
}
3237
}
3338

34-
suite.run()
39+
main().then(function (){
40+
suite.run()
41+
})

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
"json-stable-stringify": "^1.3.0",
5050
"json-stringify-deterministic": "^1.0.12",
5151
"json-stringify-safe": "^5.0.1",
52+
"object-identity": "^0.2.1",
5253
"bench-node": "^0.14.0",
5354
"standard": "^17.1.2",
5455
"tap": "^16.3.10",

readme.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,15 @@ indentation: deep circular x 16,443 ops/sec ±0.40% (97 runs sampled)
162162
Comparing `safe-stable-stringify` with known alternatives:
163163

164164
```md
165-
fast-json-stable-stringify x 18,765 ops/sec ±0.71% (94 runs sampled)
166-
json-stable-stringify x 13,870 ops/sec ±0.72% (94 runs sampled)
167-
fast-stable-stringify x 21,343 ops/sec ±0.33% (95 runs sampled)
168-
faster-stable-stringify x 17,707 ops/sec ±0.44% (97 runs sampled)
169-
json-stringify-deterministic x 11,208 ops/sec ±0.57% (98 runs sampled)
170-
fast-safe-stringify x 21,460 ops/sec ±0.75% (99 runs sampled)
171-
this x 30,367 ops/sec ±0.39% (96 runs sampled)
165+
fastest-stable-stringify x 53,720 ops/sec (11 runs sampled)
166+
fast-json-stable-stringify x 48,530 ops/sec (11 runs sampled)
167+
json-stable-stringify x 38,123 ops/sec (11 runs sampled)
168+
fast-stable-stringify x 54,064 ops/sec (12 runs sampled)
169+
faster-stable-stringify x 47,958 ops/sec (10 runs sampled)
170+
json-stringify-deterministic x 35,306 ops/sec (10 runs sampled)
171+
fast-safe-stringify x 44,133 ops/sec (10 runs sampled)
172+
object-identity x 103,553 ops/sec (13 runs sampled)
173+
this x 48,175 ops/sec (11 runs sampled)
172174

173175
The fastest is this
174176
```

0 commit comments

Comments
 (0)