import deepClone from 'deep-clone'
-import { produce } from 'immer'
import clone from 'just-clone'
import _ from 'lodash'
import { clone as ramdaClone } from 'ramda'
.add('remeda clone', (obj = object) => {
remedaClone(obj)
})
- .add('immer produce', (obj = object) => {
- produce(obj, draft => ({ ...draft }))
- })
await bench.run()
"deep-clone": "^4.0.0",
"deepmerge": "^4.3.1",
"hash-object": "^5.1.0",
- "immer": "^11.1.4",
"just-clone": "^6.2.0",
"lodash": "^4.17.23",
- "nanoid": "^5.1.6",
"node-object-hash": "^3.1.1",
"object-hash": "^3.0.0",
"ramda": "^0.32.0",
hash-object:
specifier: ^5.1.0
version: 5.1.0
- immer:
- specifier: ^11.1.4
- version: 11.1.4
just-clone:
specifier: ^6.2.0
version: 6.2.0
lodash:
specifier: ^4.17.23
version: 4.17.23
- nanoid:
- specifier: ^5.1.6
- version: 5.1.6
node-object-hash:
specifier: ^3.1.1
version: 3.1.1
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
engines: {node: '>= 4'}
- immer@11.1.4:
- resolution: {integrity: sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==}
-
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==}
engines: {node: '>=20.17'}
- nanoid@5.1.6:
- resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==}
- engines: {node: ^18 || >=20}
- hasBin: true
-
napi-postinstall@0.3.4:
resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
ignore@7.0.5: {}
- immer@11.1.4: {}
-
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
nano-spawn@2.0.0: {}
- nanoid@5.1.6: {}
-
napi-postinstall@0.3.4: {}
natural-compare@1.4.0: {}
-import { nanoid } from 'nanoid'
import { randomUUID } from 'node:crypto'
import { Bench } from 'tinybench'
import { v4 as uuid } from 'uuid'
bench.add('uuid', () => {
uuid()
})
-bench.add('nanoid', () => {
- nanoid()
-})
await bench.run()
console.table(bench.table())