lockmap

Creates a promise based map of locks that can be used as a semaphore

Usage no npm install needed!

<script type="module">
  import lockmap from 'https://cdn.skypack.dev/lockmap';
</script>

README

SYNOPSIS :lock: :globe_with_meridians:

NPM Package Build Status Coverage Status

js-standard-style

Creates a promise based map of locks that can be used as a semaphore

INSTALL

npm install lockmap

USAGE

const LockMap = require('lockmap')

const lockmap = new LockMap()
const id = 'test'

// set a lock for an id
const unlock = lockmap.lock(id)

setTimeout(() => {
  // do some async work
  console.log('here first!')
  unlock()
}, 300)

// wait until the lock resolves
await lockmap.get(id)
console.log('here now!')

API

constructor

index.js:5-7

Creates a new instance of LockMap

lock

index.js:15-25

Creates a lock on a given ID and returns a resolve function to unlock the lock

Parameters

  • id any

Returns Function the resolve function to call once it to unlock

get

index.js:32-34

gets the current lock if any for a given id. If there is a lock this will return a promise that resolves once the lock is unlocked

Parameters

  • id

Returns Promise

LICENSE

MPL-2.0