const FieldSchema: Schema.Schema<Field> = Schema.Struct({
type: Schema.Literal("field"),
name: Schema.String,
value: Schema.String,
}).annotations({ identifier: "Field" });
const CategorySchema: Schema.Schema<Category> = Schema.Struct({
type: Schema.Literal("category"),
name: Schema.String,
children: Schema.Array(
Schema.suspend(
(): Schema.Schema<Category | Field> =>
Schema.Union(CategorySchema, FieldSchema),
),
),
}).annotations({ identifier: "Category" });
JSONSchema.make(CategorySchema)
const FieldSchema: Schema.Schema<Field> = Schema.Struct({
type: Schema.Literal("field"),
name: Schema.String,
value: Schema.String,
}).annotations({ identifier: "Field" });
const CategorySchema: Schema.Schema<Category> = Schema.Struct({
type: Schema.Literal("category"),
name: Schema.String,
children: Schema.Array(
Schema.suspend(
(): Schema.Schema<Category | Field> =>
Schema.Union(CategorySchema, FieldSchema),
),
),
}).annotations({ identifier: "Category" });
JSONSchema.make(CategorySchema)