Skip to content
Back to skills

Orpc Router To Contract

ASecurity

Convert a router into a contract, export it safely, and prevent internal exposure.

  • 8 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 12, 2026
businessnodegitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add ali-master/skills --skill orpc-router-to-contract --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orpc Router To Contract?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Orpc Router To Contract
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ali-master-orpc-router-to-contract/badge)](https://www.skillsdirectory.com/skills/ali-master-orpc-router-to-contract)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: oRPC Router to Contract
description: Convert a router into a contract, export it safely, and prevent internal exposure.
license: MIT
metadata:
  author: Ali Torki
  homepage: https://github.com/ali-master
  version: "1.0.0"
---

# Router to Contract

A normal router works as a contract router as long as it doesn't include a [lazy router](/docs/router#lazy-router).

## Unlazy the Router

```ts
import { unlazyRouter } from '@orpc/server'

const resolvedRouter = await unlazyRouter(router)
```

## Minify & Export the Contract Router for the Client

1. **Minify and Export to JSON:**

```ts
import fs from 'node:fs'
import { minifyContractRouter } from '@orpc/contract'

const minifiedRouter = minifyContractRouter(router)

fs.writeFileSync('./contract.json', JSON.stringify(minifiedRouter))
```

> `minifyContractRouter` preserves only metadata and routing info. All other data is stripped.

2. **Import the Contract JSON on the Client:**

```ts
import contract from './contract.json'

const link = new OpenAPILink(contract as typeof router, {
  url: 'http://localhost:3000/api',
})
```

> Cast `contract` to `typeof router` for type safety, since standard schema types cannot be serialized.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.