@trpc/client 10.0.0-alpha.10 → 10.0.0-alpha.11
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 +1 -2
- package/dist/index.mjs +1 -2
- package/dist/internals/TRPCClient.d.ts.map +1 -1
- package/dist/links/dedupeLink.d.ts.map +1 -1
- package/dist/rx.d.ts +2 -1
- package/dist/rx.d.ts.map +1 -1
- package/dist/rx.js +43 -1
- package/dist/rx.mjs +43 -2
- package/package.json +5 -5
- package/src/internals/TRPCClient.ts +1 -2
- package/src/links/dedupeLink.ts +1 -3
- package/src/rx.ts +33 -1
package/dist/index.js
CHANGED
|
@@ -8,7 +8,6 @@ var links_httpBatchLink = require('./links/httpBatchLink.js');
|
|
|
8
8
|
var createChain = require('./createChain-3b458753.js');
|
|
9
9
|
var TRPCClientError = require('./TRPCClientError-ec6bd2ca.js');
|
|
10
10
|
var rx = require('./rx.js');
|
|
11
|
-
var operators = require('rxjs/operators');
|
|
12
11
|
require('rxjs');
|
|
13
12
|
require('./httpUtils-1f9e4e3c.js');
|
|
14
13
|
require('@babel/runtime/helpers/defineProperty');
|
|
@@ -137,7 +136,7 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
137
136
|
context: context
|
|
138
137
|
}
|
|
139
138
|
});
|
|
140
|
-
return chain$.pipe(
|
|
139
|
+
return chain$.pipe(rx.share());
|
|
141
140
|
}
|
|
142
141
|
}, {
|
|
143
142
|
key: "requestAsPromise",
|
package/dist/index.mjs
CHANGED
|
@@ -4,8 +4,7 @@ import { httpBatchLink } from './links/httpBatchLink.mjs';
|
|
|
4
4
|
import { c as createChain } from './createChain-b7cb1f5a.mjs';
|
|
5
5
|
import { T as TRPCClientError } from './TRPCClientError-17b117e1.mjs';
|
|
6
6
|
export { T as TRPCClientError } from './TRPCClientError-17b117e1.mjs';
|
|
7
|
-
import { observableToPromise } from './rx.mjs';
|
|
8
|
-
import { share } from 'rxjs/operators';
|
|
7
|
+
import { share, observableToPromise } from './rx.mjs';
|
|
9
8
|
import 'rxjs';
|
|
10
9
|
import './httpUtils-c09d7b79.mjs';
|
|
11
10
|
import '@babel/runtime/helpers/defineProperty';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TRPCClient.d.ts","sourceRoot":"","sources":["../../src/internals/TRPCClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EAEnB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAK9B,OAAO,EACL,WAAW,EACX,WAAW,EACX,gBAAgB,EAEhB,QAAQ,EACT,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"TRPCClient.d.ts","sourceRoot":"","sources":["../../src/internals/TRPCClient.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EAEnB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAK9B,OAAO,EACL,WAAW,EACX,WAAW,EACX,gBAAgB,EAEhB,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAI9C,aAAK,kBAAkB,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAClD,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;CAC1C;AAKD,UAAU,2BAA2B;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IACzC;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;CACpE;AAED,gBAAgB;AAChB,MAAM,WAAW,8BACf,SAAQ,2BAA2B;IACnC;;QAEI;IACJ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,gBAAgB;AAChB,MAAM,WAAW,gCAAgC,CAAC,OAAO,SAAS,SAAS,CACzE,SAAQ,2BAA2B;IACnC;;QAEI;IACJ,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5B;AAGD,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,gBAAgB;AAChB,oBAAY,uBAAuB,CAAC,OAAO,SAAS,SAAS,IACzD,gCAAgC,CAAC,OAAO,CAAC,GACzC,8BAA8B,CAAC;AACnC,qBAAa,UAAU,CAAC,OAAO,SAAS,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,SAAgB,OAAO,EAAE,WAAW,CAAC;gBAEzB,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC;IA4BlD,OAAO,CAAC,QAAQ;IAuBhB,OAAO,CAAC,gBAAgB;IA8BjB,KAAK,CACV,QAAQ,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAC3C,KAAK,SAAS,MAAM,GAAG,MAAM,QAAQ,EAErC,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAchE,QAAQ,CACb,UAAU,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EAC/C,KAAK,SAAS,MAAM,GAAG,MAAM,UAAU,EAEvC,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAalE,YAAY,CACjB,cAAc,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EACvD,KAAK,SAAS,MAAM,GAAG,MAAM,cAAc,EAC3C,OAAO,SAAS,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,EACvD,MAAM,SAAS,mBAAmB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAEzD,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAChE,YAAY;CA2BhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedupeLink.d.ts","sourceRoot":"","sources":["../../src/links/dedupeLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAmB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,UAAU,CACxB,OAAO,SAAS,SAAS,GAAG,SAAS,KAClC,QAAQ,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"dedupeLink.d.ts","sourceRoot":"","sources":["../../src/links/dedupeLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAmB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,UAAU,CACxB,OAAO,SAAS,SAAS,GAAG,SAAS,KAClC,QAAQ,CAAC,OAAO,CAAC,CA4CrB"}
|
package/dist/rx.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
1
|
+
import { MonoTypeOperatorFunction, Observable } from 'rxjs';
|
|
2
2
|
export declare type inferObservableValue<TObservable extends Observable<any>> = TObservable extends Observable<infer TValue> ? TValue : never;
|
|
3
3
|
export declare class ObservableAbortError extends Error {
|
|
4
4
|
constructor(message: string);
|
|
@@ -8,4 +8,5 @@ export declare function observableToPromise<TValue>(observable: Observable<TValu
|
|
|
8
8
|
promise: Promise<TValue>;
|
|
9
9
|
abort: () => void;
|
|
10
10
|
};
|
|
11
|
+
export declare function share<T>(): MonoTypeOperatorFunction<T>;
|
|
11
12
|
//# sourceMappingURL=rx.d.ts.map
|
package/dist/rx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rx.d.ts","sourceRoot":"","sources":["../src/rx.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"rx.d.ts","sourceRoot":"","sources":["../src/rx.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,UAAU,EAGX,MAAM,MAAM,CAAC;AAEd,oBAAY,oBAAoB,CAAC,WAAW,SAAS,UAAU,CAAC,GAAG,CAAC,IAClE,WAAW,SAAS,UAAU,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAK5B;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC;;iBACvD,IAAI;EAkCtB;AAED,wBAAgB,KAAK,CAAC,CAAC,KAAK,wBAAwB,CAAC,CAAC,CAAC,CAyBtD"}
|
package/dist/rx.js
CHANGED
|
@@ -9,6 +9,7 @@ var _inherits = require('@babel/runtime/helpers/inherits');
|
|
|
9
9
|
var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
|
|
10
10
|
var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
|
|
11
11
|
var _wrapNativeSuper = require('@babel/runtime/helpers/wrapNativeSuper');
|
|
12
|
+
var rxjs = require('rxjs');
|
|
12
13
|
|
|
13
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
15
|
|
|
@@ -23,7 +24,6 @@ var _wrapNativeSuper__default = /*#__PURE__*/_interopDefaultLegacy(_wrapNativeSu
|
|
|
23
24
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default["default"](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default["default"](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default["default"](this, result); }; }
|
|
24
25
|
|
|
25
26
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
26
|
-
|
|
27
27
|
var ObservableAbortError = /*#__PURE__*/function (_Error) {
|
|
28
28
|
_inherits__default["default"](ObservableAbortError, _Error);
|
|
29
29
|
|
|
@@ -83,6 +83,48 @@ function observableToPromise(observable) {
|
|
|
83
83
|
abort: abort
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
|
+
function share() {
|
|
87
|
+
var subscribers = new Set();
|
|
88
|
+
var connection = null;
|
|
89
|
+
return function (source) {
|
|
90
|
+
return new rxjs.Observable(function (subscriber) {
|
|
91
|
+
subscribers.add(subscriber);
|
|
92
|
+
subscriber.add(function () {
|
|
93
|
+
subscribers.delete(subscriber);
|
|
94
|
+
|
|
95
|
+
if (subscribers.size === 0) {
|
|
96
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
97
|
+
connection.unsubscribe();
|
|
98
|
+
connection = null;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
if (!connection) {
|
|
103
|
+
connection = source.subscribe({
|
|
104
|
+
next: function next(value) {
|
|
105
|
+
return subscribers.forEach(function (s) {
|
|
106
|
+
return s.next(value);
|
|
107
|
+
});
|
|
108
|
+
},
|
|
109
|
+
error: function error(_error) {
|
|
110
|
+
return subscribers.forEach(function (s) {
|
|
111
|
+
return s.error(_error);
|
|
112
|
+
});
|
|
113
|
+
},
|
|
114
|
+
complete: function complete() {
|
|
115
|
+
return subscribers.forEach(function (s) {
|
|
116
|
+
return s.complete();
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
connection.add(function () {
|
|
121
|
+
return subscribers.clear();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
}
|
|
86
127
|
|
|
87
128
|
exports.ObservableAbortError = ObservableAbortError;
|
|
88
129
|
exports.observableToPromise = observableToPromise;
|
|
130
|
+
exports.share = share;
|
package/dist/rx.mjs
CHANGED
|
@@ -5,11 +5,11 @@ import _inherits from '@babel/runtime/helpers/inherits';
|
|
|
5
5
|
import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
|
|
6
6
|
import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
|
|
7
7
|
import _wrapNativeSuper from '@babel/runtime/helpers/wrapNativeSuper';
|
|
8
|
+
import { Observable } from 'rxjs';
|
|
8
9
|
|
|
9
10
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
11
|
|
|
11
12
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
|
-
|
|
13
13
|
var ObservableAbortError = /*#__PURE__*/function (_Error) {
|
|
14
14
|
_inherits(ObservableAbortError, _Error);
|
|
15
15
|
|
|
@@ -69,5 +69,46 @@ function observableToPromise(observable) {
|
|
|
69
69
|
abort: abort
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
+
function share() {
|
|
73
|
+
var subscribers = new Set();
|
|
74
|
+
var connection = null;
|
|
75
|
+
return function (source) {
|
|
76
|
+
return new Observable(function (subscriber) {
|
|
77
|
+
subscribers.add(subscriber);
|
|
78
|
+
subscriber.add(function () {
|
|
79
|
+
subscribers.delete(subscriber);
|
|
80
|
+
|
|
81
|
+
if (subscribers.size === 0) {
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
83
|
+
connection.unsubscribe();
|
|
84
|
+
connection = null;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
if (!connection) {
|
|
89
|
+
connection = source.subscribe({
|
|
90
|
+
next: function next(value) {
|
|
91
|
+
return subscribers.forEach(function (s) {
|
|
92
|
+
return s.next(value);
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
error: function error(_error) {
|
|
96
|
+
return subscribers.forEach(function (s) {
|
|
97
|
+
return s.error(_error);
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
complete: function complete() {
|
|
101
|
+
return subscribers.forEach(function (s) {
|
|
102
|
+
return s.complete();
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
connection.add(function () {
|
|
107
|
+
return subscribers.clear();
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
}
|
|
72
113
|
|
|
73
|
-
export { ObservableAbortError, observableToPromise };
|
|
114
|
+
export { ObservableAbortError, observableToPromise, share };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/client",
|
|
3
|
-
"version": "10.0.0-alpha.
|
|
3
|
+
"version": "10.0.0-alpha.11",
|
|
4
4
|
"description": "tRPC Client lib",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -66,16 +66,16 @@
|
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@babel/runtime": "^7.9.0",
|
|
69
|
-
"rxjs": "^7.
|
|
69
|
+
"rxjs": "^7.5.4"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
|
-
"@trpc/server": "10.0.0-alpha.
|
|
72
|
+
"@trpc/server": "10.0.0-alpha.11"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
|
-
"@trpc/server": "10.0.0-alpha.
|
|
75
|
+
"@trpc/server": "10.0.0-alpha.11"
|
|
76
76
|
},
|
|
77
77
|
"publishConfig": {
|
|
78
78
|
"access": "public"
|
|
79
79
|
},
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "a330502ab8d9aeb1f8f01d9a0711aab849d3a938"
|
|
81
81
|
}
|
|
@@ -18,8 +18,7 @@ import {
|
|
|
18
18
|
OperationLink,
|
|
19
19
|
TRPCLink,
|
|
20
20
|
} from '../links/types';
|
|
21
|
-
import { inferObservableValue, observableToPromise } from '../rx';
|
|
22
|
-
import { share } from 'rxjs/operators';
|
|
21
|
+
import { inferObservableValue, observableToPromise, share } from '../rx';
|
|
23
22
|
import { Observer, Subscription } from 'rxjs';
|
|
24
23
|
import { TRPCClientError } from '../TRPCClientError';
|
|
25
24
|
import { getAbortController } from './fetchHelpers';
|
package/src/links/dedupeLink.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnyRouter } from '@trpc/server';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { share } from '
|
|
3
|
+
import { share } from '../rx';
|
|
4
4
|
import { OperationResult, TRPCLink } from './types';
|
|
5
5
|
|
|
6
6
|
export function dedupeLink<
|
|
@@ -33,11 +33,9 @@ export function dedupeLink<
|
|
|
33
33
|
observer.next(v);
|
|
34
34
|
},
|
|
35
35
|
error(e) {
|
|
36
|
-
reset();
|
|
37
36
|
observer.error(e);
|
|
38
37
|
},
|
|
39
38
|
complete() {
|
|
40
|
-
reset();
|
|
41
39
|
observer.complete();
|
|
42
40
|
},
|
|
43
41
|
});
|
package/src/rx.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
MonoTypeOperatorFunction,
|
|
3
|
+
Observable,
|
|
4
|
+
Subscriber,
|
|
5
|
+
Subscription,
|
|
6
|
+
} from 'rxjs';
|
|
2
7
|
|
|
3
8
|
export type inferObservableValue<TObservable extends Observable<any>> =
|
|
4
9
|
TObservable extends Observable<infer TValue> ? TValue : never;
|
|
@@ -48,3 +53,30 @@ export function observableToPromise<TValue>(observable: Observable<TValue>) {
|
|
|
48
53
|
abort: abort!,
|
|
49
54
|
};
|
|
50
55
|
}
|
|
56
|
+
|
|
57
|
+
export function share<T>(): MonoTypeOperatorFunction<T> {
|
|
58
|
+
const subscribers = new Set<Subscriber<T>>();
|
|
59
|
+
let connection: Subscription | null = null;
|
|
60
|
+
|
|
61
|
+
return (source) =>
|
|
62
|
+
new Observable((subscriber) => {
|
|
63
|
+
subscribers.add(subscriber);
|
|
64
|
+
subscriber.add(() => {
|
|
65
|
+
subscribers.delete(subscriber);
|
|
66
|
+
if (subscribers.size === 0) {
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
68
|
+
connection!.unsubscribe();
|
|
69
|
+
connection = null;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
if (!connection) {
|
|
74
|
+
connection = source.subscribe({
|
|
75
|
+
next: (value) => subscribers.forEach((s) => s.next(value)),
|
|
76
|
+
error: (error) => subscribers.forEach((s) => s.error(error)),
|
|
77
|
+
complete: () => subscribers.forEach((s) => s.complete()),
|
|
78
|
+
});
|
|
79
|
+
connection.add(() => subscribers.clear());
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|