hyperjump/json-schema
Form validator implementation based on @hyperjump/json-schema.
Installation
Section titled “Installation”npm i @sjsf-lab/hyperjump-validatorpnpm add @sjsf-lab/hyperjump-validatoryarn add @sjsf-lab/hyperjump-validatorbun add @sjsf-lab/hyperjump-validatordeno add @sjsf-lab/hyperjump-validatorRequired peer dependencies: @hyperjump/json-schema@1.17.0 @sjsf/form@3.5.0
Schema precompilation
Section titled “Schema precompilation”<script lang="ts">
import {
createFormValidatorFactory,
fromAst,
} from "@sjsf-lab/hyperjump-validator/precompile";
import { BasicForm, createForm, getValueSnapshot } from "@sjsf/form";
import { resolver } from "@sjsf/form/resolvers/compat";
import "@hyperjump/json-schema/formats-lite";
import "@hyperjump/json-schema/draft-07";
import * as defaults from "$lib/sjsf/defaults";
import { ast } from "./ast";
import { schema, fieldsValidationMode } from "./patched-schema";
const form = createForm({
...defaults,
schema,
validator: createFormValidatorFactory({
validatorRetriever: fromAst(ast),
}),
fieldsValidationMode,
resolver,
});
</script>
<BasicForm {form} novalidate />
<pre>{JSON.stringify(getValueSnapshot(form), null, 2)}</pre>
Run the following command for schema compilation:
node compile-schema-script.ts