function messageHandler()

in plugin-api/MetaflowPluginAPI.js [15:50]


function messageHandler(event) {
  if (event.data && event.data.type) {
    switch (event.data.type) {
      case 'ReadyToRender': {
        if (!initialised) {
          Metaflow.parameters = event.data.config;
          Metaflow.resource = event.data.resource;
          Metaflow.settings = event.data.settings;
          PluginInfo.manifest = event.data.config;
          PluginInfo.slot = event.data.config?.config?.slot;
          initialised = true;
          if (onReadyFn) {
            onReadyFn(Metaflow.parameters, Metaflow.resource, Metaflow.settings);
          }
        }
        return;
      }
      case 'DataUpdate': {
        for (const listener of DataListeners) {
          if (event.data.path && listener.paths.includes(event.data.path)) {
            listener.callback(event.data);
          }
        }
        return;
      }
      case 'EventUpdate': {
        for (const listener of EventListeners) {
          listener(event.data);
        }
        return;
      }
      default:
        return;
    }
  }
}