All files / layers / L1 entityResolver.ts

81.81% Statements 9/11
25% Branches 1/4
85.71% Functions 6/7
88.88% Lines 8/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64    125x                       610x 610x 5984x     5902x     1444x     110x     574x                                                                      
import { createEntityHooks } from './entityHooks'
import { contracts } from './contracts'
import type { EntityPath } from './contracts'
import type {
  EntityHooks,
  ListResult,
  DetailResult,
  MutationHandle,
  SubscriptionHandle,
  QueryParams,
  ListQueryOptions,
} from '../interfaces'
 
export const hooksByPath: Record<EntityPath, EntityHooks<any, any, any, any>> = {
  repositories: createEntityHooks(contracts.repositories),
 I 'bot-accounts': createEntityHooks(contracts['bot-accounts']),
  'llm-configs': createEntityHooks(contracts['llm-configs']),
  projects: createEntityHooks(contracts.projects),
  runs: createEntityHooks(contracts.runs),
  pipelines: createEntityHooks(contracts.pipelines),
}
 
export function resolveContract<P extends EntityPath>(
  path: P,
): (typeof contracts)[P] {
  return contracts[path]
}

export function resolveIdOf(
  path: EntityPath,
): ((row: Record<string, unknown>) => string) | null {
  const contract = contracts[path]
  if (!contract) return null
  return (row) => contract.idOf(row as never) as string
}
 
export function useEntityList(
  path: EntityPath,
  params: QueryParams = {},
  options?: ListQueryOptions,
): ListResult<any> {
  return hooksByPath[path].useEntityList(params, options)
}
 
export function useEntityDetail(
  path: EntityPath,
  id: string,
): DetailResult<any> {
  return hooksByPath[path].useEntityDetail(id)
}
 
export function useMutation(
  path: EntityPath,
): MutationHandle<any, any, any> {
  return hooksByPath[path].useMutation()
}
 
export function useSubscription(
  path: EntityPath,
  params: QueryParams = {},
): SubscriptionHandle {
  return hooksByPath[path].useSubscription(params)
}