Files
cinny/src/app/utils/disposable.ts
T

17 lines
560 B
TypeScript
Raw Normal View History

2024-07-08 16:57:10 +05:30
export type DisposeCallback<DisposeArgs extends unknown[] = [], DisposeReturn = void> = (
...args: DisposeArgs
) => DisposeReturn;
export type DisposableContext<
DisposableArgs extends unknown[] = [],
DisposeArgs extends unknown[] = [],
DisposeReturn = void
> = (...args: DisposableArgs) => DisposeCallback<DisposeArgs, DisposeReturn>;
2023-06-12 21:15:23 +10:00
2024-07-08 16:57:10 +05:30
export const disposable = <
DisposableArgs extends unknown[],
DisposeArgs extends unknown[] = [],
DisposeReturn = void
>(
context: DisposableContext<DisposableArgs, DisposeArgs, DisposeReturn>
2023-06-12 21:15:23 +10:00
) => context;