added validator for rjsf, hook form via standard schema

This commit is contained in:
dswbx
2025-07-05 13:29:30 +02:00
parent cfbec5b6ea
commit 0d3bb3b7d6
34 changed files with 69 additions and 1369 deletions
+10 -8
View File
@@ -1,6 +1,6 @@
import { describe, expect, test } from "bun:test";
import { type TObject, type TString, Type } from "@sinclair/typebox";
import { Registry } from "core";
import { s } from "core/object/schema";
type Constructor<T> = new (...args: any[]) => T;
@@ -11,7 +11,7 @@ class What {
return null;
}
getType() {
return Type.Object({ type: Type.String() });
return s.object({ type: s.string() });
}
}
class What2 extends What {}
@@ -19,7 +19,7 @@ class NotAllowed {}
type Test1 = {
cls: new (...args: any[]) => What;
schema: TObject<{ type: TString }>;
schema: s.ObjectSchema<{ type: s.StringSchema }>;
enabled: boolean;
};
@@ -28,7 +28,7 @@ describe("Registry", () => {
const registry = new Registry<Test1>().set({
first: {
cls: What,
schema: Type.Object({ type: Type.String(), what: Type.String() }),
schema: s.object({ type: s.string(), what: s.string() }),
enabled: true,
},
} satisfies Record<string, Test1>);
@@ -37,7 +37,7 @@ describe("Registry", () => {
expect(item).toBeDefined();
expect(item?.cls).toBe(What);
const second = Type.Object({ type: Type.String(), what: Type.String() });
const second = s.object({ type: s.string(), what: s.string() });
registry.add("second", {
cls: What2,
schema: second,
@@ -46,7 +46,7 @@ describe("Registry", () => {
// @ts-ignore
expect(registry.get("second").schema).toEqual(second);
const third = Type.Object({ type: Type.String({ default: "1" }), what22: Type.String() });
const third = s.object({ type: s.string({ default: "1" }), what22: s.string() });
registry.add("third", {
// @ts-expect-error
cls: NotAllowed,
@@ -56,7 +56,7 @@ describe("Registry", () => {
// @ts-ignore
expect(registry.get("third").schema).toEqual(third);
const fourth = Type.Object({ type: Type.Number(), what22: Type.String() });
const fourth = s.object({ type: s.number(), what22: s.string() });
registry.add("fourth", {
cls: What,
// @ts-expect-error
@@ -81,6 +81,8 @@ describe("Registry", () => {
registry.register("what2", What2);
expect(registry.get("what2")).toBeDefined();
expect(registry.get("what2").cls).toBe(What2);
expect(registry.get("what2").schema).toEqual(What2.prototype.getType());
expect(JSON.stringify(registry.get("what2").schema)).toEqual(
JSON.stringify(What2.prototype.getType()),
);
});
});
@@ -1,6 +1,5 @@
import { describe, expect, test } from "bun:test";
import { SchemaObject } from "../../../src/core";
import { Type } from "@sinclair/typebox";
import { s } from "core/object/schema";
describe("SchemaObject", async () => {