Introduction
Fast & Memory efficient
Pattern matching with type-safe exhaustiveness checks, inspired by ts-pattern:
| ops/s · B/op | stdlib | ts-pattern |
|---|---|---|
| Per call | 425M · 0 B | 6.1M · 1.7 KB |
| ops/s | stdlib | ts-pattern |
|---|---|---|
| Per call | 785M | 13M |
Array.map, 1000 items
| ops/s · B/op | stdlib | remeda | immer | mutative |
|---|---|---|---|---|
| Unchanged | 5.3M · 2 B | 254K · 8.2 KB | 2.5K · 148 KB | 3.9K · 66 KB |
| Changed | 1.2M · 8.2 KB | 245K · 8.2 KB | 2.4K · 158 KB | 4.1K · 75 KB |
| ops/s | stdlib | remeda | immer | mutative |
|---|---|---|---|---|
| Unchanged | 4.7M | 1.2M | 3.8K | 13K |
| Changed | 816K | 914K | 3.0K | 13K |
Object.setPath
| ops/s · B/op | stdlib | remeda | immer | mutative |
|---|---|---|---|---|
| Unchanged | 434M · 0 B | 1.8M · 1.0 KB | 1.5M · 2.8 KB | 2.6M · 2.7 KB |
| Changed | 33M · 200 B | 1.8M · 1.0 KB | 669K · 3.8 KB | 1.8M · 3.5 KB |
| ops/s | stdlib | remeda | immer | mutative |
|---|---|---|---|---|
| Unchanged | 691M | 3.6M | 1.8M | 2.2M |
| Changed | 30M | 3.7M | 225K | 1.8M |
Object.merge
| ops/s · B/op | stdlib | remeda |
|---|---|---|
| Unchanged | 328M · 0 B | 23M · 176 B |
| Changed | 65M · 72 B | 24M · 176 B |
| ops/s | stdlib | remeda |
|---|---|---|
| Unchanged | 929M | 19M |
| Changed | 80M | 18M |
Unchanged/Changed: Our functions return the original input when nothing changed:
const a = [1, 2, 3]
const b = Array.map(a, (i) => i)
a === b // true