Bundle / foldkit-bundle

KeyedWrapper

interface · packages/bundle/src/link.ts:358

interface KeyedWrapper<
  Tag extends string,
  ChildMessage,
  Key extends string = string,
> {
  readonly tag: Tag
  readonly Schema: CallableTaggedStruct<Tag, KeyedFields<ChildMessage, Key>>
  readonly cases: {
    readonly [K in Tag]: KeyedFields<ChildMessage, Key>
  }
  readonly make: (
    key: Key,
    message: ChildMessage,
  ) => KeyedWrapped<Tag, ChildMessage, Key>
  readonly fromParentMessage: (
    message: AnyMessage,
  ) => Option.Option<readonly [key: Key, message: ChildMessage]>
}

Both directions between an item's Message and its keyed parent variant.

Members

KeyedWrapper.tag

property · packages/bundle/src/link.ts:359

readonly tag: Tag

KeyedWrapper.Schema

property · packages/bundle/src/link.ts:360

readonly Schema: CallableTaggedStruct<Tag, KeyedFields<ChildMessage, Key>>

KeyedWrapper.cases

property · packages/bundle/src/link.ts:361

readonly cases: {
  readonly [K in Tag]: KeyedFields<ChildMessage, Key>
}

KeyedWrapper.make

property · packages/bundle/src/link.ts:362

readonly make: (
  key: Key,
  message: ChildMessage,
) => KeyedWrapped<Tag, ChildMessage, Key>

KeyedWrapper.fromParentMessage

property · packages/bundle/src/link.ts:363

readonly fromParentMessage: (
  message: AnyMessage,
) => Option.Option<readonly [key: Key, message: ChildMessage]>