Skip to content

createRegistry()

Creates a new rule registry. The registry stores all registered rules and is used when evaluating values.

Signature

ts
function createRegistry<TData = Record<string, unknown>>(): Registry<TData>

Parameters

None.

Returns

Registry<TData> — A new empty registry object.

Example

ts
import { createRegistry, addRules, requiredRule } from '@pliant/core';

// Create a registry
const registry = createRegistry();

// Add rules to it
addRules(registry, {
  required: requiredRule()
});

Type Parameters

ParameterDescription
TDataOptional type for the data property on the context. Defaults to Record<string, unknown>

Registry Structure

The registry is an opaque object. Use addRules() to register rules and evaluateRules() to validate:

ts
// ✅ Correct usage
const registry = createRegistry();
addRules(registry, { required: requiredRule() });

// ❌ Don't access internal properties
registry._rules; // Implementation detail, may change

Multiple Registries

You can create multiple isolated registries:

ts
// Form-level registry
const formRegistry = createRegistry();
addRules(formRegistry, {
  required: requiredRule(),
  email: emailRule()
});

// Global app registry with more rules
const globalRegistry = createRegistry();
addRules(globalRegistry, {
  required: requiredRule(),
  email: emailRule(),
  phone: regexRule({ pattern: /^\d{10}$/ }),
  ssn: regexRule({ pattern: /^\d{9}$/ })
});

See Also

Released under the MIT License.