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.
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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.