replayEvent()

in src/lib/api/event.replayer.ts [96:123]


  replayEvent(appData: PrebootAppData, prebootEvent: PrebootEvent) {
    appData = <PrebootAppData>(appData || {});
    prebootEvent = <PrebootEvent>(prebootEvent || {});

    const event = prebootEvent.event as Event;
    const serverNode = prebootEvent.node || {};
    const nodeKey = prebootEvent.nodeKey;
    const clientNode = this.findClientNode({
      root: appData.root,
      node: serverNode,
      nodeKey: nodeKey
    });

    // if client node can't be found, log a warning
    if (!clientNode) {
      console.warn(
        `Trying to dispatch event ${event.type} to node ${nodeKey}
        but could not find client node. Server node is: ${serverNode}`
      );
      return;
    }

    // now dispatch events and whatnot to the client node
    (clientNode as HTMLInputElement).checked = serverNode.checked;
    (clientNode as HTMLOptionElement).selected = serverNode.selected;
    (clientNode as HTMLOptionElement).value = serverNode.value;
    clientNode.dispatchEvent(event);
  }