js-async-locks
staging:
master:
Asynchronous lock utilities.
JavaScript exposes the ability to create interleaved execution of asynchronous
operations. When this is done with shared state between asynchronous
overlapping functions that perform partial state transitions, this can lead to
race conditions or data corruption and clobbering, or just invalid pre-condition
or post-condition behaviour.
This library provides multiple synchronization constructs that allow one to
precisely control concurrent operations. These constructs are intended for
pessimistic concurrency control. If you can prefer to use optimistic concurrency
control mechanisms. But that is outside the scope of this library. In many cases
you cannot use optimistic methods, and thus you need this library.
Installation
npm install --save @matrixai/async-locks
Development
Run nix-shell
, and once you're inside, you can use:
npm install
npm run build
npm run tsx
npm run test
npm run lint
npm run lintfix
Docs Generation
npm run docs
See the docs at: https://matrixai.github.io/js-async-locks/
Publishing
Publishing is handled automatically by the staging pipeline.
Prerelease:
npm version prepatch --preid alpha
git push --follow-tags
Release:
npm version patch
git push --follow-tags
Manually:
npm version patch
npm run build
npm publish --access public
git push
git push --tags