@glamboyosa/ore 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +7 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +7 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -59,10 +59,7 @@ var Ore = class {
|
|
|
59
59
|
const reader = response.body?.getReader();
|
|
60
60
|
const decoder = new TextDecoder("utf-8");
|
|
61
61
|
let buffer = "";
|
|
62
|
-
const processText = ({
|
|
63
|
-
done,
|
|
64
|
-
value
|
|
65
|
-
}) => {
|
|
62
|
+
const processText = ({ done, value }) => {
|
|
66
63
|
if (done) {
|
|
67
64
|
this.streamEnded = true;
|
|
68
65
|
if (onStreamEnded) {
|
|
@@ -82,9 +79,7 @@ var Ore = class {
|
|
|
82
79
|
this.retryCount++;
|
|
83
80
|
setTimeout(fetchWithRetry, 1e3);
|
|
84
81
|
} else {
|
|
85
|
-
console.error(
|
|
86
|
-
"Max retries exceeded. Cannot establish SSE connection."
|
|
87
|
-
);
|
|
82
|
+
console.error("Max retries exceeded. Cannot establish SSE connection.");
|
|
88
83
|
this.streamEnded = true;
|
|
89
84
|
if (onStreamEnded) {
|
|
90
85
|
onStreamEnded(this.streamEnded);
|
|
@@ -98,9 +93,7 @@ var Ore = class {
|
|
|
98
93
|
this.retryCount++;
|
|
99
94
|
setTimeout(fetchWithRetry, 1e3);
|
|
100
95
|
} else {
|
|
101
|
-
console.error(
|
|
102
|
-
"Max retries exceeded. Cannot establish SSE connection."
|
|
103
|
-
);
|
|
96
|
+
console.error("Max retries exceeded. Cannot establish SSE connection.");
|
|
104
97
|
this.streamEnded = true;
|
|
105
98
|
if (onStreamEnded) {
|
|
106
99
|
onStreamEnded(this.streamEnded);
|
|
@@ -113,9 +106,12 @@ var Ore = class {
|
|
|
113
106
|
async fetchSSEForRSC(customHeaders, retries = this.maxRetries) {
|
|
114
107
|
const headers = { ...this.headers, ...customHeaders };
|
|
115
108
|
try {
|
|
109
|
+
const { signal } = new AbortController();
|
|
116
110
|
const response = await fetch(this.url, {
|
|
117
111
|
method: "GET",
|
|
118
|
-
headers
|
|
112
|
+
headers,
|
|
113
|
+
cache: "no-store",
|
|
114
|
+
signal
|
|
119
115
|
});
|
|
120
116
|
if (!response.ok) {
|
|
121
117
|
throw new Error("Failed to connect to SSE endpoint");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/client.ts"],"sourcesContent":["export * from \"./client\";\n","interface OreOptions {\n url: string;\n headers?: HeadersInit;\n}\n\nclass Ore {\n private url: string;\n private headers?: HeadersInit;\n private streamEnded = false;\n private retryCount = 0;\n private maxRetries = 3;\n\n constructor(options: OreOptions) {\n this.url = options.url;\n this.headers = options.headers\n ? {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n ...options.headers,\n }\n : {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n };\n }\n\n public fetchSSE(\n onBufferReceived: (buffer: string, parts: Array<string>) => void,\n onStreamEnded?: (streamEnded: boolean) => void,\n customHeaders?: HeadersInit,\n retries: number = this.maxRetries
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/client.ts"],"sourcesContent":["export * from \"./client\";\n","interface OreOptions {\n url: string;\n headers?: HeadersInit;\n}\n\nclass Ore {\n private url: string;\n private headers?: HeadersInit;\n private streamEnded = false;\n private retryCount = 0;\n private maxRetries = 3;\n\n constructor(options: OreOptions) {\n this.url = options.url;\n this.headers = options.headers\n ? {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n ...options.headers,\n }\n : {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n };\n }\n\n public fetchSSE(\n onBufferReceived: (buffer: string, parts: Array<string>) => void,\n onStreamEnded?: (streamEnded: boolean) => void,\n customHeaders?: HeadersInit,\n retries: number = this.maxRetries,\n ): void {\n const headers = { ...this.headers, ...customHeaders };\n\n const fetchWithRetry = async (): Promise<void> => {\n try {\n const response = await fetch(this.url, {\n method: \"GET\",\n headers: headers,\n });\n\n if (!response.ok) {\n throw new Error(\"Failed to connect to SSE endpoint\");\n }\n\n this.retryCount = 0;\n\n const reader = response.body?.getReader();\n const decoder = new TextDecoder(\"utf-8\");\n let buffer = \"\";\n const processText = ({ done, value }: ReadableStreamReadResult<Uint8Array>): any => {\n if (done) {\n this.streamEnded = true;\n if (onStreamEnded) {\n onStreamEnded(this.streamEnded);\n }\n return;\n }\n\n buffer += decoder.decode(value, { stream: true });\n\n const parts = buffer.split(\"\\n\\n\");\n\n onBufferReceived(buffer, parts);\n\n return reader!.read().then(processText);\n };\n reader\n ?.read()\n .then(processText)\n .catch((error) => {\n if (this.retryCount < retries) {\n console.error(\"Error:\", error);\n console.log(\"Retrying...\");\n this.retryCount++;\n setTimeout(fetchWithRetry, 1000);\n } else {\n console.error(\"Max retries exceeded. Cannot establish SSE connection.\");\n this.streamEnded = true;\n if (onStreamEnded) {\n onStreamEnded(this.streamEnded);\n }\n }\n });\n } catch (error) {\n if (this.retryCount < retries) {\n console.error(\"Error:\", error);\n console.log(\"Retrying...\");\n this.retryCount++;\n setTimeout(fetchWithRetry, 1000);\n } else {\n console.error(\"Max retries exceeded. Cannot establish SSE connection.\");\n this.streamEnded = true;\n if (onStreamEnded) {\n onStreamEnded(this.streamEnded);\n }\n }\n }\n };\n\n fetchWithRetry();\n }\n public async fetchSSEForRSC(customHeaders?: HeadersInit, retries: number = this.maxRetries) {\n const headers = { ...this.headers, ...customHeaders };\n\n try {\n const { signal } = new AbortController();\n const response = await fetch(this.url, {\n method: \"GET\",\n headers: headers,\n cache: \"no-store\",\n signal,\n });\n\n if (!response.ok) {\n throw new Error(\"Failed to connect to SSE endpoint\");\n }\n\n this.retryCount = 0;\n\n return response.body;\n } catch (error) {\n if (this.retryCount < retries) {\n console.error(\"Error:\", error);\n console.log(\"Retrying...\");\n this.retryCount++;\n setTimeout(() => this.fetchSSEForRSC(customHeaders, retries), 1000);\n } else {\n console.error(\"Max retries exceeded. Cannot establish SSE connection.\");\n }\n }\n }\n}\n\nexport { Ore, type OreOptions };\n"],"mappings":"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","names":[]}
|
package/dist/index.mjs
CHANGED
|
@@ -33,10 +33,7 @@ var Ore = class {
|
|
|
33
33
|
const reader = response.body?.getReader();
|
|
34
34
|
const decoder = new TextDecoder("utf-8");
|
|
35
35
|
let buffer = "";
|
|
36
|
-
const processText = ({
|
|
37
|
-
done,
|
|
38
|
-
value
|
|
39
|
-
}) => {
|
|
36
|
+
const processText = ({ done, value }) => {
|
|
40
37
|
if (done) {
|
|
41
38
|
this.streamEnded = true;
|
|
42
39
|
if (onStreamEnded) {
|
|
@@ -56,9 +53,7 @@ var Ore = class {
|
|
|
56
53
|
this.retryCount++;
|
|
57
54
|
setTimeout(fetchWithRetry, 1e3);
|
|
58
55
|
} else {
|
|
59
|
-
console.error(
|
|
60
|
-
"Max retries exceeded. Cannot establish SSE connection."
|
|
61
|
-
);
|
|
56
|
+
console.error("Max retries exceeded. Cannot establish SSE connection.");
|
|
62
57
|
this.streamEnded = true;
|
|
63
58
|
if (onStreamEnded) {
|
|
64
59
|
onStreamEnded(this.streamEnded);
|
|
@@ -72,9 +67,7 @@ var Ore = class {
|
|
|
72
67
|
this.retryCount++;
|
|
73
68
|
setTimeout(fetchWithRetry, 1e3);
|
|
74
69
|
} else {
|
|
75
|
-
console.error(
|
|
76
|
-
"Max retries exceeded. Cannot establish SSE connection."
|
|
77
|
-
);
|
|
70
|
+
console.error("Max retries exceeded. Cannot establish SSE connection.");
|
|
78
71
|
this.streamEnded = true;
|
|
79
72
|
if (onStreamEnded) {
|
|
80
73
|
onStreamEnded(this.streamEnded);
|
|
@@ -87,9 +80,12 @@ var Ore = class {
|
|
|
87
80
|
async fetchSSEForRSC(customHeaders, retries = this.maxRetries) {
|
|
88
81
|
const headers = { ...this.headers, ...customHeaders };
|
|
89
82
|
try {
|
|
83
|
+
const { signal } = new AbortController();
|
|
90
84
|
const response = await fetch(this.url, {
|
|
91
85
|
method: "GET",
|
|
92
|
-
headers
|
|
86
|
+
headers,
|
|
87
|
+
cache: "no-store",
|
|
88
|
+
signal
|
|
93
89
|
});
|
|
94
90
|
if (!response.ok) {
|
|
95
91
|
throw new Error("Failed to connect to SSE endpoint");
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts"],"sourcesContent":["interface OreOptions {\n url: string;\n headers?: HeadersInit;\n}\n\nclass Ore {\n private url: string;\n private headers?: HeadersInit;\n private streamEnded = false;\n private retryCount = 0;\n private maxRetries = 3;\n\n constructor(options: OreOptions) {\n this.url = options.url;\n this.headers = options.headers\n ? {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n ...options.headers,\n }\n : {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n };\n }\n\n public fetchSSE(\n onBufferReceived: (buffer: string, parts: Array<string>) => void,\n onStreamEnded?: (streamEnded: boolean) => void,\n customHeaders?: HeadersInit,\n retries: number = this.maxRetries
|
|
1
|
+
{"version":3,"sources":["../src/client.ts"],"sourcesContent":["interface OreOptions {\n url: string;\n headers?: HeadersInit;\n}\n\nclass Ore {\n private url: string;\n private headers?: HeadersInit;\n private streamEnded = false;\n private retryCount = 0;\n private maxRetries = 3;\n\n constructor(options: OreOptions) {\n this.url = options.url;\n this.headers = options.headers\n ? {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n ...options.headers,\n }\n : {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n };\n }\n\n public fetchSSE(\n onBufferReceived: (buffer: string, parts: Array<string>) => void,\n onStreamEnded?: (streamEnded: boolean) => void,\n customHeaders?: HeadersInit,\n retries: number = this.maxRetries,\n ): void {\n const headers = { ...this.headers, ...customHeaders };\n\n const fetchWithRetry = async (): Promise<void> => {\n try {\n const response = await fetch(this.url, {\n method: \"GET\",\n headers: headers,\n });\n\n if (!response.ok) {\n throw new Error(\"Failed to connect to SSE endpoint\");\n }\n\n this.retryCount = 0;\n\n const reader = response.body?.getReader();\n const decoder = new TextDecoder(\"utf-8\");\n let buffer = \"\";\n const processText = ({ done, value }: ReadableStreamReadResult<Uint8Array>): any => {\n if (done) {\n this.streamEnded = true;\n if (onStreamEnded) {\n onStreamEnded(this.streamEnded);\n }\n return;\n }\n\n buffer += decoder.decode(value, { stream: true });\n\n const parts = buffer.split(\"\\n\\n\");\n\n onBufferReceived(buffer, parts);\n\n return reader!.read().then(processText);\n };\n reader\n ?.read()\n .then(processText)\n .catch((error) => {\n if (this.retryCount < retries) {\n console.error(\"Error:\", error);\n console.log(\"Retrying...\");\n this.retryCount++;\n setTimeout(fetchWithRetry, 1000);\n } else {\n console.error(\"Max retries exceeded. Cannot establish SSE connection.\");\n this.streamEnded = true;\n if (onStreamEnded) {\n onStreamEnded(this.streamEnded);\n }\n }\n });\n } catch (error) {\n if (this.retryCount < retries) {\n console.error(\"Error:\", error);\n console.log(\"Retrying...\");\n this.retryCount++;\n setTimeout(fetchWithRetry, 1000);\n } else {\n console.error(\"Max retries exceeded. Cannot establish SSE connection.\");\n this.streamEnded = true;\n if (onStreamEnded) {\n onStreamEnded(this.streamEnded);\n }\n }\n }\n };\n\n fetchWithRetry();\n }\n public async fetchSSEForRSC(customHeaders?: HeadersInit, retries: number = this.maxRetries) {\n const headers = { ...this.headers, ...customHeaders };\n\n try {\n const { signal } = new AbortController();\n const response = await fetch(this.url, {\n method: \"GET\",\n headers: headers,\n cache: \"no-store\",\n signal,\n });\n\n if (!response.ok) {\n throw new Error(\"Failed to connect to SSE endpoint\");\n }\n\n this.retryCount = 0;\n\n return response.body;\n } catch (error) {\n if (this.retryCount < retries) {\n console.error(\"Error:\", error);\n console.log(\"Retrying...\");\n this.retryCount++;\n setTimeout(() => this.fetchSSEForRSC(customHeaders, retries), 1000);\n } else {\n console.error(\"Max retries exceeded. Cannot establish SSE connection.\");\n }\n }\n }\n}\n\nexport { Ore, type OreOptions };\n"],"mappings":";AAKA,IAAM,MAAN,MAAU;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AAAA,EAErB,YAAY,SAAqB;AAC/B,SAAK,MAAM,QAAQ;AACnB,SAAK,UAAU,QAAQ,UACnB;AAAA,MACE,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,GAAG,QAAQ;AAAA,IACb,IACA;AAAA,MACE,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,MACjB,YAAY;AAAA,IACd;AAAA,EACN;AAAA,EAEO,SACL,kBACA,eACA,eACA,UAAkB,KAAK,YACjB;AACN,UAAM,UAAU,EAAE,GAAG,KAAK,SAAS,GAAG,cAAc;AAEpD,UAAM,iBAAiB,YAA2B;AAChD,UAAI;AACF,cAAM,WAAW,MAAM,MAAM,KAAK,KAAK;AAAA,UACrC,QAAQ;AAAA,UACR;AAAA,QACF,CAAC;AAED,YAAI,CAAC,SAAS,IAAI;AAChB,gBAAM,IAAI,MAAM,mCAAmC;AAAA,QACrD;AAEA,aAAK,aAAa;AAElB,cAAM,SAAS,SAAS,MAAM,UAAU;AACxC,cAAM,UAAU,IAAI,YAAY,OAAO;AACvC,YAAI,SAAS;AACb,cAAM,cAAc,CAAC,EAAE,MAAM,MAAM,MAAiD;AAClF,cAAI,MAAM;AACR,iBAAK,cAAc;AACnB,gBAAI,eAAe;AACjB,4BAAc,KAAK,WAAW;AAAA,YAChC;AACA;AAAA,UACF;AAEA,oBAAU,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AAEhD,gBAAM,QAAQ,OAAO,MAAM,MAAM;AAEjC,2BAAiB,QAAQ,KAAK;AAE9B,iBAAO,OAAQ,KAAK,EAAE,KAAK,WAAW;AAAA,QACxC;AACA,gBACI,KAAK,EACN,KAAK,WAAW,EAChB,MAAM,CAAC,UAAU;AAChB,cAAI,KAAK,aAAa,SAAS;AAC7B,oBAAQ,MAAM,UAAU,KAAK;AAC7B,oBAAQ,IAAI,aAAa;AACzB,iBAAK;AACL,uBAAW,gBAAgB,GAAI;AAAA,UACjC,OAAO;AACL,oBAAQ,MAAM,wDAAwD;AACtE,iBAAK,cAAc;AACnB,gBAAI,eAAe;AACjB,4BAAc,KAAK,WAAW;AAAA,YAChC;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACL,SAAS,OAAO;AACd,YAAI,KAAK,aAAa,SAAS;AAC7B,kBAAQ,MAAM,UAAU,KAAK;AAC7B,kBAAQ,IAAI,aAAa;AACzB,eAAK;AACL,qBAAW,gBAAgB,GAAI;AAAA,QACjC,OAAO;AACL,kBAAQ,MAAM,wDAAwD;AACtE,eAAK,cAAc;AACnB,cAAI,eAAe;AACjB,0BAAc,KAAK,WAAW;AAAA,UAChC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,mBAAe;AAAA,EACjB;AAAA,EACA,MAAa,eAAe,eAA6B,UAAkB,KAAK,YAAY;AAC1F,UAAM,UAAU,EAAE,GAAG,KAAK,SAAS,GAAG,cAAc;AAEpD,QAAI;AACF,YAAM,EAAE,OAAO,IAAI,IAAI,gBAAgB;AACvC,YAAM,WAAW,MAAM,MAAM,KAAK,KAAK;AAAA,QACrC,QAAQ;AAAA,QACR;AAAA,QACA,OAAO;AAAA,QACP;AAAA,MACF,CAAC;AAED,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AAEA,WAAK,aAAa;AAElB,aAAO,SAAS;AAAA,IAClB,SAAS,OAAO;AACd,UAAI,KAAK,aAAa,SAAS;AAC7B,gBAAQ,MAAM,UAAU,KAAK;AAC7B,gBAAQ,IAAI,aAAa;AACzB,aAAK;AACL,mBAAW,MAAM,KAAK,eAAe,eAAe,OAAO,GAAG,GAAI;AAAA,MACpE,OAAO;AACL,gBAAQ,MAAM,wDAAwD;AAAA,MACxE;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|