import { createTRPCClient } from '@trpc/client';
import type { AppRouter } from './api';
const client = createTRPCClient<AppRouter>({
url: 'http://localhost:3000/trpc',
});
// Create an issue with Linear-style fields
const issue = await client.issues.create.mutate({
repoId: 'repo-uuid',
title: 'Implement user settings',
body: 'Add user preferences page',
priority: 'high',
dueDate: '2024-02-01',
estimate: 5,
});
// Create sub-issues
await client.issues.createSubIssue.mutate({
repoId: 'repo-uuid',
parentNumber: issue.number,
title: 'Design settings UI',
});
await client.issues.createSubIssue.mutate({
repoId: 'repo-uuid',
parentNumber: issue.number,
title: 'Implement backend API',
});
// Add a blocking relation
await client.issues.addRelation.mutate({
repoId: 'repo-uuid',
sourceNumber: 43,
targetNumber: 44,
type: 'blocks',
});
// Get Kanban board data
const kanban = await client.issues.listGroupedByStatus.query({
repoId: 'repo-uuid',
});
// Move issue on Kanban board
await client.issues.updateStatus.mutate({
repoId: 'repo-uuid',
number: issue.number,
status: 'in_progress',
});
// Get activity feed
const activity = await client.issues.getRepoActivity.query({
repoId: 'repo-uuid',
limit: 50,
});