Skip to content
Conan edited this page Oct 4, 2022 · 13 revisions

sift-r 📥 docs

import { sift, byPattern } from 'sift-r'

sift() call signatures

pattern means either a predicate function, or something that the match-iz when() method supports, because sift uses match-iz internally.

  • When working with pojos, the pattern is applied to each key/value pair.

  • When working with arrays, the pattern is applied to each item in the array.

  • When working with Map's, the pattern is applied to the value only, not the key.

  1. sift({ key: [pattern, value], key: [pattern, value], ... })
  2. sift({ key: value }, { key: pattern })
  3. sift({ key: value }, pattern)
  4. sift({ key: value }, [pattern, pattern, ...])
  1. sift([[pattern, value], [pattern, value], ...])
  2. sift([value, value], [pattern, pattern])
  3. sift([value, value], pattern)
  4. sift([value, value], ...patterns)
  1. sift(Set | Map | iterable, ...patterns)

You can find more examples in the test suite.

Installation / Imports

$ pnpm i sift-r

Supports import/require for ESM/CJS:

// ESM
import { sift, byPattern } from 'sift-r'

// CJS
const { sift, byPattern } = require('sift-r')

Browser/UMD version here:

<script src="https://unpkg.com/sift-r/dist/browser/sift-r.browser.js"></script>
<script>
  const { sift, byPattern } = siftr
</script>