function schemaObjectToIoTs()

in src/client/src/schema/validation/schema_to_io_ts.ts [88:97]


function schemaObjectToIoTs<Value>(schemaObject: SchemaObject<Value>): t.Type<Record<string, unknown>> {
  const objectEntries: Array<[string, SchemaValue<unknown>]> = Object.entries(schemaObject.properties);

  const requiredFields = objectEntries.filter(([key, { _meta }]) => _meta?.optional !== true);
  const optionalFields = objectEntries.filter(([key, { _meta }]) => _meta?.optional === true);

  return excess(
    t.intersection([t.interface(entriesToObjectIoTs(requiredFields)), t.partial(entriesToObjectIoTs(optionalFields))])
  );
}