orca/src/shared/folder-workspace-path-statu...

36 lines
1.0 KiB
TypeScript

export type FolderWorkspacePathStatusReason =
| 'missing'
| 'not-directory'
| 'unavailable'
| 'ambiguous-connection'
export const FOLDER_WORKSPACE_PATH_STATUS_TTL_MS = 10_000
export type FolderWorkspacePathStatusRequest =
| { scope: 'folder-workspace'; folderWorkspaceId: string }
| { scope: 'project-group'; projectGroupId: string }
| { scope: 'path'; path: string; connectionId?: string | null }
export type FolderWorkspacePathStatus = {
path: string
exists: boolean
reason?: FolderWorkspacePathStatusReason
}
export function isConfirmedStaleFolderPathStatus(
status: FolderWorkspacePathStatus | null | undefined
): boolean {
return (
status?.exists === false && (status.reason === 'missing' || status.reason === 'not-directory')
)
}
export function blocksFolderWorkspaceActivation(
status: FolderWorkspacePathStatus | null | undefined
): boolean {
return (
isConfirmedStaleFolderPathStatus(status) ||
(status?.exists === false && status.reason === 'ambiguous-connection')
)
}