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;
|