A tiny utility for working with anonymous ids
  on the server and in the browser.
Install with npm:
npm install --save anonymous-idOr with yarn:
yarn add anonymous-idimport anonymousId from 'anonymous-id'
anonymousId() // generate or pull id from cookie/localStorage
anonymousId('exampleId') // call the function with string or number to set as id, otherwise pass in optionsimport { get, set } from 'anonymous-id'
set({ key: 'my_anon_id' }) // ajs-C1E42A94-FCE2-4851-87DD-695F576C5368 -> cookie or localStorage
get({ key: 'my_anon_id' }) // cookie or localStorage -> ajs-C1E42A94-FCE2-4851-87DD-695F576C5368These are the base options that can be passed in to both get and set functions:
anonymousId({
  debug: true, // log operations to stdout
  preset: String, // prefix/generateId/stores to use
  cookie: String, // cookie string to use (browser default is document.cookie)
  localStorage: Object // Storage object to use (browser default is window.localStorage)
})For setting anonymous ids, you can specify an id field which will pass the options to setAnonymousId(). If you don't set the id option, then getAnonymousId() will be called with the options:
const id = await promptEmailFromUser()
anonymousId({ id })And for getting anonymous ids, you can pass control if the preset tries to persist data:
console.log(document.cookie) // 'a=true'
const { cookie } = anonymousId({ persist: false })
console.log(document.cookie) // 'a=true'
console.log(cookie) // 'a=true; ajs_anonymous_id=ajs-B31C9E91-D741-4146-913B-0E80199648D0'All contributions are super welcome! anonymous-id is MIT-licensed.
