navigator.locks
TypeScript icon, indicating that this package has built-in type declarations

0.8.6 • Public • Published

web-locks polyfill

push workflow release workflow npm license

a Web Locks API polyfill, work when the browser does not support web lock API: navigator.lock, resolve the browser compatibility issue.

Installation

// with npm
npm install navigator.locks

// with yarn
yarn add navigator.locks

Usage

Just import It.

import "navigator.locks";

navigator.locks.request("my_resource", async (lock) => {
  // The lock has been acquired.
  await do_something();
  await do_something_else();
  // Now the lock will be released.
});
// if you use Typescript, could import these types to use
import type {
  LockManager,
  Lock,
  LockInfo,
  LockManagerSnapshot,
  LocksInfo,
} from "navigator.locks";

navigator.locks API usage follow MDN API Doc

Online demo

demo link

You could open two tabs of this API unsupported browser, operate the lock buttons to experience

Process

All API

  • navigator.locks.request

  • navigator.locks.request options:

    mode: exclusive | shared

    ifAvailable

    steal

    signal

  • navigator.locks.query

CI/CD

Unit test

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.8.6
    17,478
    • latest

Version History

Package Sidebar

Install

npm i navigator.locks

Weekly Downloads

14,662

Version

0.8.6

License

MIT

Unpacked Size

225 kB

Total Files

46

Last publish

Collaborators

  • aermin