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
+4 -6
View File
@@ -1,6 +1,6 @@
import { describe, expect, test } from "bun:test";
import { Flow, LogTask, SubFlowTask, RenderTask, Task } from "../../src/flows";
import { Type } from "@sinclair/typebox";
import { s } from "core/object/schema";
export class StringifyTask<Output extends string> extends Task<
typeof StringifyTask.schema,
@@ -8,11 +8,9 @@ export class StringifyTask<Output extends string> extends Task<
> {
type = "stringify";
static override schema = Type.Optional(
Type.Object({
input: Type.Optional(Type.String()),
}),
);
static override schema = s.object({
input: s.string().optional(),
});
async execute() {
return JSON.stringify(this.params.input) as Output;
+4 -4
View File
@@ -1,12 +1,12 @@
import { describe, expect, test } from "bun:test";
import { Type } from "@sinclair/typebox";
import { Task } from "../../src/flows";
import { dynamic } from "../../src/flows/tasks/Task";
import { s } from "core/object/schema";
describe.skip("Task", async () => {
test("resolveParams: template with parse", async () => {
const result = await Task.resolveParams(
Type.Object({ test: dynamic(Type.Number()) }),
s.object({ test: dynamic(s.number()) }),
{
test: "{{ some.path }}",
},
@@ -22,7 +22,7 @@ describe.skip("Task", async () => {
test("resolveParams: with string", async () => {
const result = await Task.resolveParams(
Type.Object({ test: Type.String() }),
s.object({ test: s.string() }),
{
test: "{{ some.path }}",
},
@@ -38,7 +38,7 @@ describe.skip("Task", async () => {
test("resolveParams: with object", async () => {
const result = await Task.resolveParams(
Type.Object({ test: dynamic(Type.Object({ key: Type.String(), value: Type.String() })) }),
s.object({ test: dynamic(s.object({ key: s.string(), value: s.string() })) }),
{
test: { key: "path", value: "{{ some.path }}" },
},
+5 -5
View File
@@ -2,7 +2,7 @@
import { describe, expect, test } from "bun:test";
import { isEqual } from "lodash-es";
import { _jsonp, withDisabledConsole } from "../../src/core/utils";
import { type Static, Type } from "@sinclair/typebox";
import { s } from "core/object/schema";
import { Condition, ExecutionEvent, FetchTask, Flow, LogTask, Task } from "../../src/flows";
/*beforeAll(disableConsoleLog);
@@ -11,19 +11,19 @@ afterAll(enableConsoleLog);*/
class ExecTask extends Task<typeof ExecTask.schema> {
type = "exec";
static override schema = Type.Object({
delay: Type.Number({ default: 10 }),
static override schema = s.object({
delay: s.number({ default: 10 }),
});
constructor(
name: string,
params: Static<typeof ExecTask.schema>,
params: s.Static<typeof ExecTask.schema>,
private func: () => Promise<any>,
) {
super(name, params);
}
override clone(name: string, params: Static<typeof ExecTask.schema>) {
override clone(name: string, params: s.Static<typeof ExecTask.schema>) {
return new ExecTask(name, params, this.func);
}