Skip to content

Commit

Permalink
refactor: move to inert handles
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesgeorge007 committed May 7, 2024
1 parent 1efd7c2 commit cabe27e
Show file tree
Hide file tree
Showing 11 changed files with 496 additions and 463 deletions.
Expand Up @@ -607,7 +607,7 @@ watchEffect(async () => {
return
}
const searchResultsHandle = searchResultsHandleResult.right
const searchResultsHandle = searchResultsHandleResult.right.get()
if (searchResultsHandle.value.type === "invalid") {
filteredCollections.value = []
Expand Down Expand Up @@ -722,7 +722,7 @@ const addNewRootCollection = async (name: string) => {
}
// Workspace invalidated
if (result.right.value.type === "invalid") {
if (result.right.get().value.type === "invalid") {
// TODO: Error Handling
return
}
Expand Down Expand Up @@ -751,7 +751,7 @@ const onRemoveRootCollection = async () => {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand Down Expand Up @@ -791,7 +791,7 @@ const onAddRequest = async (requestName: string) => {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand All @@ -813,7 +813,7 @@ const onAddRequest = async (requestName: string) => {
return
}
const requestHandle = requestHandleResult.right
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand All @@ -830,7 +830,8 @@ const onAddRequest = async (requestName: string) => {
return
}
const cascadingAuthHeadersHandle = cascadingAuthHeadersHandleResult.right
const cascadingAuthHeadersHandle =
cascadingAuthHeadersHandleResult.right.get()
if (cascadingAuthHeadersHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -873,7 +874,7 @@ const onAddChildCollection = async (newChildCollectionName: string) => {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand All @@ -890,7 +891,7 @@ const onAddChildCollection = async (newChildCollectionName: string) => {
return
}
if (result.right.value.type === "invalid") {
if (result.right.get().value.type === "invalid") {
// COLLECTION_INVALIDATED
return
}
Expand Down Expand Up @@ -923,7 +924,7 @@ const onEditRootCollection = async (newCollectionName: string) => {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand Down Expand Up @@ -968,7 +969,7 @@ const onEditChildCollection = async (newChildCollectionName: string) => {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand Down Expand Up @@ -1009,7 +1010,7 @@ const onRemoveChildCollection = async () => {
return
}
const parentCollectionHandle = parentCollectionHandleResult.right
const parentCollectionHandle = parentCollectionHandleResult.right.get()
if (parentCollectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand Down Expand Up @@ -1060,7 +1061,7 @@ const onRemoveRequest = async () => {
return
}
const requestHandle = requestHandleResult.right
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1109,7 +1110,7 @@ const selectRequest = async (requestIndexPath: string) => {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED | INVALID_COLLECTION_HANDLE
Expand All @@ -1126,7 +1127,7 @@ const selectRequest = async (requestIndexPath: string) => {
return
}
const requestHandle = requestHandleResult.right
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand All @@ -1143,7 +1144,8 @@ const selectRequest = async (requestIndexPath: string) => {
return
}
const cascadingAuthHeadersHandle = cascadingAuthHeadersHandleResult.right
const cascadingAuthHeadersHandle =
cascadingAuthHeadersHandleResult.right.get()
if (cascadingAuthHeadersHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1190,7 +1192,7 @@ const duplicateRequest = async (requestIndexPath: string) => {
return
}
const requestHandle = requestHandleResult.right
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1238,7 +1240,7 @@ const onEditRequest = async (newRequestName: string) => {
return
}
const requestHandle = requestHandleResult.right
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1298,7 +1300,7 @@ const editCollectionProperties = async (collectionIndexPath: string) => {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand All @@ -1316,7 +1318,8 @@ const editCollectionProperties = async (collectionIndexPath: string) => {
return
}
const cascadingAuthHeadersHandle = cascadingAuthHeadersHandleResult.right
const cascadingAuthHeadersHandle =
cascadingAuthHeadersHandleResult.right.get()
if (cascadingAuthHeadersHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1363,7 +1366,7 @@ const setCollectionProperties = async (updatedCollectionProps: {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand All @@ -1390,7 +1393,8 @@ const setCollectionProperties = async (updatedCollectionProps: {
return
}
const cascadingAuthHeadersHandle = cascadingAuthHeadersHandleResult.right
const cascadingAuthHeadersHandle =
cascadingAuthHeadersHandleResult.right.get()
if (cascadingAuthHeadersHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1427,7 +1431,7 @@ const exportCollection = async (collectionIndexPath: string) => {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand Down Expand Up @@ -1526,7 +1530,7 @@ const dropToRoot = async ({ dataTransfer }: DragEvent) => {
return
}
const draggedCollectionHandle = draggedCollectionHandleResult.right
const draggedCollectionHandle = draggedCollectionHandleResult.right.get()
if (draggedCollectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand Down Expand Up @@ -1564,7 +1568,7 @@ const dropToRoot = async ({ dataTransfer }: DragEvent) => {
}
const destinationRootCollectionHandle =
destinationRootCollectionHandleResult.right
destinationRootCollectionHandleResult.right.get()
if (destinationRootCollectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand All @@ -1581,7 +1585,8 @@ const dropToRoot = async ({ dataTransfer }: DragEvent) => {
return
}
const cascadingAuthHeadersHandle = cascadingAuthHeadersHandleResult.right
const cascadingAuthHeadersHandle =
cascadingAuthHeadersHandleResult.right.get()
if (cascadingAuthHeadersHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1635,7 +1640,7 @@ const dropRequest = async (payload: {
return
}
const requestHandle = requestHandleResult.right
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand All @@ -1662,7 +1667,7 @@ const dropRequest = async (payload: {
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand All @@ -1679,7 +1684,8 @@ const dropRequest = async (payload: {
return
}
const cascadingAuthHeadersHandle = cascadingAuthHeadersHandleResult.right
const cascadingAuthHeadersHandle =
cascadingAuthHeadersHandleResult.right.get()
if (cascadingAuthHeadersHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1768,7 +1774,7 @@ const dropCollection = async (payload: {
return
}
const draggedCollectionHandle = draggedCollectionHandleResult.right
const draggedCollectionHandle = draggedCollectionHandleResult.right.get()
if (draggedCollectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand Down Expand Up @@ -1838,7 +1844,8 @@ const dropCollection = async (payload: {
return
}
const destinationCollectionHandle = destinationCollectionHandleResult.right
const destinationCollectionHandle =
destinationCollectionHandleResult.right.get()
if (destinationCollectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand All @@ -1855,7 +1862,8 @@ const dropCollection = async (payload: {
return
}
const cascadingAuthHeadersHandle = cascadingAuthHeadersHandleResult.right
const cascadingAuthHeadersHandle =
cascadingAuthHeadersHandleResult.right.get()
if (cascadingAuthHeadersHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1922,7 +1930,7 @@ const updateRequestOrder = async (
return
}
const requestHandle = requestHandleResult.right
const requestHandle = requestHandleResult.right.get()
if (requestHandle.value.type === "invalid") {
// COLLECTION_INVALIDATED
Expand Down Expand Up @@ -1982,7 +1990,7 @@ const updateCollectionOrder = async (
return
}
const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()
if (collectionHandle.value.type === "invalid") {
// WORKSPACE_INVALIDATED
Expand Down
Expand Up @@ -2,12 +2,12 @@ import {
ChildrenResult,
SmartTreeAdapter,
} from "@hoppscotch/ui/dist/src/helpers/treeAdapter"
import * as E from "fp-ts/Either"
import { Ref, ref, watchEffect } from "vue"
import { NewWorkspaceService } from "~/services/new-workspace"
import { HandleRef } from "~/services/new-workspace/handle"
import { RESTCollectionViewItem } from "~/services/new-workspace/view"
import { Workspace } from "~/services/new-workspace/workspace"
import * as E from "fp-ts/Either"

export class WorkspaceRESTCollectionTreeAdapter
implements SmartTreeAdapter<RESTCollectionViewItem>
Expand Down Expand Up @@ -50,7 +50,7 @@ export class WorkspaceRESTCollectionTreeAdapter
throw new Error(JSON.stringify(collectionHandleResult.left.error))
}

const collectionHandle = collectionHandleResult.right
const collectionHandle = collectionHandleResult.right.get()

const collectionChildrenResult =
await this.workspaceService.getRESTCollectionChildrenView(
Expand All @@ -62,7 +62,8 @@ export class WorkspaceRESTCollectionTreeAdapter
throw new Error(JSON.stringify(collectionChildrenResult.left.error))
}

const collectionChildrenViewHandle = collectionChildrenResult.right
const collectionChildrenViewHandle =
collectionChildrenResult.right.get()

watchEffect(() => {
if (collectionChildrenViewHandle.value.type !== "ok") return
Expand Down Expand Up @@ -100,7 +101,7 @@ export class WorkspaceRESTCollectionTreeAdapter
throw new Error(JSON.stringify(viewResult.left.error))
}

const viewHandle = viewResult.right
const viewHandle = viewResult.right.get()

watchEffect(() => {
if (viewHandle.value.type !== "ok") return
Expand Down
2 changes: 1 addition & 1 deletion packages/hoppscotch-common/src/pages/index.vue
Expand Up @@ -108,7 +108,7 @@ import {
from,
map,
} from "rxjs"
import { onBeforeUnmount, onMounted, ref, watch } from "vue"
import { onBeforeUnmount, onMounted, ref } from "vue"
import { useRoute } from "vue-router"
import { onLoggedIn } from "~/composables/auth"
import { useReadonlyStream } from "~/composables/stream"
Expand Down
14 changes: 10 additions & 4 deletions packages/hoppscotch-common/src/services/new-workspace/handle.ts
@@ -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>>

0 comments on commit cabe27e

Please sign in to comment.