fortify-schema
Version:
TypeScript interface-like schema validation system that's easier to use than Zod
43 lines (34 loc) • 1.04 kB
text/typescript
import { Interface } from "../schema/mode/interfaces/Interface";
console.log("🔍 DEBUG: When Extension");
console.log("========================\n");
// Simple test with clean syntax
const SimpleSchema = Interface({
role: "admin|user",
permissions: "when:role=admin:string[]:string[]?"
});
console.log("Testing simple when condition:");
const result1 = SimpleSchema.safeParse({
role: "admin",
permissions: ["read", "write"]
});
console.log("Result 1 (admin):", result1.success);
if (!result1.success) {
console.log("Errors:", result1.errors);
}
const result2 = SimpleSchema.safeParse({
role: "user",
permissions: ["read"]
});
console.log("Result 2 (user):", result2.success);
if (!result2.success) {
console.log("Errors:", result2.errors);
}
// Test without conditional field
const result3 = SimpleSchema.safeParse({
role: "user"
// No permissions field
});
console.log("Result 3 (no permissions):", result3.success);
if (!result3.success) {
console.log("Errors:", result3.errors);
}