import type { BobbinContext, XrpcRequestInit } from './client'; import { jsonGet } from './_request'; import type * as ShTangledActorProfile from './lexicons/types/sh/tangled/actor/profile'; import type * as ShTangledRepo from './lexicons/types/sh/tangled/repo'; import type * as ShTangledRepoIssue from './lexicons/types/sh/tangled/repo/issue'; import type * as ShTangledRepoPull from './lexicons/types/sh/tangled/repo/pull'; export interface RecordView { uri: string; cid?: string; value: V; } export interface RecordList { items: RecordView[]; } export type RepoRecord = ShTangledRepo.Main; export type ProfileRecord = ShTangledActorProfile.Main; export type IssueRecord = ShTangledRepoIssue.Main; export type PullRecord = ShTangledRepoPull.Main; export const BULK_LIMIT = 50; export const getRepo = (ctx: BobbinContext, repo: string, init?: XrpcRequestInit) => jsonGet>(ctx, 'sh.tangled.repo.getRepo', { repo }, init); export const getRepoByRepoDid = (ctx: BobbinContext, repoDid: string, init?: XrpcRequestInit) => jsonGet>(ctx, 'sh.tangled.repo.getRepoByRepoDid', { repoDid }, init); export const getProfile = (ctx: BobbinContext, did: string, init?: XrpcRequestInit) => jsonGet>( ctx, 'sh.tangled.actor.getProfile', { actor: `at://${did}/sh.tangled.actor.profile/self` }, init ); export const getIssue = (ctx: BobbinContext, issue: string, init?: XrpcRequestInit) => jsonGet>(ctx, 'sh.tangled.repo.getIssue', { issue }, init); export const getPull = (ctx: BobbinContext, pull: string, init?: XrpcRequestInit) => jsonGet>(ctx, 'sh.tangled.repo.getPull', { pull }, init); export const getRepos = (ctx: BobbinContext, repos: readonly string[], init?: XrpcRequestInit) => jsonGet>(ctx, 'sh.tangled.repo.getRepos', { repos }, init); export const getProfiles = ( ctx: BobbinContext, actors: readonly string[], init?: XrpcRequestInit ) => jsonGet>(ctx, 'sh.tangled.actor.getProfiles', { actors }, init); export const getIssues = (ctx: BobbinContext, issues: readonly string[], init?: XrpcRequestInit) => jsonGet>(ctx, 'sh.tangled.repo.getIssues', { issues }, init); export const getPulls = (ctx: BobbinContext, pulls: readonly string[], init?: XrpcRequestInit) => jsonGet>(ctx, 'sh.tangled.repo.getPulls', { pulls }, init);