Skip to content

TomerAberbach/keyalesce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keyalesce

Get the same key for the same sequence of values!

Features

  • Simple: a single function that takes an array and returns a key
  • Tiny: 580 bytes gzipped!
  • Performant: maintains a regularly pruned internal trie of the value sequences

When would I use this and how does it work?

Read my post!

Install

$ npm i keyalesce

Usage

import keyalesce from 'keyalesce'

const hangouts = new Set()

const createHangoutKey = (person1, person2) =>
  keyalesce([person1, person2].sort())
const hangOut = (person1, person2) =>
  hangouts.add(createHangoutKey(person1, person2))
const didTheyHangOut = (person1, person2) =>
  hangouts.has(createHangoutKey(person1, person2))

hangOut(`Tomer`, `Sam`)
hangOut(`Tomer`, `Amanda`)

console.log(didTheyHangOut(`Tomer`, `Sam`))
console.log(didTheyHangOut(`Sam`, `Tomer`))
//=> true
//=> true

console.log(didTheyHangOut(`Tomer`, `Amanda`))
console.log(didTheyHangOut(`Amanda`, `Tomer`))
//=> true
//=> true

console.log(didTheyHangOut(`Sam`, `Amanda`))
console.log(didTheyHangOut(`Amanda`, `Sam`))
//=> false
//=> false

Contributing

Stars are always welcome!

For bugs and feature requests, please create an issue.

For pull requests, please read the contributing guidelines.

License

Apache License 2.0

This is not an official Google product.