superstruct icon indicating copy to clipboard operation
superstruct copied to clipboard

Feature Request: Add depth Option to partial for Nested Optional Attributes

Open yeoffrey opened this issue 7 months ago • 0 comments

Description

It would be beneficial to enhance the partial function in the superstruct library to support a depth option. This option would allow attributes to be made optional up to a specified level of nested objects.

Example

import { number, object, optional, partial, string } from 'superstruct'

const MyStruct = object({
  name: string(),
  address: object({
    street: string(),
    number: number(),
  }),
})

const PartialMyStruct = partial(MyStruct, { depth: 1 })

// The same as:
// const PartialMyStruct = optional(
//   object({
//     name: optional(string()),
//     address: optional(
//       object({
//         street: string(),
//         number: number(),
//       })
//     ),
//   })
// )

yeoffrey avatar Jul 22 '24 21:07 yeoffrey