-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathomit.benchmark.ts
76 lines (68 loc) · 1.23 KB
/
omit.benchmark.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import { Benchmark } from '../benchmarkHelper'
import { randomString } from '../randomString/randomString'
import { omit } from './omit'
const benchmark = new Benchmark('omit')
const omitKeys: Array<string> = []
for (let i = 0; i !== 55; i++) {
omitKeys.push(randomString(10))
}
benchmark.add({
library: 'flocky',
input: '5 properties / 3 omitted',
func: () => omit({ a: 1, b: 2, c: 3, d: 4, e: 5 }, ['a', 'b', 'd']),
})
benchmark.add({
library: 'flocky',
input: '26 properties / 3 omitted',
func: () => {
const object = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
f: 6,
g: 7,
h: 8,
i: 9,
j: 10,
k: 11,
l: 12,
m: 13,
n: 14,
o: 15,
p: 16,
q: 17,
r: 18,
s: 19,
t: 20,
u: 21,
v: 22,
w: 23,
x: 24,
y: 25,
z: 26,
}
return omit(object, ['a', 'b', 'd'])
},
})
benchmark.add({
library: 'flocky',
input: '10 properties / 55 omitted',
func: () => {
const object = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
f: 6,
g: 7,
h: 8,
i: 9,
j: 10,
}
return omit(object, omitKeys as Array<keyof typeof object>)
},
})
benchmark.run()