grantila / suretype

Typesafe JSON (Schema) validator
508 stars 9 forks source link

Access to ObjectValidator._properties #33

Open toiroakr opened 1 year ago

toiroakr commented 1 year ago

I want to create a type by modifying another type like below. But, I don't want to export typeAProps.

I want to create TypeB from TypaA._properties but _properties is private. Could you add access to _properties to ObjectValidator?

export const typeAProps = {
  id: v.string().required(),
  name: v.string().required(),
  ...
};
export const TypeA = annotate(
  { title: "TypeA" },
  v.object(typeAProps)
);

// another file
export const TypeB = annotate(
  { title: "TypeB" },
  v.object({
    ...typeAProps, // => ...TypaA._properties
    id: v.number().required(),
  })
);