refactor: move to inert handles

This commit is contained in:
jamesgeorge007
2024-05-06 18:42:00 +05:30
parent b239b6b4a6
commit 2f2273ee2c
12 changed files with 492 additions and 462 deletions

View File

@@ -1,12 +1,18 @@
import { Ref, WritableComputedRef } from "vue"
export type Handle<T, InvalidateReason = unknown> = {
get: () => HandleRef<T, InvalidateReason>
}
export type HandleRef<T, InvalidateReason = unknown> = Ref<
{ type: "ok"; data: T } | { type: "invalid"; reason: InvalidateReason }
HandleState<T, InvalidateReason>
>
export type HandleState<T, InvalidateReason> =
| { type: "ok"; data: T }
| { type: "invalid"; reason: InvalidateReason }
export type WritableHandleRef<
T,
InvalidateReason = unknown,
> = WritableComputedRef<
{ type: "ok"; data: T } | { type: "invalid"; reason: InvalidateReason }
>
> = WritableComputedRef<HandleState<T, InvalidateReason>>