// 保存端口引用
let port

/**
 * 控制处理各种消息
 * @type {Map <string, boolean>}
 */
const handle = new Map()

handle.set('layout', false)
/**
 * 接收来自主页面的初始化消息
 * @param e {MessageEvent}
 */
self.onmessage = function initHandler(e) {
  const { ports = [], data } = e
  // console.log(`Worker收到消息:`, data)
  // 只处理初始化消息
  if (data !== 'init-worker' || ports.length === 0) {
    return
  }

  // console.log(`Worker初始化，接收到端口:`, ports[0])
  self.port = ports[0]

  self.port.onmessage = messageHandler

  // 初始化完成后，可以移除主消息监听器，改为只监听端口消息
  self.onmessage = null
}

/**
 * 父节点事件配置
 * @param event {MessageEvent}
 */
function messageHandler(event) {
  // console.log('has been received event',event)

  if (handle.has(event.data.type)) {
    self.port.postMessage(handle.get(event.data.type))
  }
}
