project-client/src/shared/utils/once.ts
2023-04-09 22:55:12 +02:00

14 lines
416 B
TypeScript

/*
* SPDX-License-Identifier: GPL-3.0
* Vencord Desktop, a desktop app aiming to give you a snappier Discord Experience
* Copyright (c) 2023 Vendicated and Vencord contributors
*/
export function once<T extends Function>(fn: T): T {
let called = false;
return function (this: any, ...args: any[]) {
if (called) return;
called = true;
return fn.apply(this, args);
} as any;
}