@ahoo-wang/fetcher-eventstream 0.2.0 → 0.2.2

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@ahoo-wang/fetcher-eventstream.svg)](https://www.npmjs.com/package/@ahoo-wang/fetcher-eventstream)
4
4
  [![Build Status](https://github.com/Ahoo-Wang/fetcher/actions/workflows/ci.yml/badge.svg)](https://github.com/Ahoo-Wang/fetcher/actions)
5
- [![codecov](https://codecov.io/gh/Ahoo-Wang/Fetcher/graph/badge.svg?token=CUPgk8DmH5)](https://codecov.io/gh/Ahoo-Wang/Fetcher)
5
+ [![codecov](https://codecov.io/gh/Ahoo-Wang/fetcher/graph/badge.svg?token=JGiWZ52CvJ)](https://codecov.io/gh/Ahoo-Wang/fetcher)
6
6
  [![License](https://img.shields.io/npm/l/@ahoo-wang/fetcher-eventstream.svg)](https://github.com/Ahoo-Wang/fetcher/blob/main/LICENSE)
7
7
  [![npm downloads](https://img.shields.io/npm/dm/@ahoo-wang/fetcher-eventstream.svg)](https://www.npmjs.com/package/@ahoo-wang/fetcher-eventstream)
8
8
 
@@ -136,17 +136,17 @@ Converts a Response object with a `text/event-stream` body to a readable stream
136
136
 
137
137
  A response interceptor that automatically adds an `eventStream()` method to responses with `text/event-stream` content type.
138
138
 
139
- #### `intercept(response: Response): Response`
139
+ #### `intercept(exchange: FetchExchange): FetchExchange`
140
140
 
141
141
  Intercepts a response and adds the `eventStream()` method if the content type is `text/event-stream`.
142
142
 
143
143
  **Parameters:**
144
144
 
145
- - `response`: The HTTP response to intercept
145
+ - `exchange`: The fetch exchange containing the response to intercept
146
146
 
147
147
  **Returns:**
148
148
 
149
- - `Response`: The intercepted response with added `eventStream()` method
149
+ - `FetchExchange`: The intercepted exchange with response potentially modified to include `eventStream()` method
150
150
 
151
151
  ### ServerSentEvent
152
152
 
package/README.zh-CN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@ahoo-wang/fetcher-eventstream.svg)](https://www.npmjs.com/package/@ahoo-wang/fetcher-eventstream)
4
4
  [![Build Status](https://github.com/Ahoo-Wang/fetcher/actions/workflows/ci.yml/badge.svg)](https://github.com/Ahoo-Wang/fetcher/actions)
5
- [![codecov](https://codecov.io/gh/Ahoo-Wang/Fetcher/graph/badge.svg?token=CUPgk8DmH5)](https://codecov.io/gh/Ahoo-Wang/Fetcher)
5
+ [![codecov](https://codecov.io/gh/Ahoo-Wang/fetcher/graph/badge.svg?token=JGiWZ52CvJ)](https://codecov.io/gh/Ahoo-Wang/fetcher)
6
6
  [![License](https://img.shields.io/npm/l/@ahoo-wang/fetcher-eventstream.svg)](https://github.com/Ahoo-Wang/fetcher/blob/main/LICENSE)
7
7
  [![npm downloads](https://img.shields.io/npm/dm/@ahoo-wang/fetcher-eventstream.svg)](https://www.npmjs.com/package/@ahoo-wang/fetcher-eventstream)
8
8
 
@@ -136,17 +136,17 @@ if (response.eventStream) {
136
136
 
137
137
  响应拦截器,自动为 `text/event-stream` 内容类型的响应添加 `eventStream()` 方法。
138
138
 
139
- #### `intercept(response: Response): Response`
139
+ #### `intercept(exchange: FetchExchange): FetchExchange`
140
140
 
141
141
  拦截响应,如果内容类型是 `text/event-stream` 则添加 `eventStream()` 方法。
142
142
 
143
143
  **参数:**
144
144
 
145
- - `response`:要拦截的 HTTP 响应
145
+ - `exchange`:包含要拦截响应的 fetch exchange
146
146
 
147
147
  **返回:**
148
148
 
149
- - `Response`:添加了 `eventStream()` 方法的拦截响应
149
+ - `FetchExchange`:可能修改了响应以包含 `eventStream()` 方法的拦截 exchange
150
150
 
151
151
  ### ServerSentEvent
152
152
 
@@ -1 +1 @@
1
- {"version":3,"file":"eventStreamConverter.d.ts","sourceRoot":"","sources":["../src/eventStreamConverter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAEpE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,CAajF"}
1
+ {"version":3,"file":"eventStreamConverter.d.ts","sourceRoot":"","sources":["../src/eventStreamConverter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAEpE,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,GACjB,qBAAqB,CAavB"}
@@ -1,5 +1,5 @@
1
- import { ResponseInterceptor } from '@ahoo-wang/fetcher';
2
- export declare class EventStreamInterceptor implements ResponseInterceptor {
3
- intercept(response: Response): Response;
1
+ import { FetchExchange, Interceptor } from '@ahoo-wang/fetcher';
2
+ export declare class EventStreamInterceptor implements Interceptor {
3
+ intercept(exchange: FetchExchange): FetchExchange;
4
4
  }
5
5
  //# sourceMappingURL=eventStreamInterceptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventStreamInterceptor.d.ts","sourceRoot":"","sources":["../src/eventStreamInterceptor.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;CAYxC"}
1
+ {"version":3,"file":"eventStreamInterceptor.d.ts","sourceRoot":"","sources":["../src/eventStreamInterceptor.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,EACb,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,sBAAuB,YAAW,WAAW;IACxD,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;CAgBlD"}
package/dist/index.es.js CHANGED
@@ -9,8 +9,8 @@ class d {
9
9
  const e = this.buffer.split(`
10
10
  `);
11
11
  this.buffer = e.pop() || "";
12
- for (const s of e)
13
- r.enqueue(s);
12
+ for (const n of e)
13
+ r.enqueue(n);
14
14
  } catch (e) {
15
15
  r.error(e);
16
16
  }
@@ -28,9 +28,9 @@ class u extends TransformStream {
28
28
  super(new d());
29
29
  }
30
30
  }
31
- var c = /* @__PURE__ */ ((n) => (n.ID = "id", n.RETRY = "retry", n.EVENT = "event", n.DATA = "data", n))(c || {});
32
- function m(n, t, r) {
33
- switch (n) {
31
+ var c = /* @__PURE__ */ ((s) => (s.ID = "id", s.RETRY = "retry", s.EVENT = "event", s.DATA = "data", s))(c || {});
32
+ function m(s, t, r) {
33
+ switch (s) {
34
34
  case "event":
35
35
  r.event = t;
36
36
  break;
@@ -46,7 +46,7 @@ function m(n, t, r) {
46
46
  break;
47
47
  }
48
48
  }
49
- class h {
49
+ class y {
50
50
  constructor() {
51
51
  this.currentEvent = {
52
52
  event: "message",
@@ -75,12 +75,12 @@ class h {
75
75
  }
76
76
  if (t.startsWith(":"))
77
77
  return;
78
- const s = t.indexOf(":");
78
+ const n = t.indexOf(":");
79
79
  let i, a;
80
- 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(), m(i, a, e);
81
- } catch (s) {
80
+ n === -1 ? (i = t.toLowerCase(), a = "") : (i = t.substring(0, n).toLowerCase(), a = t.substring(n + 1), a.startsWith(" ") && (a = a.substring(1))), i = i.trim(), a = a.trim(), m(i, a, e);
81
+ } catch (n) {
82
82
  r.error(
83
- s instanceof Error ? s : new Error(String(s))
83
+ n instanceof Error ? n : new Error(String(n))
84
84
  ), e.event = "message", e.id = void 0, e.retry = void 0, e.data = [];
85
85
  }
86
86
  }
@@ -107,28 +107,31 @@ class h {
107
107
  }
108
108
  }
109
109
  }
110
- class y extends TransformStream {
110
+ class p extends TransformStream {
111
111
  constructor() {
112
- super(new h());
112
+ super(new y());
113
113
  }
114
114
  }
115
- function T(n) {
116
- if (!n.body)
115
+ function h(s) {
116
+ if (!s.body)
117
117
  throw new Error("Response body is null");
118
- return n.body.pipeThrough(new TextDecoderStream("utf-8")).pipeThrough(new u()).pipeThrough(new y());
118
+ return s.body.pipeThrough(new TextDecoderStream("utf-8")).pipeThrough(new u()).pipeThrough(new p());
119
119
  }
120
- class p {
120
+ class v {
121
121
  intercept(t) {
122
- const r = t.headers.get(o);
123
- return r && r.includes(f.TEXT_EVENT_STREAM) && (t.eventStream = () => T(t)), t;
122
+ const r = t.response;
123
+ if (!r)
124
+ return t;
125
+ const e = r.headers.get(o);
126
+ return e && e.includes(f.TEXT_EVENT_STREAM) && (r.eventStream = () => h(r)), t;
124
127
  }
125
128
  }
126
129
  export {
127
- p as EventStreamInterceptor,
130
+ v as EventStreamInterceptor,
128
131
  c as ServerSentEventField,
129
- y as ServerSentEventTransformStream,
130
- h as ServerSentEventTransformer,
132
+ p as ServerSentEventTransformStream,
133
+ y as ServerSentEventTransformer,
131
134
  u as TextLineTransformStream,
132
135
  d as TextLineTransformer,
133
- T as toServerSentEventStream
136
+ h as toServerSentEventStream
134
137
  };
package/dist/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(a,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@ahoo-wang/fetcher")):typeof define=="function"&&define.amd?define(["exports","@ahoo-wang/fetcher"],o):(a=typeof globalThis<"u"?globalThis:a||self,o(a.FetcherEventStream={},a.Fetcher))})(this,(function(a,o){"use strict";class d{constructor(){this.buffer=""}transform(t,r){try{this.buffer+=t;const e=this.buffer.split(`
2
- `);this.buffer=e.pop()||"";for(const i of e)r.enqueue(i)}catch(e){r.error(e)}}flush(t){try{this.buffer&&t.enqueue(this.buffer)}catch(r){t.error(r)}}}class u extends TransformStream{constructor(){super(new d)}}var c=(n=>(n.ID="id",n.RETRY="retry",n.EVENT="event",n.DATA="data",n))(c||{});function T(n,t,r){switch(n){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 m{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 i=t.indexOf(":");let f,s;i===-1?(f=t.toLowerCase(),s=""):(f=t.substring(0,i).toLowerCase(),s=t.substring(i+1),s.startsWith(" ")&&(s=s.substring(1))),f=f.trim(),s=s.trim(),T(f,s,e)}catch(i){r.error(i instanceof Error?i:new Error(String(i))),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 h extends TransformStream{constructor(){super(new m)}}function v(n){if(!n.body)throw new Error("Response body is null");return n.body.pipeThrough(new TextDecoderStream("utf-8")).pipeThrough(new u).pipeThrough(new h)}class y{intercept(t){const r=t.headers.get(o.ContentTypeHeader);return r&&r.includes(o.ContentTypeValues.TEXT_EVENT_STREAM)&&(t.eventStream=()=>v(t)),t}}a.EventStreamInterceptor=y,a.ServerSentEventField=c,a.ServerSentEventTransformStream=h,a.ServerSentEventTransformer=m,a.TextLineTransformStream=u,a.TextLineTransformer=d,a.toServerSentEventStream=v,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(s,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("@ahoo-wang/fetcher")):typeof define=="function"&&define.amd?define(["exports","@ahoo-wang/fetcher"],o):(s=typeof globalThis<"u"?globalThis:s||self,o(s.FetcherEventStream={},s.Fetcher))})(this,(function(s,o){"use strict";class d{constructor(){this.buffer=""}transform(t,r){try{this.buffer+=t;const e=this.buffer.split(`
2
+ `);this.buffer=e.pop()||"";for(const a of e)r.enqueue(a)}catch(e){r.error(e)}}flush(t){try{this.buffer&&t.enqueue(this.buffer)}catch(r){t.error(r)}}}class u extends TransformStream{constructor(){super(new d)}}var c=(n=>(n.ID="id",n.RETRY="retry",n.EVENT="event",n.DATA="data",n))(c||{});function h(n,t,r){switch(n){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 m{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 a=t.indexOf(":");let f,i;a===-1?(f=t.toLowerCase(),i=""):(f=t.substring(0,a).toLowerCase(),i=t.substring(a+1),i.startsWith(" ")&&(i=i.substring(1))),f=f.trim(),i=i.trim(),h(f,i,e)}catch(a){r.error(a instanceof Error?a:new Error(String(a))),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 v extends TransformStream{constructor(){super(new m)}}function T(n){if(!n.body)throw new Error("Response body is null");return n.body.pipeThrough(new TextDecoderStream("utf-8")).pipeThrough(new u).pipeThrough(new v)}class y{intercept(t){const r=t.response;if(!r)return t;const e=r.headers.get(o.ContentTypeHeader);return e&&e.includes(o.ContentTypeValues.TEXT_EVENT_STREAM)&&(r.eventStream=()=>T(r)),t}}s.EventStreamInterceptor=y,s.ServerSentEventField=c,s.ServerSentEventTransformStream=v,s.ServerSentEventTransformer=m,s.TextLineTransformStream=u,s.TextLineTransformer=d,s.toServerSentEventStream=T,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ahoo-wang/fetcher-eventstream",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Support for text/event-stream in Fetcher",
5
5
  "keywords": [
6
6
  "fetch",
@@ -33,7 +33,7 @@
33
33
  "dist"
34
34
  ],
35
35
  "dependencies": {
36
- "@ahoo-wang/fetcher": "0.2.0"
36
+ "@ahoo-wang/fetcher": "0.2.2"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@vitest/coverage-v8": "^3.2.4",