@parsrun/types
v0.2.12
Published
Core types and validation schemas for Pars framework
Downloads
204
Maintainers
Readme
@parsrun/types
Core types and validation schemas for Pars framework using ArkType.
Features
- Type-Safe: Full TypeScript support
- Runtime Validation: ArkType-based validation
- Reusable Schemas: Common validation patterns
- Inference: Automatic type inference from schemas
Installation
pnpm add @parsrun/typesQuick Start
import { type, createValidator } from '@parsrun/types';
// Define a schema
const userSchema = type({
id: 'string',
email: 'string.email',
name: 'string',
age: 'number >= 0',
});
// Infer TypeScript type
type User = typeof userSchema.infer;
// Validate data
const result = userSchema(data);
if (result.problems) {
console.error(result.problems);
} else {
console.log(result.data);
}API Overview
Common Types
import {
// Primitives
StringType,
NumberType,
BooleanType,
DateType,
// Common patterns
EmailType,
UUIDType,
URLType,
// Pars-specific
TenantId,
UserId,
SessionId,
} from '@parsrun/types';Validation Helpers
import { createValidator, validate } from '@parsrun/types';
// Create reusable validator
const validateUser = createValidator(userSchema);
// Validate with detailed errors
const { data, errors } = validate(userSchema, input);Schema Composition
import { type } from '@parsrun/types';
const addressSchema = type({
street: 'string',
city: 'string',
country: 'string',
});
const userWithAddressSchema = type({
...userSchema.def,
address: addressSchema,
});Optional & Nullable
const schema = type({
required: 'string',
optional: 'string?', // string | undefined
nullable: 'string | null', // string | null
});Built-in Schemas
| Schema | Description |
|--------|-------------|
| EmailSchema | Email validation |
| UUIDSchema | UUID v4 format |
| URLSchema | Valid URL |
| DateSchema | ISO date string |
| PaginationSchema | { page, limit } |
| SortSchema | { field, order } |
Exports
import {
type,
createValidator,
validate,
// Built-in schemas
EmailSchema,
UUIDSchema,
PaginationSchema,
} from '@parsrun/types';License
MIT
