{"ast":null,"code":"\"use strict\";\n\nexports.__esModule = true;\nexports.getEventSourceWrapper = getEventSourceWrapper;\nvar eventCallbacks = [];\n\nfunction EventSourceWrapper(options) {\n  var source;\n  var lastActivity = new Date();\n  var listeners = [];\n\n  if (!options.timeout) {\n    options.timeout = 20 * 1000;\n  }\n\n  init();\n  var timer = setInterval(function () {\n    if (new Date() - lastActivity > options.timeout) {\n      handleDisconnect();\n    }\n  }, options.timeout / 2);\n\n  function init() {\n    source = new window.EventSource(options.path);\n    source.onopen = handleOnline;\n    source.onerror = handleDisconnect;\n    source.onmessage = handleMessage;\n  }\n\n  function handleOnline() {\n    if (options.log) console.log('[HMR] connected');\n    lastActivity = new Date();\n  }\n\n  function handleMessage(event) {\n    lastActivity = new Date();\n\n    for (var i = 0; i < listeners.length; i++) {\n      listeners[i](event);\n    }\n\n    eventCallbacks.forEach(function (cb) {\n      if (!cb.unfiltered && event.data.indexOf('action') === -1) return;\n      cb(event);\n    });\n  }\n\n  function handleDisconnect() {\n    clearInterval(timer);\n    source.close();\n    setTimeout(init, options.timeout);\n  }\n\n  return {\n    close: function close() {\n      clearInterval(timer);\n      source.close();\n    },\n    addMessageListener: function addMessageListener(fn) {\n      listeners.push(fn);\n    }\n  };\n}\n\n_c = EventSourceWrapper;\n\nfunction getEventSourceWrapper(options) {\n  if (!options.ondemand) {\n    return {\n      addMessageListener: function addMessageListener(cb) {\n        eventCallbacks.push(cb);\n      }\n    };\n  }\n\n  return EventSourceWrapper(options);\n}\n\nvar _c;\n\n$RefreshReg$(_c, \"EventSourceWrapper\");","map":{"version":3,"sources":["../../../../client/dev/error-overlay/eventsource.js"],"names":["eventCallbacks","lastActivity","listeners","options","init","timer","setInterval","handleDisconnect","source","window","console","i","cb","event","clearInterval","setTimeout","close","addMessageListener","EventSourceWrapper"],"mappings":";;;;AAAA,IAAMA,cAAc,GAApB,EAAA;;AAEA,SAAA,kBAAA,CAAA,OAAA,EAAqC;AACnC,MAAA,MAAA;AACA,MAAIC,YAAY,GAAG,IAAnB,IAAmB,EAAnB;AACA,MAAIC,SAAS,GAAb,EAAA;;AAEA,MAAI,CAACC,OAAO,CAAZ,OAAA,EAAsB;AACpBA,IAAAA,OAAO,CAAPA,OAAAA,GAAkB,KAAlBA,IAAAA;AAGFC;;AAAAA,EAAAA,IAAI;AACJ,MAAIC,KAAK,GAAGC,WAAW,CAAC,YAAY;AAClC,QAAI,IAAA,IAAA,KAAA,YAAA,GAA4BH,OAAO,CAAvC,OAAA,EAAiD;AAC/CI,MAAAA,gBAAgB;AAEnB;AAJsB,GAAA,EAIpBJ,OAAO,CAAPA,OAAAA,GAJH,CAAuB,CAAvB;;AAMA,WAAA,IAAA,GAAgB;AACdK,IAAAA,MAAM,GAAG,IAAIC,MAAM,CAAV,WAAA,CAAuBN,OAAO,CAAvCK,IAAS,CAATA;AACAA,IAAAA,MAAM,CAANA,MAAAA,GAAAA,YAAAA;AACAA,IAAAA,MAAM,CAANA,OAAAA,GAAAA,gBAAAA;AACAA,IAAAA,MAAM,CAANA,SAAAA,GAAAA,aAAAA;AAGF;;AAAA,WAAA,YAAA,GAAwB;AACtB,QAAIL,OAAO,CAAX,GAAA,EAAiBO,OAAO,CAAPA,GAAAA,CAAAA,iBAAAA;AACjBT,IAAAA,YAAY,GAAG,IAAfA,IAAe,EAAfA;AAGF;;AAAA,WAAA,aAAA,CAAA,KAAA,EAA8B;AAC5BA,IAAAA,YAAY,GAAG,IAAfA,IAAe,EAAfA;;AACA,SAAK,IAAIU,CAAC,GAAV,CAAA,EAAgBA,CAAC,GAAGT,SAAS,CAA7B,MAAA,EAAsCS,CAAtC,EAAA,EAA2C;AACzCT,MAAAA,SAAS,CAATA,CAAS,CAATA,CAAAA,KAAAA;AAGFF;;AAAAA,IAAAA,cAAc,CAAdA,OAAAA,CAAwBY,UAAAA,EAAD,EAAQ;AAC7B,UAAI,CAACA,EAAE,CAAH,UAAA,IAAkBC,KAAK,CAALA,IAAAA,CAAAA,OAAAA,CAAAA,QAAAA,MAAiC,CAAvD,CAAA,EAA2D;AAC3DD,MAAAA,EAAE,CAAFA,KAAE,CAAFA;AAFFZ,KAAAA;AAMF;;AAAA,WAAA,gBAAA,GAA4B;AAC1Bc,IAAAA,aAAa,CAAbA,KAAa,CAAbA;AACAN,IAAAA,MAAM,CAANA,KAAAA;AACAO,IAAAA,UAAU,CAAA,IAAA,EAAOZ,OAAO,CAAxBY,OAAU,CAAVA;AAGF;;AAAA,SAAO;AACLC,IAAAA,KAAK,EAAE,iBAAM;AACXF,MAAAA,aAAa,CAAbA,KAAa,CAAbA;AACAN,MAAAA,MAAM,CAANA,KAAAA;AAHG,KAAA;AAKLS,IAAAA,kBAAkB,EAAE,4BAAA,EAAA,EAAc;AAChCf,MAAAA,SAAS,CAATA,IAAAA,CAAAA,EAAAA;AANJ;AAAO,GAAP;AAWK;;KAzDP,kB;;AAyDO,SAAA,qBAAA,CAAA,OAAA,EAAwC;AAC7C,MAAI,CAACC,OAAO,CAAZ,QAAA,EAAuB;AACrB,WAAO;AACLc,MAAAA,kBAAkB,EAAGL,4BAAAA,EAAD,EAAQ;AAC1BZ,QAAAA,cAAc,CAAdA,IAAAA,CAAAA,EAAAA;AAFJ;AAAO,KAAP;AAMF;;AAAA,SAAOkB,kBAAkB,CAAzB,OAAyB,CAAzB;AACD","sourcesContent":["const eventCallbacks = []\n\nfunction EventSourceWrapper(options) {\n  var source\n  var lastActivity = new Date()\n  var listeners = []\n\n  if (!options.timeout) {\n    options.timeout = 20 * 1000\n  }\n\n  init()\n  var timer = setInterval(function () {\n    if (new Date() - lastActivity > options.timeout) {\n      handleDisconnect()\n    }\n  }, options.timeout / 2)\n\n  function init() {\n    source = new window.EventSource(options.path)\n    source.onopen = handleOnline\n    source.onerror = handleDisconnect\n    source.onmessage = handleMessage\n  }\n\n  function handleOnline() {\n    if (options.log) console.log('[HMR] connected')\n    lastActivity = new Date()\n  }\n\n  function handleMessage(event) {\n    lastActivity = new Date()\n    for (var i = 0; i < listeners.length; i++) {\n      listeners[i](event)\n    }\n\n    eventCallbacks.forEach((cb) => {\n      if (!cb.unfiltered && event.data.indexOf('action') === -1) return\n      cb(event)\n    })\n  }\n\n  function handleDisconnect() {\n    clearInterval(timer)\n    source.close()\n    setTimeout(init, options.timeout)\n  }\n\n  return {\n    close: () => {\n      clearInterval(timer)\n      source.close()\n    },\n    addMessageListener: function (fn) {\n      listeners.push(fn)\n    },\n  }\n}\n\nexport function getEventSourceWrapper(options) {\n  if (!options.ondemand) {\n    return {\n      addMessageListener: (cb) => {\n        eventCallbacks.push(cb)\n      },\n    }\n  }\n  return EventSourceWrapper(options)\n}\n"]},"metadata":{},"sourceType":"script"}