links — for Claude Code antes-da-tela, community, for Claude Code, ide skills, maxURLLength, import, createTRPCClient, httpBatchLink, loggerLink, AppRouter

v1.0.0

이 스킬 정보

적합한 상황: Ideal for AI agents that need import { createtrpcclient, httpbatchlink, loggerlink } from '@trpc/client';. 현지화된 요약: Core Patterns httpBatchLink -- Batch Multiple Calls into One Request Concurrent calls are batched into a single HTTP request. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

기능

import { createTRPCClient, httpBatchLink, loggerLink } from '@trpc/client';
import type { AppRouter } from './server';
const client = createTRPCClient<AppRouter ({
url: 'http://localhost:3000/trpc',
httpBatchLink -- Batch Multiple Calls into One Request

# Core Topics

PlazaCC PlazaCC
[0]
[0]
Updated: 4/15/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 8/11

This page remains useful for operators, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution
Review Score
8/11
Quality Score
46
Canonical Locale
en
Detected Body Locale
en

적합한 상황: Ideal for AI agents that need import { createtrpcclient, httpbatchlink, loggerlink } from '@trpc/client';. 현지화된 요약: Core Patterns httpBatchLink -- Batch Multiple Calls into One Request Concurrent calls are batched into a single HTTP request. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

이 스킬을 사용하는 이유

추천 설명: links helps agents import { createtrpcclient, httpbatchlink, loggerlink } from '@trpc/client';. Core Patterns httpBatchLink -- Batch Multiple Calls into One Request Concurrent calls are batched into a single

최적의 용도

적합한 상황: Ideal for AI agents that need import { createtrpcclient, httpbatchlink, loggerlink } from '@trpc/client';.

실행 가능한 사용 사례 for links

사용 사례: Applying import { createTRPCClient, httpBatchLink, loggerLink } from '@trpc/client';
사용 사례: Applying import type { AppRouter } from './server';
사용 사례: Applying const client = createTRPCClient<AppRouter ({

! 보안 및 제한 사항

  • 제한 사항: Requires repository-specific context from the skill documentation
  • 제한 사항: Works best when the underlying tools and dependencies are already configured

Why this page is reference-only

  • - Current locale does not satisfy the locale-governance contract.
  • - The underlying skill quality score is below the review floor.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is links?

적합한 상황: Ideal for AI agents that need import { createtrpcclient, httpbatchlink, loggerlink } from '@trpc/client';. 현지화된 요약: Core Patterns httpBatchLink -- Batch Multiple Calls into One Request Concurrent calls are batched into a single HTTP request. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

How do I install links?

Run the command: npx killer-skills add PlazaCC/antes-da-tela/links. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for links?

Key use cases include: 사용 사례: Applying import { createTRPCClient, httpBatchLink, loggerLink } from '@trpc/client';, 사용 사례: Applying import type { AppRouter } from './server';, 사용 사례: Applying const client = createTRPCClient<AppRouter ({.

Which IDEs are compatible with links?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for links?

제한 사항: Requires repository-specific context from the skill documentation. 제한 사항: Works best when the underlying tools and dependencies are already configured.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add PlazaCC/antes-da-tela/links. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use links immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

links

Core Patterns httpBatchLink -- Batch Multiple Calls into One Request Concurrent calls are batched into a single HTTP request. This AI agent skill supports

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

tRPC -- Links

Setup

ts
1import { createTRPCClient, httpBatchLink, loggerLink } from '@trpc/client'; 2import type { AppRouter } from './server'; 3 4const client = createTRPCClient<AppRouter>({ 5 links: [ 6 loggerLink(), 7 httpBatchLink({ 8 url: 'http://localhost:3000/trpc', 9 }), 10 ], 11});

The links array is a chain: non-terminating links (loggerLink, splitLink, retryLink) forward operations; the chain must end with a terminating link (httpBatchLink, httpLink, httpBatchStreamLink, wsLink, httpSubscriptionLink, unstable_localLink).

Core Patterns

ts
1import { createTRPCClient, httpBatchLink } from '@trpc/client'; 2import type { AppRouter } from './server'; 3 4const client = createTRPCClient<AppRouter>({ 5 links: [ 6 httpBatchLink({ 7 url: 'http://localhost:3000/trpc', 8 maxURLLength: 2083, 9 maxItems: 10, 10 }), 11 ], 12}); 13 14const [post1, post2, post3] = await Promise.all([ 15 client.post.byId.query(1), 16 client.post.byId.query(2), 17 client.post.byId.query(3), 18]);

Concurrent calls are batched into a single HTTP request. Set maxURLLength to prevent 414 errors from long URLs.

ts
1import { 2 createTRPCClient, 3 httpBatchLink, 4 httpSubscriptionLink, 5 splitLink, 6} from '@trpc/client'; 7import type { AppRouter } from './server'; 8 9const client = createTRPCClient<AppRouter>({ 10 links: [ 11 splitLink({ 12 condition: (op) => op.type === 'subscription', 13 true: httpSubscriptionLink({ 14 url: 'http://localhost:3000/trpc', 15 }), 16 false: httpBatchLink({ 17 url: 'http://localhost:3000/trpc', 18 }), 19 }), 20 ], 21});
ts
1import { 2 createTRPCClient, 3 httpBatchLink, 4 httpLink, 5 splitLink, 6} from '@trpc/client'; 7import type { AppRouter } from './server'; 8 9const client = createTRPCClient<AppRouter>({ 10 links: [ 11 splitLink({ 12 condition: (op) => Boolean(op.context.skipBatch), 13 true: httpLink({ url: 'http://localhost:3000/trpc' }), 14 false: httpBatchLink({ url: 'http://localhost:3000/trpc' }), 15 }), 16 ], 17}); 18 19const result = await client.post.byId.query(1, { 20 context: { skipBatch: true }, 21});
ts
1import { createTRPCClient, httpBatchStreamLink } from '@trpc/client'; 2import type { AppRouter } from './server'; 3 4const client = createTRPCClient<AppRouter>({ 5 links: [ 6 httpBatchStreamLink({ 7 url: 'http://localhost:3000/trpc', 8 }), 9 ], 10}); 11 12const iterable = await client.examples.iterable.query(); 13for await (const value of iterable) { 14 console.log(value); 15}
ts
1import { createTRPCClient, createWSClient, wsLink } from '@trpc/client'; 2import type { AppRouter } from './server'; 3 4const wsClient = createWSClient({ 5 url: 'ws://localhost:3000', 6}); 7 8const client = createTRPCClient<AppRouter>({ 9 links: [wsLink<AppRouter>({ client: wsClient })], 10});
ts
1import { TRPCLink } from '@trpc/client'; 2import { observable } from '@trpc/server/observable'; 3import type { AppRouter } from './server'; 4 5export const timingLink: TRPCLink<AppRouter> = () => { 6 return ({ next, op }) => { 7 return observable((observer) => { 8 const start = Date.now(); 9 const unsubscribe = next(op).subscribe({ 10 next(value) { 11 observer.next(value); 12 }, 13 error(err) { 14 console.error(`${op.path} failed in ${Date.now() - start}ms`); 15 observer.error(err); 16 }, 17 complete() { 18 console.log(`${op.path} completed in ${Date.now() - start}ms`); 19 observer.complete(); 20 }, 21 }); 22 return unsubscribe; 23 }); 24 }; 25};

Common Mistakes

Wrong:

ts
1const client = createTRPCClient<AppRouter>({ 2 links: [loggerLink()], 3});

Correct:

ts
1const client = createTRPCClient<AppRouter>({ 2 links: [loggerLink(), httpBatchLink({ url: 'http://localhost:3000/trpc' })], 3});

The link chain must end with a terminating link. Without one, tRPC throws "No more links to execute - did you forget to add an ending link?"

Source: packages/client/src/links/internals/createChain.ts

Wrong:

ts
1const client = createTRPCClient<AppRouter>({ 2 links: [httpBatchLink({ url: 'http://localhost:3000/trpc' })], 3}); 4await client.onMessage.subscribe({});

Correct:

ts
1const client = createTRPCClient<AppRouter>({ 2 links: [ 3 splitLink({ 4 condition: (op) => op.type === 'subscription', 5 true: httpSubscriptionLink({ url: 'http://localhost:3000/trpc' }), 6 false: httpBatchLink({ url: 'http://localhost:3000/trpc' }), 7 }), 8 ], 9});

httpLink and httpBatchLink throw on subscription operations. Subscriptions must use httpSubscriptionLink or wsLink, routed via splitLink.

Source: packages/client/src/links/httpLink.ts

httpBatchLink and httpBatchStreamLink headers callbacks receive { opList } (a NonEmptyArray<Operation>), not { op } like httpLink. Access per-operation context via opList[0]?.context:

ts
1httpBatchLink({ 2 url: 'http://localhost:3000/trpc', 3 headers({ opList }) { 4 return { authorization: opList[0]?.context.token }; 5 }, 6});

httpBatchLink headers callback receives { opList } (an array of operations)

Source: packages/client/src/links/httpBatchLink.ts

[MEDIUM] Default batch limits are Infinity

Wrong:

ts
1httpBatchLink({ url: 'http://localhost:3000/trpc' });

Correct:

ts
1httpBatchLink({ 2 url: 'http://localhost:3000/trpc', 3 maxURLLength: 2083, 4 // should be the same or lower than the server's maxBatchSize 5 maxItems: 10, 6});

Both maxURLLength and maxItems default to Infinity, which can cause 413/414 HTTP errors on servers or CDNs with URL length limits. When the server sets maxBatchSize, set maxItems to the same or lower value so the client auto-splits batches instead of triggering a 400 Bad Request.

Source: packages/client/src/links/httpBatchLink.ts

There is a known race condition where buffered chunks can be lost on normal stream completion. Long streaming responses (e.g., LLM output) may be truncated. If you experience truncated data, switch to httpBatchLink for those operations.

Source: https://github.com/trpc/trpc/issues/7209

References

See Also

  • client-setup -- create the tRPC client and configure links
  • superjson -- add transformer to links for Date/Map/Set support
  • subscriptions -- set up SSE or WebSocket real-time streams
  • non-json-content-types -- route FormData/binary through splitLink + httpLink
  • service-oriented-architecture -- build custom routing links for multi-service backends

관련 스킬

Looking for an alternative to links or another community skill for your workflow? Explore these related open-source skills.

모두 보기

openclaw-release-maintainer

Logo of openclaw
openclaw

Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

333.8k
0
인공지능

widget-generator

Logo of f
f

prompts.chat 피드 시스템을 위한 사용자 지정 가능한 위젯 플러그인을 생성합니다

149.6k
0
인공지능

flags

Logo of vercel
vercel

리액트 프레임워크

138.4k
0
브라우저

pr-review

Logo of pytorch
pytorch

파이썬에서 텐서와 동적 신경망 구현 및 강력한 GPU 가속 지원

98.6k
0
개발자