Skip to main content

ValidateRecursiveSchemaTemplate TypeAlias

Validation logic used by ValidateRecursiveSchema.

This API is reserved for internal system use and should not be imported directly. It may change at any time without notice.

For more information about our API support guarantees, see here.

Signature

export type ValidateRecursiveSchemaTemplate<T extends TreeNodeSchema> = TreeNodeSchema<string, NodeKind.Array | NodeKind.Map | NodeKind.Object, TreeNode & WithType<T["identifier"], T["kind"]>, {
[NodeKind.Object]: T["info"] extends RestrictiveStringRecord<ImplicitFieldSchema> ? InsertableObjectFromSchemaRecord<T["info"]> : unknown;
[NodeKind.Array]: T["info"] extends ImplicitAllowedTypes ? Iterable<InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>> : unknown;
[NodeKind.Map]: T["info"] extends ImplicitAllowedTypes ? Iterable<[string, InsertableTreeNodeFromImplicitAllowedTypes<T["info"]>]> : unknown;
[NodeKind.Leaf]: unknown;
}[T["kind"]], false, {
[NodeKind.Object]: RestrictiveStringRecord<ImplicitFieldSchema>;
[NodeKind.Array]: ImplicitAllowedTypes;
[NodeKind.Map]: ImplicitAllowedTypes;
[NodeKind.Leaf]: unknown;
}[T["kind"]]>;

Type Parameters

Parameter Constraint Description
T TreeNodeSchema