{"code":"import * as tslib_1 from \"tslib\";\r\nimport { Event, StitchEvent, StitchClientError, StitchClientErrorCode } from \"mongodb-stitch-core-sdk\";\r\nimport BaseEventStream from \"./BaseEventStream\";\r\nvar EventSourceEventStream = (function (_super) {\r\n    tslib_1.__extends(EventSourceEventStream, _super);\r\n    function EventSourceEventStream(evtSrc, onOpen, onOpenError, reconnecter) {\r\n        var _this = _super.call(this, reconnecter) || this;\r\n        _this.evtSrc = evtSrc;\r\n        _this.onOpenError = onOpenError;\r\n        _this.openedOnce = false;\r\n        _this.evtSrc.onopen = function (e) {\r\n            onOpen(_this);\r\n            _this.openedOnce = true;\r\n        };\r\n        _this.reset();\r\n        return _this;\r\n    }\r\n    EventSourceEventStream.prototype.open = function () {\r\n        if (this.closed) {\r\n            throw new StitchClientError(StitchClientErrorCode.StreamClosed);\r\n        }\r\n    };\r\n    EventSourceEventStream.prototype.reset = function () {\r\n        var _this = this;\r\n        this.evtSrc.onmessage = function (e) {\r\n            _this.events.push(new Event(Event.MESSAGE_EVENT, e.data));\r\n            _this.poll();\r\n        };\r\n        this.evtSrc.onerror = function (e) {\r\n            if (e instanceof MessageEvent) {\r\n                _this.lastErr = e.data;\r\n                _this.events.push(new Event(StitchEvent.ERROR_EVENT_NAME, _this.lastErr));\r\n                _this.close();\r\n                _this.poll();\r\n                return;\r\n            }\r\n            if (!_this.openedOnce) {\r\n                _this.close();\r\n                _this.onOpenError(new Error(\"event source failed to open and will not reconnect; check network log for more details\"));\r\n                return;\r\n            }\r\n            _this.evtSrc.close();\r\n            _this.reconnect();\r\n        };\r\n    };\r\n    EventSourceEventStream.prototype.onReconnect = function (next) {\r\n        this.evtSrc = next.evtSrc;\r\n        this.reset();\r\n        this.events = next.events.concat(this.events);\r\n    };\r\n    EventSourceEventStream.prototype.afterClose = function () {\r\n        this.evtSrc.close();\r\n    };\r\n    return EventSourceEventStream;\r\n}(BaseEventStream));\r\nexport default EventSourceEventStream;\r\n//# sourceMappingURL=EventSourceEventStream.js.map","map":"{\"version\":3,\"file\":\"EventSourceEventStream.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../../../src/core/internal/net/EventSourceEventStream.ts\"],\"names\":[],\"mappings\":\";AAgBA,OAAO,EACL,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAY/C;IAAoD,kDAAuC;IAMzF,gCACE,MAAmB,EACnB,MAAgD,EAChD,WAAmC,EACnC,WAAmD;QAJrD,YAME,kBAAM,WAAW,CAAC,SAUnB;QATC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,KAAI,CAAC,MAAM,CAAC,MAAM,GAAG,UAAA,CAAC;YACpB,MAAM,CAAC,KAAI,CAAC,CAAC;YACb,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QACF,KAAI,CAAC,KAAK,EAAE,CAAC;;IACf,CAAC;IAEM,qCAAI,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,IAAI,iBAAiB,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;SACjE;IACH,CAAC;IAEO,sCAAK,GAAb;QAAA,iBAqBC;QApBC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,UAAA,CAAC;YACvB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,KAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,UAAA,CAAC;YACrB,IAAI,CAAC,YAAY,YAAY,EAAE;gBAC7B,KAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC;gBACtB,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,KAAI,CAAC,OAAQ,CAAC,CAAC,CAAC;gBACzE,KAAI,CAAC,KAAK,EAAE,CAAC;gBACb,KAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,OAAO;aACR;YACD,IAAI,CAAC,KAAI,CAAC,UAAU,EAAE;gBACpB,KAAI,CAAC,KAAK,EAAE,CAAC;gBACb,KAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC,CAAC;gBACtH,OAAO;aACR;YACD,KAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,KAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC,CAAA;IACH,CAAC;IAES,4CAAW,GAArB,UAAsB,IAA4B;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAEM,2CAAU,GAAjB;QACE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IACH,6BAAC;AAAD,CAAC,AA9DD,CAAoD,eAAe,GA8DlE\"}","dts":{"name":"/Users/eric/stitch/stitch-js-sdk/packages/browser/core/.rpt2_cache/placeholder/core/internal/net/EventSourceEventStream.d.ts","text":"import BaseEventStream from \"./BaseEventStream\";\r\nexport default class EventSourceEventStream extends BaseEventStream<EventSourceEventStream> {\r\n    private evtSrc;\r\n    private readonly onOpenError;\r\n    private openedOnce;\r\n    constructor(evtSrc: EventSource, onOpen: (stream: EventSourceEventStream) => void, onOpenError: (error: Error) => void, reconnecter?: () => Promise<EventSourceEventStream>);\r\n    open(): void;\r\n    private reset;\r\n    protected onReconnect(next: EventSourceEventStream): void;\r\n    afterClose(): void;\r\n}\r\n"}}
