const locks = require('locks'); const mutexes = {}; exports.lock = (name) => new Promise((resolve) => { if (!mutexes[name]) { mutexes[name] = locks.createMutex(); } mutexes[name].lock(() => { resolve(true); }); }); exports.unlock = (name) => { try { if (mutexes[name]) mutexes[name].unlock(); } catch (e) { // } };