1.0.1 • Published 2 years ago

builderio-field-types v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

BuilderIO Field Types

Builder Type Extensions is a set of helpful extension definitions for writing powerful well structured TypeScript codebases. The current library contains support for input field extraction.

Component Input Type Helper

This package exports types that make inferring Builder's Component Input Types. The BuilderFields and GenerateItems are used together to infer the input array into a properly structured list of properties for your component.

Here's a sample input:

const inputs = [
  {
    name: "name",
    type: "string",
  },
  {
    name: "favouriteColours",
    type: "list",
    subFields: [
      {
        name: "name",
        type: "string",
        defaultValue: "",
      },
      {
        name: "hex",
        type: "color",
      },
    ],
  },
] as const;

type InputProps = BuilderFields<GenerateItems<typeof inputs>>;

Note The input must be cast as const or the inference will not work as expected.

The above structured input fields would translate into the following type:

type InputProps = {
  name: string;
  favouriteColours: {
    name: string;
    hex: string;
  }[];
};

In your framework of choice you should be able to cast input properties with the resulting type:

function MyComponent(props: InputProps) => {
  console.log(props.name);
  console.log(props.favouriteColors);
};

Change Log

1.0.0 - Initial release 1.0.1 - Fixed packaging module issues