build(deps-dev): apply updates
[benchmarks-js.git] / deep-merge-object.mjs
index eed7b10b68ce516727b9658e3c9fd7d30fea2b0f..a33dc2160d1b3547f89d0d54adf63d585861bfb8 100644 (file)
@@ -1,43 +1,31 @@
 /* eslint-disable no-unused-vars */
-import Benchmark from 'benny'
-import _ from 'lodash'
-import merge from 'just-merge'
 import deepMerge from 'deepmerge'
+import _ from 'lodash'
+import { mergeDeepRight } from 'rambda'
+import { bench, group, run } from 'tatami-ng'
+
 import { generateRandomObject } from './benchmark-utils.mjs'
 
 const object = generateRandomObject()
 const objectToMerge = generateRandomObject()
 
-Benchmark.suite(
+group(
   `Deep merge two objects: object with ${
     Object.keys(object).length
   } keys, object with ${Object.keys(objectToMerge).length} keys`,
-  Benchmark.add('lodash merge', (obj = object) => {
-    const objMerged = _.merge(obj, objectToMerge)
-  }),
-  Benchmark.add('just-merge', (obj = object) => {
-    const objMerged = merge(obj, objectToMerge)
-  }),
-  Benchmark.add('deepmerge', (obj = object) => {
-    const objMerged = deepMerge(obj, objectToMerge)
-  }),
-  Benchmark.cycle(),
-  Benchmark.complete(),
-  Benchmark.save({
-    file: 'deep-merge-object',
-    format: 'json',
-    details: true
-  }),
-  Benchmark.save({
-    file: 'deep-merge-object',
-    format: 'chart.html',
-    details: true
-  }),
-  Benchmark.save({
-    file: 'deep-merge-object',
-    format: 'table.html',
-    details: true
-  })
-).catch((err) => {
-  console.error(err)
+  () => {
+    bench('lodash merge', (obj = object) => {
+      _.merge(obj, objectToMerge)
+    })
+    bench('rambda mergeDeepRight', (obj = object) => {
+      mergeDeepRight(obj, objectToMerge)
+    })
+    bench('deepmerge', (obj = object) => {
+      deepMerge(obj, objectToMerge)
+    })
+  }
+)
+
+await run({
+  units: true
 })