Mirror / foldkit-mirror

MirrorRoutingConfig

interface · packages/mirror/src/index.ts:498

interface MirrorRoutingConfig<
  AppModel,
  Message extends {
    readonly _tag: string
  },
  Tag extends Message['_tag'],
  Args extends ReadonlyArray<unknown>,
  InitReturn extends {
    readonly model: AppModel
  },
  UpdateReturn extends {
    readonly model: AppModel
  },
> {
  readonly mirrors: readonly [
    UrlMirror<AppModel, any, any>,
    ...UrlMirror<AppModel, any, any>[],
  ]
  readonly urlChanged: Tag
  readonly init: (...args: [...Args, Url]) => InitReturn
  readonly update: (model: AppModel, message: Message) => UpdateReturn
  readonly routing: {
    readonly onUrlRequest: (request: Navigation.UrlRequest) => Message
    readonly onUrlChange: (url: Url) => Extract<Message, UrlChangedMessage<Tag>>
  }
}

Mirror.routing's config: the application's own init, update and routing, and the URL mirrors to read.

Members

MirrorRoutingConfig.mirrors

property · packages/mirror/src/index.ts:506

readonly mirrors: readonly [
  UrlMirror<AppModel, any, any>,
  ...UrlMirror<AppModel, any, any>[],
]

MirrorRoutingConfig.urlChanged

property · packages/mirror/src/index.ts:508

readonly urlChanged: Tag

The tag of the Message routing.onUrlChange makes.

MirrorRoutingConfig.init

property · packages/mirror/src/index.ts:510

readonly init: (...args: [...Args, Url]) => InitReturn

(url) => …, or (flags, url) => … for an application with flags.

MirrorRoutingConfig.update

property · packages/mirror/src/index.ts:511

readonly update: (model: AppModel, message: Message) => UpdateReturn

MirrorRoutingConfig.routing

property · packages/mirror/src/index.ts:512

readonly routing: {
  readonly onUrlRequest: (request: Navigation.UrlRequest) => Message
  readonly onUrlChange: (url: Url) => Extract<Message, UrlChangedMessage<Tag>>
}