Files
hoppscotch/packages/hoppscotch-common/src/services/new-workspace/handle.ts
2024-05-22 20:58:28 +05:30

19 lines
497 B
TypeScript

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