@typed/fx 1.27.3 → 1.27.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/cjs/Subject.js +26 -19
- package/dist/cjs/Subject.js.map +1 -1
- package/dist/dts/Subject.d.ts.map +1 -1
- package/dist/esm/Subject.js +28 -17
- package/dist/esm/Subject.js.map +1 -1
- package/package.json +1 -1
- package/src/Subject.ts +43 -32
package/dist/cjs/Subject.js
CHANGED
|
@@ -36,7 +36,6 @@ const DISCARD = {
|
|
|
36
36
|
*/
|
|
37
37
|
class SubjectImpl extends _protos.FxBase {
|
|
38
38
|
sinks = new Set();
|
|
39
|
-
scopes = new Set();
|
|
40
39
|
constructor() {
|
|
41
40
|
super();
|
|
42
41
|
this.onFailure = this.onFailure.bind(this);
|
|
@@ -53,38 +52,46 @@ class SubjectImpl extends _protos.FxBase {
|
|
|
53
52
|
onSuccess(a) {
|
|
54
53
|
return this.onEvent(a);
|
|
55
54
|
}
|
|
56
|
-
|
|
55
|
+
interruptScopes = Effect.fiberIdWith(id => Effect.tap(Effect.forEach(this.sinks, ([,, scope]) => Scope.close(scope, Exit.interrupt(id)), DISCARD), () => {
|
|
57
56
|
this.sinks.clear();
|
|
58
|
-
this.scopes.clear();
|
|
59
57
|
}));
|
|
58
|
+
interrupt = this.interruptScopes;
|
|
60
59
|
addSink(sink, f) {
|
|
61
60
|
return (0, _helpers.withScope)(innerScope => Effect.contextWithEffect(ctx => {
|
|
62
|
-
const entry = [sink, ctx];
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
});
|
|
67
|
-
const remove = Effect.sync(() => {
|
|
68
|
-
this.sinks.delete(entry);
|
|
69
|
-
this.scopes.delete(innerScope);
|
|
70
|
-
});
|
|
71
|
-
return Effect.zipRight(Scope.addFinalizer(innerScope, remove), Effect.zipRight(add, f(innerScope)));
|
|
61
|
+
const entry = [sink, ctx, innerScope];
|
|
62
|
+
this.sinks.add(entry);
|
|
63
|
+
const remove = Effect.sync(() => this.sinks.delete(entry));
|
|
64
|
+
return Effect.zipRight(Scope.addFinalizer(innerScope, remove), f(innerScope));
|
|
72
65
|
}), ExecutionStrategy.sequential);
|
|
73
66
|
}
|
|
74
67
|
subscriberCount = Effect.sync(() => this.sinks.size);
|
|
75
68
|
onEvent(a) {
|
|
76
|
-
if (this.sinks.size === 0) return Effect.unit;else {
|
|
77
|
-
|
|
69
|
+
if (this.sinks.size === 0) return Effect.unit;else if (this.sinks.size === 1) {
|
|
70
|
+
const [sink, ctx] = this.sinks.values().next().value;
|
|
71
|
+
return runSinkEvent(sink, ctx, a);
|
|
72
|
+
} else {
|
|
73
|
+
return Effect.forEach(this.sinks, ([sink, ctx]) => runSinkEvent(sink, ctx, a), DISCARD);
|
|
78
74
|
}
|
|
79
75
|
}
|
|
80
76
|
onCause(cause) {
|
|
81
|
-
|
|
77
|
+
if (this.sinks.size === 0) return Effect.unit;else if (this.sinks.size === 1) {
|
|
78
|
+
const [sink, ctx] = this.sinks.values().next().value;
|
|
79
|
+
return runSinkCause(sink, ctx, cause);
|
|
80
|
+
} else {
|
|
81
|
+
return Effect.forEach(this.sinks, ([sink, ctx]) => runSinkCause(sink, ctx, cause), DISCARD);
|
|
82
|
+
}
|
|
82
83
|
}
|
|
83
84
|
}
|
|
85
|
+
exports.SubjectImpl = SubjectImpl;
|
|
86
|
+
function runSinkEvent(sink, ctx, a) {
|
|
87
|
+
return Effect.provide(Effect.catchAllCause(sink.onSuccess(a), sink.onFailure), ctx);
|
|
88
|
+
}
|
|
89
|
+
function runSinkCause(sink, ctx, cause) {
|
|
90
|
+
return Effect.provide(Effect.catchAllCause(sink.onFailure(cause), () => Effect.unit), ctx);
|
|
91
|
+
}
|
|
84
92
|
/**
|
|
85
93
|
* @internal
|
|
86
94
|
*/
|
|
87
|
-
exports.SubjectImpl = SubjectImpl;
|
|
88
95
|
class HoldSubjectImpl extends SubjectImpl {
|
|
89
96
|
lastValue = MutableRef.make(Option.none());
|
|
90
97
|
// Emit an event to all sinks
|
|
@@ -104,7 +111,7 @@ class HoldSubjectImpl extends SubjectImpl {
|
|
|
104
111
|
onSome: exit => Effect.zipRight(Exit.match(exit, sink), (0, _helpers.awaitScopeClose)(scope))
|
|
105
112
|
}));
|
|
106
113
|
}
|
|
107
|
-
interrupt = Effect.
|
|
114
|
+
interrupt = Effect.tap(this.interruptScopes, () => MutableRef.set(this.lastValue, Option.none()));
|
|
108
115
|
}
|
|
109
116
|
/**
|
|
110
117
|
* @internal
|
|
@@ -124,7 +131,7 @@ class ReplaySubjectImpl extends SubjectImpl {
|
|
|
124
131
|
run(sink) {
|
|
125
132
|
return this.addSink(sink, scope => Effect.zipRight(this.buffer.forEach(a => sink.onSuccess(a)), (0, _helpers.awaitScopeClose)(scope)));
|
|
126
133
|
}
|
|
127
|
-
interrupt = Effect.
|
|
134
|
+
interrupt = Effect.tap(this.interruptScopes, () => this.buffer.clear());
|
|
128
135
|
}
|
|
129
136
|
/**
|
|
130
137
|
* @since 1.20.0
|
package/dist/cjs/Subject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subject.js","names":["C","_interopRequireWildcard","require","Effect","ExecutionStrategy","Exit","_Function","MutableRef","Option","_Predicate","Scope","_core","_helpers","_protos","_TypeId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","DISCARD","discard","SubjectImpl","FxBase","sinks","Set","
|
|
1
|
+
{"version":3,"file":"Subject.js","names":["C","_interopRequireWildcard","require","Effect","ExecutionStrategy","Exit","_Function","MutableRef","Option","_Predicate","Scope","_core","_helpers","_protos","_TypeId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","DISCARD","discard","SubjectImpl","FxBase","sinks","Set","constructor","onFailure","bind","onSuccess","run","sink","addSink","awaitScopeClose","cause","onCause","onEvent","interruptScopes","fiberIdWith","id","tap","forEach","scope","close","interrupt","clear","f","withScope","innerScope","contextWithEffect","ctx","entry","add","remove","sync","delete","zipRight","addFinalizer","sequential","subscriberCount","size","unit","values","next","value","runSinkEvent","runSinkCause","exports","provide","catchAllCause","HoldSubjectImpl","lastValue","make","none","suspend","some","succeed","failCause","match","onNone","onSome","exit","ReplaySubjectImpl","buffer","push","unsafeMake","replay","Math","max","RingBuffer","acquireRelease","subject","fromTag","tag","FromTag","map","flatMap","tagged","identifier","TaggedImpl","Tagged","isDataFirst","args","length","isEffect","hasProperty","TypeId","identity","dual","fxOrEffect","scoped"],"sources":["../../src/Subject.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subject.d.ts","sourceRoot":"","sources":["../../src/Subject.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Subject.d.ts","sourceRoot":"","sources":["../../src/Subject.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Subject.js
CHANGED
|
@@ -21,7 +21,6 @@ const DISCARD = { discard: true };
|
|
|
21
21
|
*/
|
|
22
22
|
export class SubjectImpl extends FxBase {
|
|
23
23
|
sinks = new Set();
|
|
24
|
-
scopes = new Set();
|
|
25
24
|
constructor() {
|
|
26
25
|
super();
|
|
27
26
|
this.onFailure = this.onFailure.bind(this);
|
|
@@ -38,36 +37,48 @@ export class SubjectImpl extends FxBase {
|
|
|
38
37
|
onSuccess(a) {
|
|
39
38
|
return this.onEvent(a);
|
|
40
39
|
}
|
|
41
|
-
|
|
40
|
+
interruptScopes = Effect.fiberIdWith((id) => Effect.tap(Effect.forEach(this.sinks, ([, , scope]) => Scope.close(scope, Exit.interrupt(id)), DISCARD), () => {
|
|
42
41
|
this.sinks.clear();
|
|
43
|
-
this.scopes.clear();
|
|
44
42
|
}));
|
|
43
|
+
interrupt = this.interruptScopes;
|
|
45
44
|
addSink(sink, f) {
|
|
46
45
|
return withScope((innerScope) => Effect.contextWithEffect((ctx) => {
|
|
47
|
-
const entry = [sink, ctx];
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
});
|
|
52
|
-
const remove = Effect.sync(() => {
|
|
53
|
-
this.sinks.delete(entry);
|
|
54
|
-
this.scopes.delete(innerScope);
|
|
55
|
-
});
|
|
56
|
-
return Effect.zipRight(Scope.addFinalizer(innerScope, remove), Effect.zipRight(add, f(innerScope)));
|
|
46
|
+
const entry = [sink, ctx, innerScope];
|
|
47
|
+
this.sinks.add(entry);
|
|
48
|
+
const remove = Effect.sync(() => this.sinks.delete(entry));
|
|
49
|
+
return Effect.zipRight(Scope.addFinalizer(innerScope, remove), f(innerScope));
|
|
57
50
|
}), ExecutionStrategy.sequential);
|
|
58
51
|
}
|
|
59
52
|
subscriberCount = Effect.sync(() => this.sinks.size);
|
|
60
53
|
onEvent(a) {
|
|
61
54
|
if (this.sinks.size === 0)
|
|
62
55
|
return Effect.unit;
|
|
56
|
+
else if (this.sinks.size === 1) {
|
|
57
|
+
const [sink, ctx] = this.sinks.values().next().value;
|
|
58
|
+
return runSinkEvent(sink, ctx, a);
|
|
59
|
+
}
|
|
63
60
|
else {
|
|
64
|
-
return Effect.forEach(this.sinks, ([sink, ctx]) =>
|
|
61
|
+
return Effect.forEach(this.sinks, ([sink, ctx]) => runSinkEvent(sink, ctx, a), DISCARD);
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
64
|
onCause(cause) {
|
|
68
|
-
|
|
65
|
+
if (this.sinks.size === 0)
|
|
66
|
+
return Effect.unit;
|
|
67
|
+
else if (this.sinks.size === 1) {
|
|
68
|
+
const [sink, ctx] = this.sinks.values().next().value;
|
|
69
|
+
return runSinkCause(sink, ctx, cause);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return Effect.forEach(this.sinks, ([sink, ctx]) => runSinkCause(sink, ctx, cause), DISCARD);
|
|
73
|
+
}
|
|
69
74
|
}
|
|
70
75
|
}
|
|
76
|
+
function runSinkEvent(sink, ctx, a) {
|
|
77
|
+
return Effect.provide(Effect.catchAllCause(sink.onSuccess(a), sink.onFailure), ctx);
|
|
78
|
+
}
|
|
79
|
+
function runSinkCause(sink, ctx, cause) {
|
|
80
|
+
return Effect.provide(Effect.catchAllCause(sink.onFailure(cause), () => Effect.unit), ctx);
|
|
81
|
+
}
|
|
71
82
|
/**
|
|
72
83
|
* @internal
|
|
73
84
|
*/
|
|
@@ -90,7 +101,7 @@ export class HoldSubjectImpl extends SubjectImpl {
|
|
|
90
101
|
onSome: (exit) => Effect.zipRight(Exit.match(exit, sink), awaitScopeClose(scope))
|
|
91
102
|
}));
|
|
92
103
|
}
|
|
93
|
-
interrupt = Effect.
|
|
104
|
+
interrupt = Effect.tap(this.interruptScopes, () => MutableRef.set(this.lastValue, Option.none()));
|
|
94
105
|
}
|
|
95
106
|
/**
|
|
96
107
|
* @internal
|
|
@@ -109,7 +120,7 @@ export class ReplaySubjectImpl extends SubjectImpl {
|
|
|
109
120
|
run(sink) {
|
|
110
121
|
return this.addSink(sink, (scope) => Effect.zipRight(this.buffer.forEach((a) => sink.onSuccess(a)), awaitScopeClose(scope)));
|
|
111
122
|
}
|
|
112
|
-
interrupt = Effect.
|
|
123
|
+
interrupt = Effect.tap(this.interruptScopes, () => this.buffer.clear());
|
|
113
124
|
}
|
|
114
125
|
/**
|
|
115
126
|
* @since 1.20.0
|
package/dist/esm/Subject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Subject.js","sourceRoot":"","sources":["../../src/Subject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAA;AAGnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAG7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAoDpC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAW,CAAA;AAE1C;;GAEG;AACH,MAAM,OAAO,WAAkB,SAAQ,MAAyB;IACpD,KAAK,
|
|
1
|
+
{"version":3,"file":"Subject.js","sourceRoot":"","sources":["../../src/Subject.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Subject.ts
CHANGED
|
@@ -78,8 +78,7 @@ const DISCARD = { discard: true } as const
|
|
|
78
78
|
* @internal
|
|
79
79
|
*/
|
|
80
80
|
export class SubjectImpl<A, E> extends FxBase<A, E, Scope.Scope> implements Subject<A, E> {
|
|
81
|
-
protected sinks: Set<readonly [Sink<A, E, any>, Context.Context<any
|
|
82
|
-
protected scopes: Set<Scope.CloseableScope> = new Set()
|
|
81
|
+
protected sinks: Set<readonly [Sink<A, E, any>, Context.Context<any>, Scope.CloseableScope]> = new Set()
|
|
83
82
|
|
|
84
83
|
constructor() {
|
|
85
84
|
super()
|
|
@@ -101,16 +100,17 @@ export class SubjectImpl<A, E> extends FxBase<A, E, Scope.Scope> implements Subj
|
|
|
101
100
|
return this.onEvent(a)
|
|
102
101
|
}
|
|
103
102
|
|
|
104
|
-
|
|
103
|
+
protected interruptScopes = Effect.fiberIdWith((id) =>
|
|
105
104
|
Effect.tap(
|
|
106
|
-
Effect.forEach(this.
|
|
105
|
+
Effect.forEach(this.sinks, ([, , scope]) => Scope.close(scope, Exit.interrupt(id)), DISCARD),
|
|
107
106
|
() => {
|
|
108
107
|
this.sinks.clear()
|
|
109
|
-
this.scopes.clear()
|
|
110
108
|
}
|
|
111
109
|
)
|
|
112
110
|
)
|
|
113
111
|
|
|
112
|
+
readonly interrupt = this.interruptScopes
|
|
113
|
+
|
|
114
114
|
protected addSink<R, B, R2>(
|
|
115
115
|
sink: Sink<A, E, R>,
|
|
116
116
|
f: (scope: Scope.Scope) => Effect.Effect<B, never, R2>
|
|
@@ -118,19 +118,13 @@ export class SubjectImpl<A, E> extends FxBase<A, E, Scope.Scope> implements Subj
|
|
|
118
118
|
return withScope(
|
|
119
119
|
(innerScope) =>
|
|
120
120
|
Effect.contextWithEffect((ctx) => {
|
|
121
|
-
const entry = [sink, ctx] as const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
this.scopes.add(innerScope)
|
|
125
|
-
})
|
|
126
|
-
const remove = Effect.sync(() => {
|
|
127
|
-
this.sinks.delete(entry)
|
|
128
|
-
this.scopes.delete(innerScope)
|
|
129
|
-
})
|
|
121
|
+
const entry = [sink, ctx, innerScope] as const
|
|
122
|
+
this.sinks.add(entry)
|
|
123
|
+
const remove = Effect.sync(() => this.sinks.delete(entry))
|
|
130
124
|
|
|
131
125
|
return Effect.zipRight(
|
|
132
126
|
Scope.addFinalizer(innerScope, remove),
|
|
133
|
-
|
|
127
|
+
f(innerScope)
|
|
134
128
|
)
|
|
135
129
|
}),
|
|
136
130
|
ExecutionStrategy.sequential
|
|
@@ -141,20 +135,41 @@ export class SubjectImpl<A, E> extends FxBase<A, E, Scope.Scope> implements Subj
|
|
|
141
135
|
|
|
142
136
|
protected onEvent(a: A) {
|
|
143
137
|
if (this.sinks.size === 0) return Effect.unit
|
|
144
|
-
else {
|
|
145
|
-
|
|
138
|
+
else if (this.sinks.size === 1) {
|
|
139
|
+
const [sink, ctx] = this.sinks.values().next().value
|
|
140
|
+
return runSinkEvent(sink, ctx, a)
|
|
141
|
+
} else {
|
|
142
|
+
return Effect.forEach(
|
|
143
|
+
this.sinks,
|
|
144
|
+
([sink, ctx]) => runSinkEvent(sink, ctx, a),
|
|
145
|
+
DISCARD
|
|
146
|
+
)
|
|
146
147
|
}
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
protected onCause(cause: Cause.Cause<E>) {
|
|
150
|
-
return Effect.
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
151
|
+
if (this.sinks.size === 0) return Effect.unit
|
|
152
|
+
else if (this.sinks.size === 1) {
|
|
153
|
+
const [sink, ctx] = this.sinks.values().next().value
|
|
154
|
+
return runSinkCause(sink, ctx, cause)
|
|
155
|
+
} else {
|
|
156
|
+
return Effect.forEach(
|
|
157
|
+
this.sinks,
|
|
158
|
+
([sink, ctx]) => runSinkCause(sink, ctx, cause),
|
|
159
|
+
DISCARD
|
|
160
|
+
)
|
|
161
|
+
}
|
|
155
162
|
}
|
|
156
163
|
}
|
|
157
164
|
|
|
165
|
+
function runSinkEvent<A, E>(sink: Sink<A, E, any>, ctx: Context.Context<any>, a: A) {
|
|
166
|
+
return Effect.provide(Effect.catchAllCause(sink.onSuccess(a), sink.onFailure), ctx)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function runSinkCause<A, E>(sink: Sink<A, E, any>, ctx: Context.Context<any>, cause: Cause.Cause<E>) {
|
|
170
|
+
return Effect.provide(Effect.catchAllCause(sink.onFailure(cause), () => Effect.unit), ctx)
|
|
171
|
+
}
|
|
172
|
+
|
|
158
173
|
/**
|
|
159
174
|
* @internal
|
|
160
175
|
*/
|
|
@@ -185,11 +200,9 @@ export class HoldSubjectImpl<A, E> extends SubjectImpl<A, E> implements Subject<
|
|
|
185
200
|
}))
|
|
186
201
|
}
|
|
187
202
|
|
|
188
|
-
readonly interrupt = Effect.
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
() => MutableRef.set(this.lastValue, Option.none())
|
|
192
|
-
)
|
|
203
|
+
readonly interrupt = Effect.tap(
|
|
204
|
+
this.interruptScopes,
|
|
205
|
+
() => MutableRef.set(this.lastValue, Option.none())
|
|
193
206
|
)
|
|
194
207
|
}
|
|
195
208
|
|
|
@@ -216,11 +229,9 @@ export class ReplaySubjectImpl<A, E> extends SubjectImpl<A, E> {
|
|
|
216
229
|
)
|
|
217
230
|
}
|
|
218
231
|
|
|
219
|
-
readonly interrupt = Effect.
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
() => this.buffer.clear()
|
|
223
|
-
)
|
|
232
|
+
readonly interrupt = Effect.tap(
|
|
233
|
+
this.interruptScopes,
|
|
234
|
+
() => this.buffer.clear()
|
|
224
235
|
)
|
|
225
236
|
}
|
|
226
237
|
|