async-await-mutex-lock
Advanced tools
| import { Lock } from "./lock"; | ||
| export { Lock }; | ||
| //# sourceMappingURL=index.d.ts.map |
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,IAAI,EAAE,CAAC"} |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Lock = void 0; | ||
| const lock_1 = require("./lock"); | ||
| Object.defineProperty(exports, "Lock", { enumerable: true, get: function () { return lock_1.Lock; } }); | ||
| //# sourceMappingURL=index.js.map |
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAA8B;AAErB,qFAFA,WAAI,OAEA"} |
| export declare class Lock<T> { | ||
| private _isAcquired; | ||
| private _acquiredMap; | ||
| private waitingMap; | ||
| private waitingList; | ||
| acquire(key?: T): Promise<void>; | ||
| isAcquired(key?: T): boolean; | ||
| release(key?: T): void; | ||
| } | ||
| //# sourceMappingURL=lock.d.ts.map |
| {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAAA,qBAAa,IAAI,CAAC,CAAC;IACjB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,UAAU,CAA0D;IAC5E,OAAO,CAAC,WAAW,CAAuB;IAE1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B/B,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO;IAc5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI;CAoCvB"} |
+87
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.Lock = void 0; | ||
| class Lock { | ||
| constructor() { | ||
| this._isAcquired = false; | ||
| this._acquiredMap = new Map(); | ||
| this.waitingMap = new Map(); | ||
| this.waitingList = []; | ||
| } | ||
| acquire(key) { | ||
| if (key) { | ||
| if (!this._acquiredMap.has(key) || !this._acquiredMap.get(key)) { | ||
| this._acquiredMap.set(key, true); | ||
| return Promise.resolve(); | ||
| } | ||
| } | ||
| else if (!this._isAcquired) { | ||
| this._isAcquired = true; | ||
| return Promise.resolve(); | ||
| } | ||
| return new Promise((resolve, reject) => { | ||
| if (key) { | ||
| if (this.waitingMap.has(key)) { | ||
| let resolvers = this.waitingMap.get(key); | ||
| resolvers.push(resolve); | ||
| this.waitingMap.set(key, resolvers); | ||
| } | ||
| else { | ||
| this.waitingMap.set(key, [resolve]); | ||
| } | ||
| } | ||
| else { | ||
| this.waitingList.push(resolve); | ||
| } | ||
| }); | ||
| } | ||
| isAcquired(key) { | ||
| if (key) { | ||
| if (!this._acquiredMap.has(key)) { | ||
| return false; | ||
| } | ||
| else { | ||
| return this._acquiredMap.get(key); | ||
| } | ||
| } | ||
| else { | ||
| return this._isAcquired; | ||
| } | ||
| } | ||
| release(key) { | ||
| var _a; | ||
| if (key) { | ||
| if (!this._acquiredMap.has(key) || !this._acquiredMap.get(key)) { | ||
| throw new Error("Please acquire a lock for " + key + " before releasing!!"); | ||
| } | ||
| else { | ||
| if (((_a = this.waitingMap.get(key)) === null || _a === void 0 ? void 0 : _a.length) > 0) { | ||
| let resolve = this.waitingMap.get(key).shift(); | ||
| resolve(); | ||
| } | ||
| else { | ||
| if (this.waitingMap.has(key)) { | ||
| this.waitingMap.delete(key); | ||
| } | ||
| this._acquiredMap.set(key, false); | ||
| } | ||
| } | ||
| } | ||
| else { | ||
| if (!this._isAcquired) { | ||
| throw new Error("Please acquire a lock before releasing!!"); | ||
| } | ||
| else { | ||
| if (this.waitingList.length > 0) { | ||
| let resolve = this.waitingList.shift(); | ||
| resolve(); | ||
| } | ||
| else { | ||
| this._isAcquired = false; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| exports.Lock = Lock; | ||
| //# sourceMappingURL=lock.js.map |
| {"version":3,"file":"lock.js","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"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"} |
+3
-2
| { | ||
| "name": "async-await-mutex-lock", | ||
| "version": "v1.0.5", | ||
| "version": "v1.0.6", | ||
| "description": "Mutex locks for async functions with functionality to use keys for separate locks", | ||
| "main": "index.js", | ||
| "main": "dist/index", | ||
| "types": "dist/index", | ||
| "scripts": { | ||
@@ -7,0 +8,0 @@ "test": "jest --detectOpenHandles --verbose", |
+4
-4
@@ -13,3 +13,3 @@ # Async Await Mutex Lock | ||
| ```javascript | ||
| import Lock from "async-await-mutex-lock"; | ||
| import { Lock } from "async-await-mutex-lock"; | ||
@@ -35,3 +35,3 @@ let lock = new Lock(); | ||
| ```javascript | ||
| import Lock from "async-await-mutex-lock"; | ||
| import { Lock } from "async-await-mutex-lock"; | ||
@@ -67,3 +67,3 @@ let lock = new Lock<string>(); | ||
| ```javascript | ||
| import Lock from "async-await-mutex-lock"; | ||
| import { Lock } from "async-await-mutex-lock"; | ||
@@ -81,3 +81,3 @@ let lock = new Lock(); | ||
| ```javascript | ||
| import Lock from "async-await-mutex-lock"; | ||
| import { Lock } from "async-await-mutex-lock"; | ||
@@ -84,0 +84,0 @@ let lock = new Lock<string>(); |
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
Manifest confusion
Supply chain riskThis package has inconsistent metadata. This could be malicious or caused by an error when publishing the package.
Found 1 instance in 1 package
16678
61.62%16
100%274
59.3%