mono/packages/core/dist/functional.js
2025-01-28 13:42:22 +01:00

31 lines
1023 B
JavaScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/**
* Given a function, returns a function that is only calling that function once.
*/
export function createSingleCallFunction(fn, fnDidRunCallback) {
const _this = this;
let didCall = false;
let result;
return function () {
if (didCall) {
return result;
}
didCall = true;
if (fnDidRunCallback) {
try {
result = fn.apply(_this, arguments);
}
finally {
fnDidRunCallback();
}
}
else {
result = fn.apply(_this, arguments);
}
return result;
};
}
//# sourceMappingURL=functional.js.map