Bundle / foldkit-bundle

BundleShape

interface · packages/bundle/src/bundle.ts:89

interface Bundle<
  Name extends string,
  Args,
  Model,
  Message extends AnyMessage,
  OutMessage,
  R,
  S,
  ViewInputs,
  Resources extends ResourceEntries<Model, Message>,
  Helpers extends Readonly<
    Record<string, Helper<Model, Message, OutMessage, R>>
  >,
>
  extends
    BundleSpec<
      Name,
      Args,
      Model,
      Message,
      OutMessage,
      R,
      S,
      ViewInputs,
      Resources,
      Helpers
    >,
    Pipeable.Pipeable {
  readonly [BundleTypeId]: typeof BundleTypeId
  readonly with: (
    args: Args,
  ) => Bundle<
    Name,
    void,
    Model,
    Message,
    OutMessage,
    R,
    S,
    ViewInputs,
    Resources,
    Helpers
  >
  readonly at: <
    Parent,
    LinkMessage,
    Field extends string,
    OutStepMessage = never,
    R2 = never,
  >(
    link: Link<Parent, LinkMessage, Model, Message, Field>,
    ...config: PlaceConfigParam<
      Args,
      Parent,
      LinkMessage,
      Message,
      OutMessage,
      OutStepMessage,
      R2,
      SeedFor<Parent, Field>
    >
  ) => Placed<
    Name,
    Parent,
    LinkMessage | OutStepMessage,
    Model,
    Message,
    R | R2,
    S,
    ViewInputs,
    Resources,
    Helpers,
    Field,
    TagOf<LinkMessage>
  >
  readonly each: [keyof Resources] extends [never]
    ? <
        Parent,
        LinkMessage,
        Key extends string,
        Field extends string,
        OutStepMessage = never,
        R2 = never,
      >(
        link: CollectionLink<Parent, LinkMessage, Model, Message, Key, Field>,
        ...config: EachConfigParam<
          Args,
          Parent,
          LinkMessage,
          Message,
          OutMessage,
          OutStepMessage,
          R2,
          Key,
          SeedFor<Parent, Field>
        >
      ) => PlacedCollection<
        Name,
        Parent,
        LinkMessage | OutStepMessage,
        Model,
        Message,
        R | R2,
        S,
        ViewInputs,
        Helpers,
        Field,
        Key,
        TagOf<LinkMessage>
      >
    : Invalid<'Bundle.each does not support Managed Resources yet: the runtime provides a resource by one tag, so items would share it'>
}

Members

BundleShape.[BundleTypeId]

property · packages/bundle/src/bundle.ts:104

readonly [BundleTypeId]: typeof BundleTypeId

BundleShape.with

property · packages/bundle/src/bundle.ts:109

readonly with: (
  args: Args,
) => Bundle<
  Name,
  void,
  Model,
  Message,
  OutMessage,
  R,
  S,
  ViewInputs,
  Resources,
  Helpers
>

A preset: the same bundle with its args bound, so placements need no args. The args are checked against the args Schema when there is one.

BundleShape.at

property · packages/bundle/src/bundle.ts:113

readonly at: <
  Parent,
  LinkMessage,
  Field extends string,
  OutStepMessage = never,
  R2 = never,
>(
  link: Link<Parent, LinkMessage, Model, Message, Field>,
  ...config: PlaceConfigParam<
    Args,
    Parent,
    LinkMessage,
    Message,
    OutMessage,
    OutStepMessage,
    R2,
    SeedFor<Parent, Field>
  >
) => Placed<
  Name,
  Parent,
  LinkMessage | OutStepMessage,
  Model,
  Message,
  R | R2,
  S,
  ViewInputs,
  Resources,
  Helpers,
  Field,
  TagOf<LinkMessage>
>

Places the bundle where link points.

BundleShape.each

property · packages/bundle/src/bundle.ts:140

readonly each: [keyof Resources] extends [never]
  ? <
      Parent,
      LinkMessage,
      Key extends string,
      Field extends string,
      OutStepMessage = never,
      R2 = never,
    >(
      link: CollectionLink<Parent, LinkMessage, Model, Message, Key, Field>,
      ...config: EachConfigParam<
        Args,
        Parent,
        LinkMessage,
        Message,
        OutMessage,
        OutStepMessage,
        R2,
        Key,
        SeedFor<Parent, Field>
      >
    ) => PlacedCollection<
      Name,
      Parent,
      LinkMessage | OutStepMessage,
      Model,
      Message,
      R | R2,
      S,
      ViewInputs,
      Helpers,
      Field,
      Key,
      TagOf<LinkMessage>
    >
  : Invalid<'Bundle.each does not support Managed Resources yet: the runtime provides a resource by one tag, so items would share it'>

Places the bundle once per key of the collection link points at.