fortify-schema
Version:
A modern TypeScript validation library designed around familiar interface syntax and powerful conditional validation. Experience schema validation that feels natural to TypeScript developers while unlocking advanced runtime validation capabilities.
41 lines (35 loc) • 1.23 kB
text/typescript
// ====================================================================
// TEST CONSTANT VALIDATION
// ====================================================================
import { ErrorCode } from "../schema/mode/interfaces/errors/types/errors.type";
import { Interface, Make } from "../schema/mode/interfaces/Interface";
import { VALID_CONDITIONNAL_TYPES } from "../types/ValidatorTypes";
import { createEnum } from "../utils/arrayToEnum";
const UserSchema = Interface({
id: "uuid?",
email: "email",
name: "string(2,50)",
age: "number(18,120)?",
role: "admin|user|guest",
// Advanced conditional validation based on runtime properties
permissions: "when config.hasPermissions.$exists() *? string[] : =[]",
adminTools: "when role=admin *? boolean : =false",
});
// Validate with complete TypeScript inference
const result = UserSchema.safeParse({
name: "John",
age: 30,
email: "johnù@example.com",
id: "",
role: "admin",
permissions: [],
adminTools: true,
});
if (result.success) {
console.log("Valid user:", result.data?.age); // Fully typed!
} else {
result.errors.forEach((error) => {
console.error(error);
console.error(error.path);
});
}