بنقرة واحدة
regle
// Core skills for using Regle form validation in Vue.js. Provides setup, validation rules, and usage patterns.
// Core skills for using Regle form validation in Vue.js. Provides setup, validation rules, and usage patterns.
Measure and compare TypeScript memory usage for @regle/core and test typechecks. Use when checking TS server pressure, type-level perf regressions, or before/after heavy generic typing changes.
Vite+ unified toolchain (vp CLI) usage for this project, wrapping Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Use when running install/build/test/check/format/lint, working with the `vp` CLI, or validating changes in this repo.
Turborepo monorepo build system guidance. Triggers on: turbo.json, task pipelines, dependsOn, caching, remote cache, the "turbo" CLI, --filter, --affected, CI optimization, environment variables, internal packages, monorepo structure/best practices, and boundaries. Use when user: configures tasks/workflows/pipelines, creates packages, sets up monorepo, shares code between apps, runs changed/affected packages, debugs cache, or has apps/packages directories.
VitePress static site generator powered by Vite and Vue. Use when building documentation sites, configuring themes, or writing Markdown with Vue components.
Advanced patterns for Regle form validation, including arrays, async, server errors, global config, variants, scoped validation, and schema integration.
TypeScript support for type-safe Regle form validation, rules, and component props.
| name | regle |
| description | Core skills for using Regle form validation in Vue.js. Provides setup, validation rules, and usage patterns. |
Regle is a type-safe, model-based, headless form validation library for Vue 3. It provides full TypeScript inference, reactive validation, and works with any UI framework or design system.
Regle provides an MCP server that can be used to get documentation and autocomplete for Regle. If it's available, use it to get up-to-date information on the API.
{
"mcpServers": {
"regle": {
"command": "npx",
"args": ["@regle/mcp-server"]
}
}
}
## Installation
```sh
# Core + built-in rules
pnpm add @regle/core @regle/rules
# Optional: schema support (Zod, Valibot, ArkType)
pnpm add @regle/schemas
Requires Vue 3.3+ and TypeScript 5.1+.
import { useRegle } from '@regle/core';
import { required, email, minLength } from '@regle/rules';
const { r$ } = useRegle(
{ name: '', email: '' },
{
name: { required, minLength: minLength(3) },
email: { required, email },
}
);
<template>
<input v-model="r$.$value.name" placeholder="Name" />
<ul v-if="r$.$errors.name.length">
<li v-for="error of r$.$errors.name" :key="error">{{ error }}</li>
</ul>
<button @click="r$.$validate()">Submit</button>
</template>
reactive, ref, or single valuer$: returned reactive object with values, errors, dirty state, and validation methodsrequired to enforce a field| Topic | Description | Reference |
|---|---|---|
| useRegle | State definition, rules declaration, dynamic rules, r$ object | core-use-regle |
| Built-in Rules | All validation rules from @regle/rules | core-built-in-rules |
| Validation Properties | $invalid, $dirty, $error, $errors, $pending, $validate, $touch, $reset | core-validation-properties |
| Displaying Errors | Showing errors, custom messages, getErrors, flatErrors | core-displaying-errors |
| Modifiers | autoDirty, lazy, silent, rewardEarly, disabled, validationGroups, per-field modifiers | core-modifiers |
| Topic | Description | Reference |
|---|---|---|
| Custom Rules | Inline rules, createRule, reactive parameters, async rules, metadata | core-custom-rules |
| Rule Wrappers | withMessage, withParams, withAsync, withTooltip, chaining | core-rule-wrappers |
| Rule Operators | and, or, xor, not, applyIf, assignIf, pipe | core-rule-operators |