Once #42 is implemented, the ability to directly modify the internal session buffer with the .event, .data, .id, .retry, .comment, .dispatch and .flush methods will be moved into a separate EventBuffer class that Session will create and use internally.
As such, these methods and the ability to modify the internal session buffer at all will become redundant as you can instead just instantiate a new EventBuffer yourself and write its data directly to the socket.
For example, where before you would modify the session buffer yourself to write individual fields:
const session = await createSession(req, res);
session
.event("my-event")
.id("my-custom-id")
.data("my data 1")
.data("my data 2")
.dispatch()
.flush();
You can now create your own buffer instead:
const buffer = createEventBuffer();
buffer
.event("my-event")
.id("my-custom-id")
.data("my data 1")
.data("my data 2")
.dispatch();
res.write(buffer.read());
(The above code is not necessarily what the final API will look like.)
This avoids the need to instantiate an entire Session instance for users who simply want an easy way to write spec-compliant SSE fields over the wire, as well as reducing the API surface size for users who follow the most common use-case of only using the helper methods (.push, .stream and .iterate).
The aforementioned methods on the Session class are now deprecated and will be removed in the future. Possibly in version 1.0.0.
Once #42 is implemented, the ability to directly modify the internal session buffer with the
.event
,.data
,.id
,.retry
,.comment
,.dispatch
and.flush
methods will be moved into a separateEventBuffer
class thatSession
will create and use internally.As such, these methods and the ability to modify the internal session buffer at all will become redundant as you can instead just instantiate a new
EventBuffer
yourself and write its data directly to the socket.For example, where before you would modify the session buffer yourself to write individual fields:
You can now create your own buffer instead:
(The above code is not necessarily what the final API will look like.)
This avoids the need to instantiate an entire
Session
instance for users who simply want an easy way to write spec-compliant SSE fields over the wire, as well as reducing the API surface size for users who follow the most common use-case of only using the helper methods (.push
,.stream
and.iterate
).The aforementioned methods on the
Session
class are now deprecated and will be removed in the future. Possibly in version1.0.0
.