MCPcopy Index your code
hub / github.com/bigskysoftware/_hyperscript / createStream

Function createStream

www/js/_hyperscript-max.js:11859–11915  ·  view source on GitHub ↗
(response, runtime2, context)

Source from the content-addressed store, hash-verified

11857 return data;
11858 }
11859 function createStream(response, runtime2, context) {
11860 var element = context.me;
11861 var reader = response.body.getReader();
11862 var messages = [];
11863 var waiting = null;
11864 var done = false;
11865 (async function() {
11866 try {
11867 for await (var msg of parseSSE(reader)) {
11868 var eventType = msg.event || "message";
11869 if (msg.event) {
11870 runtime2.triggerEvent(element, eventType, {
11871 data: msg.data,
11872 lastEventId: msg.id || ""
11873 });
11874 } else {
11875 messages.push(msg.data);
11876 if (waiting) {
11877 waiting.resolve({ value: msg.data, done: false });
11878 waiting = null;
11879 }
11880 }
11881 }
11882 } catch (err) {
11883 runtime2.triggerEvent(element, "stream-error", { error: err });
11884 }
11885 done = true;
11886 if (waiting) {
11887 waiting.resolve({ value: void 0, done: true });
11888 waiting = null;
11889 }
11890 runtime2.triggerEvent(element, "streamEnd", {});
11891 })();
11892 var stream = {
11893 element,
11894 [Symbol.asyncIterator]: function() {
11895 var index = 0;
11896 return {
11897 next: function() {
11898 if (index < messages.length) {
11899 return Promise.resolve({ value: messages[index++], done: false });
11900 }
11901 if (done) {
11902 return Promise.resolve({ value: void 0, done: true });
11903 }
11904 return new Promise(function(resolve) {
11905 waiting = { resolve };
11906 }).then(function(result) {
11907 if (!result.done) index++;
11908 return result;
11909 });
11910 }
11911 };
11912 }
11913 };
11914 return stream;
11915 }
11916 var streamConversion = function(response, runtime2, context) {

Callers 1

streamConversionFunction · 0.70

Calls 3

parseSSEFunction · 0.70
triggerEventMethod · 0.45
resolveMethod · 0.45

Tested by

no test coverage detected