/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ // Debouncing promise evaluation export function debouncePromise(func: (...args: F) => T | Promise, timeout = 0): (...args: F) => Promise { let timer: NodeJS.Timeout; return (...params: F) => new Promise(resolve => { clearTimeout(timer); timer = setTimeout(() => resolve(func(...params)), timeout); }); }