build: bump volta pnpm version
[benchmarks-js.git] / deep-merge-object.mjs
CommitLineData
896570f7
JB
1/* eslint-disable no-unused-vars */
2import Benchmark from 'benny'
3import _ from 'lodash'
4import merge from 'just-merge'
5import deepMerge from 'deepmerge'
6import { generateRandomObject } from './benchmark-utils.mjs'
7
8const object = generateRandomObject()
9const objectToMerge = generateRandomObject()
10
11Benchmark.suite(
12 `Deep merge two objects: object with ${
13 Object.keys(object).length
14 } keys, object with ${Object.keys(objectToMerge).length} keys`,
15 Benchmark.add('lodash merge', (obj = object) => {
16 const objMerged = _.merge(obj, objectToMerge)
17 }),
18 Benchmark.add('just-merge', (obj = object) => {
19 const objMerged = merge(obj, objectToMerge)
20 }),
04fdaf45 21 Benchmark.add('deepmerge', (obj = object) => {
896570f7
JB
22 const objMerged = deepMerge(obj, objectToMerge)
23 }),
24 Benchmark.cycle(),
25 Benchmark.complete(),
26 Benchmark.save({
27 file: 'deep-merge-object',
28 format: 'json',
29 details: true
30 }),
31 Benchmark.save({
32 file: 'deep-merge-object',
33 format: 'chart.html',
34 details: true
35 }),
36 Benchmark.save({
37 file: 'deep-merge-object',
38 format: 'table.html',
39 details: true
40 })
4aa2893a 41).catch(console.error)