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.
47 lines (36 loc) โข 1.34 kB
text/typescript
/**
* Debug object constant parsing
*/
import { Interface } from "../../schema/mode/interfaces/Interface";
// Simple test to debug object parsing
const DebugSchema = Interface({
config: "any?",
// Simple object
simpleObj: 'when config.simple.$exists() *? any : ={"key":"value"}',
// Object with null
objWithNull: 'when config.null.$exists() *? any : ={"name":"test","value":null}',
// Complex object
complexObj: 'when config.complex.$exists() *? any : ={"theme":"dark","lang":"en","count":42}',
});
console.log("๐งช Testing object constant parsing...");
const result = DebugSchema.safeParse({
config: {}, // No properties exist, so all should use defaults
simpleObj: "wrong",
objWithNull: "wrong",
complexObj: "wrong",
});
if (result.success) {
console.log("โ
Success:", result.data);
} else {
console.log("โ Errors:", result.errors);
}
// Let's also test the parser directly
import { ConditionalParser } from "../../schema/mode/interfaces/conditional/parser/ConditionalParser";
console.log("\n๐ Direct parser test:");
try {
const parser = new ConditionalParser();
const ast = parser.parse('when config.test.$exists() *? any : ={"theme":"dark","lang":"en"}');
console.log("Parsed AST:", JSON.stringify(ast, null, 2));
} catch (error) {
console.log("Parser error:", error.message);
}