@ahoo-wang/fetcher-eventstream 0.0.6 → 0.0.8

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.
@@ -1,16 +1,11 @@
1
1
  import { ServerSentEventStream } from './serverSentEventTransformStream';
2
- interface ResponseInterceptor {
3
- intercept(response: Response): Response;
4
- }
2
+ import { ResponseInterceptor } from '@ahoo-wang/fetcher';
5
3
  declare global {
6
4
  interface Response {
7
5
  eventStream(): ServerSentEventStream | undefined;
8
6
  }
9
7
  }
10
- export declare const ContentTypeHeader = "content-type";
11
- export declare const EventStreamContentType = "text/event-stream";
12
8
  export declare class EventStreamInterceptor implements ResponseInterceptor {
13
9
  intercept(response: Response): Response;
14
10
  }
15
- export {};
16
11
  //# sourceMappingURL=eventStreamInterceptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventStreamInterceptor.d.ts","sourceRoot":"","sources":["../src/eventStreamInterceptor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,UAAU,mBAAmB;IAC3B,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACzC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ;QAChB,WAAW,IAAI,qBAAqB,GAAG,SAAS,CAAC;KAClD;CACF;AACD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;CASxC"}
1
+ {"version":3,"file":"eventStreamInterceptor.d.ts","sourceRoot":"","sources":["../src/eventStreamInterceptor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAGL,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ;QAChB,WAAW,IAAI,qBAAqB,GAAG,SAAS,CAAC;KAClD;CACF;AAED,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;CAYxC"}
package/dist/index.es.js CHANGED
@@ -1,51 +1,52 @@
1
- class o {
1
+ import { ContentTypeHeader as o, ContentTypeValues as f } from "@ahoo-wang/fetcher";
2
+ class d {
2
3
  constructor() {
3
4
  this.buffer = "";
4
5
  }
5
- transform(t, r) {
6
+ transform(r, t) {
6
7
  try {
7
- this.buffer += t;
8
+ this.buffer += r;
8
9
  const e = this.buffer.split(`
9
10
  `);
10
11
  this.buffer = e.pop() || "";
11
- for (const s of e)
12
- r.enqueue(s);
12
+ for (const n of e)
13
+ t.enqueue(n);
13
14
  } catch (e) {
14
- r.error(e);
15
+ t.error(e);
15
16
  }
16
17
  }
17
- flush(t) {
18
+ flush(r) {
18
19
  try {
19
- this.buffer && t.enqueue(this.buffer);
20
- } catch (r) {
21
- t.error(r);
20
+ this.buffer && r.enqueue(this.buffer);
21
+ } catch (t) {
22
+ r.error(t);
22
23
  }
23
24
  }
24
25
  }
25
- class d extends TransformStream {
26
+ class c extends TransformStream {
26
27
  constructor() {
27
- super(new o());
28
+ super(new d());
28
29
  }
29
30
  }
30
- var f = /* @__PURE__ */ ((n) => (n.ID = "id", n.RETRY = "retry", n.EVENT = "event", n.DATA = "data", n))(f || {});
31
- function c(n, t, r) {
32
- switch (n) {
31
+ var u = /* @__PURE__ */ ((a) => (a.ID = "id", a.RETRY = "retry", a.EVENT = "event", a.DATA = "data", a))(u || {});
32
+ function m(a, r, t) {
33
+ switch (a) {
33
34
  case "event":
34
- r.event = t;
35
+ t.event = r;
35
36
  break;
36
37
  case "data":
37
- r.data.push(t);
38
+ t.data.push(r);
38
39
  break;
39
40
  case "id":
40
- r.id = t;
41
+ t.id = r;
41
42
  break;
42
43
  case "retry":
43
- const e = parseInt(t, 10);
44
- isNaN(e) || (r.retry = e);
44
+ const e = parseInt(r, 10);
45
+ isNaN(e) || (t.retry = e);
45
46
  break;
46
47
  }
47
48
  }
48
- class u {
49
+ class h {
49
50
  constructor() {
50
51
  this.currentEvent = {
51
52
  event: "message",
@@ -59,11 +60,11 @@ class u {
59
60
  * @param chunk Input string chunk
60
61
  * @param controller Controller for controlling the transform stream
61
62
  */
62
- transform(t, r) {
63
+ transform(r, t) {
63
64
  let e = this.currentEvent;
64
65
  try {
65
- if (t.trim() === "") {
66
- e.data.length > 0 && (r.enqueue({
66
+ if (r.trim() === "") {
67
+ e.data.length > 0 && (t.enqueue({
67
68
  event: e.event || "message",
68
69
  data: e.data.join(`
69
70
  `),
@@ -72,14 +73,14 @@ class u {
72
73
  }), e.event = "message", e.id = e.id, e.retry = e.retry, e.data = []);
73
74
  return;
74
75
  }
75
- if (t.startsWith(":"))
76
+ if (r.startsWith(":"))
76
77
  return;
77
- const s = t.indexOf(":");
78
- let i, a;
79
- s === -1 ? (i = t.toLowerCase(), a = "") : (i = t.substring(0, s).toLowerCase(), a = t.substring(s + 1), a.startsWith(" ") && (a = a.substring(1))), i = i.trim(), a = a.trim(), c(i, a, e);
80
- } catch (s) {
81
- r.error(
82
- s instanceof Error ? s : new Error(String(s))
78
+ const n = r.indexOf(":");
79
+ let i, s;
80
+ n === -1 ? (i = r.toLowerCase(), s = "") : (i = r.substring(0, n).toLowerCase(), s = r.substring(n + 1), s.startsWith(" ") && (s = s.substring(1))), i = i.trim(), s = s.trim(), m(i, s, e);
81
+ } catch (n) {
82
+ t.error(
83
+ n instanceof Error ? n : new Error(String(n))
83
84
  ), e.event = "message", e.id = void 0, e.retry = void 0, e.data = [];
84
85
  }
85
86
  }
@@ -87,31 +88,31 @@ class u {
87
88
  * Called when the stream ends, used to process remaining data
88
89
  * @param controller Controller for controlling the transform stream
89
90
  */
90
- flush(t) {
91
- let r = this.currentEvent;
91
+ flush(r) {
92
+ let t = this.currentEvent;
92
93
  try {
93
- r.data.length > 0 && t.enqueue({
94
- event: r.event || "message",
95
- data: r.data.join(`
94
+ t.data.length > 0 && r.enqueue({
95
+ event: t.event || "message",
96
+ data: t.data.join(`
96
97
  `),
97
- id: r.id || "",
98
- retry: r.retry
98
+ id: t.id || "",
99
+ retry: t.retry
99
100
  });
100
101
  } catch (e) {
101
- t.error(
102
+ r.error(
102
103
  e instanceof Error ? e : new Error(String(e))
103
104
  );
104
105
  } finally {
105
- r.event = "message", r.id = void 0, r.retry = void 0, r.data = [];
106
+ t.event = "message", t.id = void 0, t.retry = void 0, t.data = [];
106
107
  }
107
108
  }
108
109
  }
109
- class m extends TransformStream {
110
+ class y extends TransformStream {
110
111
  constructor() {
111
- super(new u());
112
+ super(new h());
112
113
  }
113
114
  }
114
- class y {
115
+ class v {
115
116
  /**
116
117
  * Convert HTTP response to server-sent event stream
117
118
  *
@@ -119,27 +120,24 @@ class y {
119
120
  * @returns ServerSentEventStream - Server event stream, can be used to read events sent by the server
120
121
  * @throws Error - Throws error when response body is null
121
122
  */
122
- static toEventStream(t) {
123
- if (!t.body)
123
+ static toEventStream(r) {
124
+ if (!r.body)
124
125
  throw new Error("Response body is null");
125
- return t.body.pipeThrough(new TextDecoderStream("utf-8")).pipeThrough(new d()).pipeThrough(new m());
126
+ return r.body.pipeThrough(new TextDecoderStream("utf-8")).pipeThrough(new c()).pipeThrough(new y());
126
127
  }
127
128
  }
128
- const h = "content-type", v = "text/event-stream";
129
129
  class p {
130
- intercept(t) {
131
- const r = t.headers.get(h);
132
- return r && r.includes(v) && (t.eventStream = () => y.toEventStream(t)), t;
130
+ intercept(r) {
131
+ const t = r.headers.get(o);
132
+ return t && t.includes(f.TEXT_EVENT_STREAM) && (r.eventStream = () => v.toEventStream(r)), r;
133
133
  }
134
134
  }
135
135
  export {
136
- h as ContentTypeHeader,
137
- v as EventStreamContentType,
138
- y as EventStreamConverter,
136
+ v as EventStreamConverter,
139
137
  p as EventStreamInterceptor,
140
- f as ServerSentEventField,
141
- m as ServerSentEventTransformStream,
142
- u as ServerSentEventTransformer,
143
- d as TextLineTransformStream,
144
- o as TextLineTransformer
138
+ u as ServerSentEventField,
139
+ y as ServerSentEventTransformStream,
140
+ h as ServerSentEventTransformer,
141
+ c as TextLineTransformStream,
142
+ d as TextLineTransformer
145
143
  };
package/dist/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(n,o){typeof exports=="object"&&typeof module<"u"?o(exports):typeof define=="function"&&define.amd?define(["exports"],o):(n=typeof globalThis<"u"?globalThis:n||self,o(n.FetcherEventStream={}))})(this,(function(n){"use strict";class o{constructor(){this.buffer=""}transform(t,r){try{this.buffer+=t;const e=this.buffer.split(`
2
- `);this.buffer=e.pop()||"";for(const s of e)r.enqueue(s)}catch(e){r.error(e)}}flush(t){try{this.buffer&&t.enqueue(this.buffer)}catch(r){t.error(r)}}}class d extends TransformStream{constructor(){super(new o)}}var c=(a=>(a.ID="id",a.RETRY="retry",a.EVENT="event",a.DATA="data",a))(c||{});function h(a,t,r){switch(a){case"event":r.event=t;break;case"data":r.data.push(t);break;case"id":r.id=t;break;case"retry":const e=parseInt(t,10);isNaN(e)||(r.retry=e);break}}class u{constructor(){this.currentEvent={event:"message",id:void 0,retry:void 0,data:[]}}transform(t,r){let e=this.currentEvent;try{if(t.trim()===""){e.data.length>0&&(r.enqueue({event:e.event||"message",data:e.data.join(`
3
- `),id:e.id||"",retry:e.retry}),e.event="message",e.id=e.id,e.retry=e.retry,e.data=[]);return}if(t.startsWith(":"))return;const s=t.indexOf(":");let f,i;s===-1?(f=t.toLowerCase(),i=""):(f=t.substring(0,s).toLowerCase(),i=t.substring(s+1),i.startsWith(" ")&&(i=i.substring(1))),f=f.trim(),i=i.trim(),h(f,i,e)}catch(s){r.error(s instanceof Error?s:new Error(String(s))),e.event="message",e.id=void 0,e.retry=void 0,e.data=[]}}flush(t){let r=this.currentEvent;try{r.data.length>0&&t.enqueue({event:r.event||"message",data:r.data.join(`
4
- `),id:r.id||"",retry:r.retry})}catch(e){t.error(e instanceof Error?e:new Error(String(e)))}finally{r.event="message",r.id=void 0,r.retry=void 0,r.data=[]}}}class m extends TransformStream{constructor(){super(new u)}}class v{static toEventStream(t){if(!t.body)throw new Error("Response body is null");return t.body.pipeThrough(new TextDecoderStream("utf-8")).pipeThrough(new d).pipeThrough(new m)}}const y="content-type",T="text/event-stream";class S{intercept(t){const r=t.headers.get(y);return r&&r.includes(T)&&(t.eventStream=()=>v.toEventStream(t)),t}}n.ContentTypeHeader=y,n.EventStreamContentType=T,n.EventStreamConverter=v,n.EventStreamInterceptor=S,n.ServerSentEventField=c,n.ServerSentEventTransformStream=m,n.ServerSentEventTransformer=u,n.TextLineTransformStream=d,n.TextLineTransformer=o,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(n,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@ahoo-wang/fetcher")):typeof define=="function"&&define.amd?define(["exports","@ahoo-wang/fetcher"],o):(n=typeof globalThis<"u"?globalThis:n||self,o(n.FetcherEventStream={},n.Fetcher))})(this,(function(n,o){"use strict";class d{constructor(){this.buffer=""}transform(r,t){try{this.buffer+=r;const e=this.buffer.split(`
2
+ `);this.buffer=e.pop()||"";for(const s of e)t.enqueue(s)}catch(e){t.error(e)}}flush(r){try{this.buffer&&r.enqueue(this.buffer)}catch(t){r.error(t)}}}class u extends TransformStream{constructor(){super(new d)}}var c=(a=>(a.ID="id",a.RETRY="retry",a.EVENT="event",a.DATA="data",a))(c||{});function T(a,r,t){switch(a){case"event":t.event=r;break;case"data":t.data.push(r);break;case"id":t.id=r;break;case"retry":const e=parseInt(r,10);isNaN(e)||(t.retry=e);break}}class m{constructor(){this.currentEvent={event:"message",id:void 0,retry:void 0,data:[]}}transform(r,t){let e=this.currentEvent;try{if(r.trim()===""){e.data.length>0&&(t.enqueue({event:e.event||"message",data:e.data.join(`
3
+ `),id:e.id||"",retry:e.retry}),e.event="message",e.id=e.id,e.retry=e.retry,e.data=[]);return}if(r.startsWith(":"))return;const s=r.indexOf(":");let f,i;s===-1?(f=r.toLowerCase(),i=""):(f=r.substring(0,s).toLowerCase(),i=r.substring(s+1),i.startsWith(" ")&&(i=i.substring(1))),f=f.trim(),i=i.trim(),T(f,i,e)}catch(s){t.error(s instanceof Error?s:new Error(String(s))),e.event="message",e.id=void 0,e.retry=void 0,e.data=[]}}flush(r){let t=this.currentEvent;try{t.data.length>0&&r.enqueue({event:t.event||"message",data:t.data.join(`
4
+ `),id:t.id||"",retry:t.retry})}catch(e){r.error(e instanceof Error?e:new Error(String(e)))}finally{t.event="message",t.id=void 0,t.retry=void 0,t.data=[]}}}class v extends TransformStream{constructor(){super(new m)}}class h{static toEventStream(r){if(!r.body)throw new Error("Response body is null");return r.body.pipeThrough(new TextDecoderStream("utf-8")).pipeThrough(new u).pipeThrough(new v)}}class y{intercept(r){const t=r.headers.get(o.ContentTypeHeader);return t&&t.includes(o.ContentTypeValues.TEXT_EVENT_STREAM)&&(r.eventStream=()=>h.toEventStream(r)),r}}n.EventStreamConverter=h,n.EventStreamInterceptor=y,n.ServerSentEventField=c,n.ServerSentEventTransformStream=v,n.ServerSentEventTransformer=m,n.TextLineTransformStream=u,n.TextLineTransformer=d,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ahoo-wang/fetcher-eventstream",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Support for text/event-stream in Fetcher",
5
5
  "keywords": [
6
6
  "fetch",
@@ -22,11 +22,18 @@
22
22
  "main": "./dist/index.umd.js",
23
23
  "module": "./dist/index.es.js",
24
24
  "types": "./dist/index.d.ts",
25
+ "exports": {
26
+ ".": {
27
+ "import": "./dist/index.es.js",
28
+ "require": "./dist/index.umd.js",
29
+ "types": "./dist/index.d.ts"
30
+ }
31
+ },
25
32
  "files": [
26
33
  "dist"
27
34
  ],
28
35
  "dependencies": {
29
- "@ahoo-wang/fetcher": "0.0.6"
36
+ "@ahoo-wang/fetcher": "0.0.8"
30
37
  },
31
38
  "devDependencies": {
32
39
  "@vitest/coverage-v8": "^3.2.4",