UNPKG

typeorm

Version:

Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.

25 lines (23 loc) 744 B
export class QueryLock { constructor() { this.queue = []; } async acquire() { let release; const waitingPromise = new Promise((ok) => (release = ok)); // Get track of everyone we need to wait on.. const otherWaitingPromises = [...this.queue]; // Put ourselves onto the end of the queue this.queue.push(waitingPromise); if (otherWaitingPromises.length > 0) { await Promise.all(otherWaitingPromises); } return () => { release(); if (this.queue.includes(waitingPromise)) { this.queue.splice(this.queue.indexOf(waitingPromise), 1); } }; } } //# sourceMappingURL=QueryLock.js.map