import type { BobbinContext, XrpcRequestInit } from './client'; import { jsonGet } from './_request'; // count endpoints share { subject } params and { count, distinctAuthors } output. export type CountName = | 'sh.tangled.feed.countStars' | 'sh.tangled.feed.countStarsBy' | 'sh.tangled.feed.countComments' | 'sh.tangled.feed.countCommentsBy' | 'sh.tangled.feed.countReactions' | 'sh.tangled.feed.countReactionsBy' | 'sh.tangled.graph.countFollows' | 'sh.tangled.graph.countFollowsBy' | 'sh.tangled.graph.countVouches' | 'sh.tangled.graph.countVouchesBy' | 'sh.tangled.git.countRefUpdates' | 'sh.tangled.git.countRefUpdatesBy' | 'sh.tangled.knot.countKnots' | 'sh.tangled.knot.countMembers' | 'sh.tangled.knot.countMembersBy' | 'sh.tangled.label.countDefinitions' | 'sh.tangled.label.countOps' | 'sh.tangled.label.countOpsBy' | 'sh.tangled.pipeline.countPipelines' | 'sh.tangled.pipeline.countPipelinesBy' | 'sh.tangled.pipeline.countStatuses' | 'sh.tangled.pipeline.countStatusesBy' | 'sh.tangled.publicKey.countKeys' | 'sh.tangled.repo.countArtifacts' | 'sh.tangled.repo.countArtifactsBy' | 'sh.tangled.repo.countCollaborators' | 'sh.tangled.repo.countCollaboratorsBy' | 'sh.tangled.repo.countIssues' | 'sh.tangled.repo.countIssuesBy' | 'sh.tangled.repo.countPulls' | 'sh.tangled.repo.countPullsBy' | 'sh.tangled.repo.countRepos' | 'sh.tangled.repo.issue.countStates' | 'sh.tangled.repo.issue.countStatesBy' | 'sh.tangled.repo.pull.countStatuses' | 'sh.tangled.repo.pull.countStatusesBy' | 'sh.tangled.spindle.countSpindles' | 'sh.tangled.spindle.countMembers' | 'sh.tangled.spindle.countMembersBy' | 'sh.tangled.string.countStrings'; export interface CountResult { count: number; distinctAuthors: number; } export const count = ( ctx: BobbinContext, name: CountName, subject: string, init?: XrpcRequestInit ): Promise => jsonGet(ctx, name, { subject }, init);