nitropage
Version:
A free and open source, extensible visual page builder based on SolidStart.
14 lines (12 loc) • 341 B
text/typescript
declare global {
var onceFunctionResults: Record<string, any>;
}
export const onceWithGlobalThis = <T extends (...args: any) => any>(
name: string,
fn: T,
) => {
return (...args: Parameters<T>): ReturnType<T> => {
globalThis.onceFunctionResults ??= {};
return (globalThis.onceFunctionResults[name] ??= fn(...args));
};
};