oRPC Request Validation Plugin
A plugin that blocks invalid requests before they reach your server.
Файлы2
Открыть в GitHubSKILL.mdskills/orpc-request-validation/SKILL.md
GitHubRequest Validation Plugin
Ensures only valid requests are sent to your server. Especially useful for applications that depend on server-side validation.
Best suited for Contract-First Development. Minified Contract is not supported.
Setup
import { RPCLink } from '@orpc/client/fetch'
import { RequestValidationPlugin } from '@orpc/contract/plugins'
const link = new RPCLink({
url: 'http://localhost:3000/rpc',
plugins: [
new RequestValidationPlugin(contract),
],
})
const client: ContractRouterClient<typeof contract> = createORPCClient(link)
The
linkcan be any supported oRPC link.
Form Validation
Remove heavy form validation libraries and rely on oRPC's validation errors:
import { getIssueMessage, parseFormData } from '@orpc/openapi-client/helpers'
export function ContactForm() {
const [error, setError] = useState()
const handleSubmit = async (form: FormData) => {
try {
const output = await client.someProcedure(parseFormData(form))
console.log(output)
} catch (error) {
setError(error)
}
}
return (
<form action={handleSubmit}>
<input name="user[name]" type="text" />
<span>{getIssueMessage(error, 'user[name]')}</span>
<input name="user[emails][]" type="email" />
<span>{getIssueMessage(error, 'user[emails][]')}</span>
<button type="submit">Submit</button>
</form>
)
}