node-ejs-renderer/node_modules/thingies/es6/codeMutex.js

23 lines
635 B
JavaScript
Raw Normal View History

2024-06-09 13:55:01 -04:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.codeMutex = void 0;
const tslib_1 = require("tslib");
/**
* Executes only one instance of give code at a time. If other calls come in in
* parallel, they get resolved to the result of the ongoing execution.
*/
const codeMutex = () => {
let result;
return (code) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
if (result)
return result;
try {
return yield (result = code());
}
finally {
result = undefined;
}
});
};
exports.codeMutex = codeMutex;