orpc-contract-first
540
总安装量
538
周安装量
#531
全站排名
安装命令
npx skills add https://github.com/langgenius/dify --skill orpc-contract-first
Agent 安装分布
claude-code
398
gemini-cli
311
cursor
309
antigravity
302
opencode
286
codex
239
Skill 文档
oRPC Contract-First Development
Project Structure
web/contract/
âââ base.ts # Base contract (inputStructure: 'detailed')
âââ router.ts # Router composition & type exports
âââ marketplace.ts # Marketplace contracts
âââ console/ # Console contracts by domain
âââ system.ts
âââ billing.ts
Workflow
-
Create contract in
web/contract/console/{domain}.ts- Import
basefrom../baseandtypefrom@orpc/contract - Define route with
path,method,input,output
- Import
-
Register in router at
web/contract/router.ts- Import directly from domain file (no barrel files)
- Nest by API prefix:
billing: { invoices, bindPartnerStack }
-
Create hooks in
web/service/use-{domain}.ts- Use
consoleQuery.{group}.{contract}.queryKey()for query keys - Use
consoleClient.{group}.{contract}()for API calls
- Use
Key Rules
- Input structure: Always use
{ params, query?, body? }format - Path params: Use
{paramName}in path, match inparamsobject - Router nesting: Group by API prefix (e.g.,
/billing/*âbilling: {}) - No barrel files: Import directly from specific files
- Types: Import from
@/types/, usetype<T>()helper
Type Export
export type ConsoleInputs = InferContractRouterInputs<typeof consoleRouterContract>