@typed/fx 1.22.2 → 1.23.0
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/Form.js.map +1 -1
- package/dist/cjs/Fx.js.map +1 -1
- package/dist/cjs/Idle.js.map +1 -1
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/Pull.js.map +1 -1
- package/dist/cjs/Subject.js.map +1 -1
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/helpers.js.map +1 -1
- package/dist/cjs/internal/keyed.js +1 -1
- package/dist/cjs/internal/keyed.js.map +1 -1
- package/dist/cjs/internal/share.js.map +1 -1
- package/dist/cjs/internal/sync-producer.js.map +1 -1
- package/dist/dts/AsyncData.d.ts +33 -33
- package/dist/dts/AsyncData.d.ts.map +1 -1
- package/dist/dts/Emitter.d.ts +6 -6
- package/dist/dts/Emitter.d.ts.map +1 -1
- package/dist/dts/Form.d.ts +12 -12
- package/dist/dts/Form.d.ts.map +1 -1
- package/dist/dts/FormEntry.d.ts +9 -9
- package/dist/dts/FormEntry.d.ts.map +1 -1
- package/dist/dts/Fx.d.ts +113 -113
- package/dist/dts/Fx.d.ts.map +1 -1
- package/dist/dts/Guard.d.ts +5 -5
- package/dist/dts/Guard.d.ts.map +1 -1
- package/dist/dts/Idle.d.ts +12 -12
- package/dist/dts/Idle.d.ts.map +1 -1
- package/dist/dts/Pull.d.ts +5 -5
- package/dist/dts/Pull.d.ts.map +1 -1
- package/dist/dts/Push.d.ts +20 -20
- package/dist/dts/Push.d.ts.map +1 -1
- package/dist/dts/RefArray.d.ts +33 -33
- package/dist/dts/RefArray.d.ts.map +1 -1
- package/dist/dts/RefChunk.d.ts +27 -27
- package/dist/dts/RefChunk.d.ts.map +1 -1
- package/dist/dts/RefHashMap.d.ts +17 -17
- package/dist/dts/RefHashMap.d.ts.map +1 -1
- package/dist/dts/RefHashSet.d.ts +5 -5
- package/dist/dts/RefHashSet.d.ts.map +1 -1
- package/dist/dts/RefSubject.d.ts +53 -53
- package/dist/dts/RefSubject.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +31 -31
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +11 -11
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Subject.d.ts +5 -5
- package/dist/dts/Subject.d.ts.map +1 -1
- package/dist/dts/Versioned.d.ts +11 -11
- package/dist/dts/Versioned.d.ts.map +1 -1
- package/dist/dts/internal/DeferredRef.d.ts +7 -7
- package/dist/dts/internal/core.d.ts +51 -51
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/effect-loop-operator.d.ts +4 -4
- package/dist/dts/internal/effect-loop-operator.d.ts.map +1 -1
- package/dist/dts/internal/effect-operator.d.ts +11 -11
- package/dist/dts/internal/effect-operator.d.ts.map +1 -1
- package/dist/dts/internal/effect-producer.d.ts +9 -9
- package/dist/dts/internal/effect-producer.d.ts.map +1 -1
- package/dist/dts/internal/helpers.d.ts +25 -25
- package/dist/dts/internal/helpers.d.ts.map +1 -1
- package/dist/dts/internal/protos.d.ts +9 -9
- package/dist/dts/internal/protos.d.ts.map +1 -1
- package/dist/dts/internal/provide.d.ts +10 -10
- package/dist/dts/internal/provide.d.ts.map +1 -1
- package/dist/dts/internal/share.d.ts +2 -2
- package/dist/dts/internal/share.d.ts.map +1 -1
- package/dist/dts/internal/sync-producer.d.ts +6 -6
- package/dist/dts/internal/sync-producer.d.ts.map +1 -1
- package/dist/esm/Form.js.map +1 -1
- package/dist/esm/FormEntry.js.map +1 -1
- package/dist/esm/Fx.js.map +1 -1
- package/dist/esm/Idle.js.map +1 -1
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Pull.js.map +1 -1
- package/dist/esm/RefSubject.js.map +1 -1
- package/dist/esm/Subject.js.map +1 -1
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/helpers.js.map +1 -1
- package/dist/esm/internal/keyed.js +1 -1
- package/dist/esm/internal/keyed.js.map +1 -1
- package/dist/esm/internal/share.js.map +1 -1
- package/dist/esm/internal/sync-producer.js.map +1 -1
- package/package.json +6 -6
- package/src/AsyncData.ts +86 -86
- package/src/Emitter.ts +9 -9
- package/src/Form.ts +39 -39
- package/src/FormEntry.ts +25 -25
- package/src/Fx.ts +122 -124
- package/src/Guard.ts +7 -7
- package/src/Idle.ts +23 -23
- package/src/Match.ts +3 -3
- package/src/Pull.ts +10 -10
- package/src/Push.ts +33 -33
- package/src/RefArray.ts +36 -36
- package/src/RefChunk.ts +30 -30
- package/src/RefHashMap.ts +24 -24
- package/src/RefHashSet.ts +6 -6
- package/src/RefSubject.ts +184 -184
- package/src/Sink.ts +91 -91
- package/src/Stream.ts +19 -19
- package/src/Subject.ts +21 -21
- package/src/Versioned.ts +23 -23
- package/src/internal/DeferredRef.ts +6 -6
- package/src/internal/core.ts +132 -132
- package/src/internal/effect-loop-operator.ts +4 -4
- package/src/internal/effect-operator.ts +13 -13
- package/src/internal/effect-producer.ts +14 -14
- package/src/internal/helpers.ts +36 -36
- package/src/internal/keyed.ts +3 -3
- package/src/internal/protos.ts +12 -12
- package/src/internal/provide.ts +10 -10
- package/src/internal/share.ts +4 -4
- package/src/internal/sync-producer.ts +12 -12
package/src/FormEntry.ts
CHANGED
|
@@ -18,7 +18,7 @@ import { ComputedTypeId, RefSubjectTypeId } from "./TypeId.js"
|
|
|
18
18
|
*/
|
|
19
19
|
export interface FormEntry<out R, in out E, in out I, in out O> extends RefSubject.RefSubject<R, E | ParseError, I> {
|
|
20
20
|
readonly name: PropertyKey
|
|
21
|
-
readonly schema: Schema.Schema<
|
|
21
|
+
readonly schema: Schema.Schema<O, I, R>
|
|
22
22
|
readonly decoded: RefSubject.Computed<R, E | ParseError, O>
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -30,7 +30,7 @@ export namespace FormEntry {
|
|
|
30
30
|
* @since 1.18.0
|
|
31
31
|
*/
|
|
32
32
|
export interface Derived<R, R2, E, I, O> extends FormEntry<R, E, I, O> {
|
|
33
|
-
readonly persist: Effect.Effect<
|
|
33
|
+
readonly persist: Effect.Effect<O, E | ParseError, R2>
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -39,7 +39,7 @@ export namespace FormEntry {
|
|
|
39
39
|
*/
|
|
40
40
|
export interface FormEntryOptions<R, I, O> {
|
|
41
41
|
readonly name: PropertyKey
|
|
42
|
-
readonly schema: Schema.Schema<
|
|
42
|
+
readonly schema: Schema.Schema<O, I, R>
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/**
|
|
@@ -52,9 +52,9 @@ export interface FormEntryOptions<R, I, O> {
|
|
|
52
52
|
export type MakeFormEntry<R0, I, O> = {
|
|
53
53
|
<R, E>(
|
|
54
54
|
ref: RefSubject.RefSubject<R, E, O>
|
|
55
|
-
): Effect.Effect<
|
|
56
|
-
<R, E>(fx: Fx.Fx<R, E, O>): Effect.Effect<
|
|
57
|
-
<R, E>(effect: Effect.Effect<
|
|
55
|
+
): Effect.Effect<FormEntry.Derived<never, R, E, I, O>, never, R0 | R | Scope.Scope>
|
|
56
|
+
<R, E>(fx: Fx.Fx<R, E, O>): Effect.Effect<FormEntry<never, E, I, O>, never, R0 | R | Scope.Scope>
|
|
57
|
+
<R, E>(effect: Effect.Effect<O, E, R>): Effect.Effect<FormEntry<never, E, I, O>, never, R0 | R | Scope.Scope>
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
/**
|
|
@@ -64,9 +64,9 @@ export type MakeFormEntry<R0, I, O> = {
|
|
|
64
64
|
export type MakeInputFormEntry<R0, I, O> = {
|
|
65
65
|
<R, E>(
|
|
66
66
|
ref: RefSubject.RefSubject<R, E, I>
|
|
67
|
-
): Effect.Effect<
|
|
68
|
-
<R, E>(fx: Fx.Fx<R, E, I>): Effect.Effect<
|
|
69
|
-
<R, E>(effect: Effect.Effect<
|
|
67
|
+
): Effect.Effect<FormEntry.Derived<R0, R, E, I, O>, never, R | Scope.Scope>
|
|
68
|
+
<R, E>(fx: Fx.Fx<R, E, I>): Effect.Effect<FormEntry<R0, E, I, O>, never, R | Scope.Scope>
|
|
69
|
+
<R, E>(effect: Effect.Effect<I, E, R>): Effect.Effect<FormEntry<R0, E, I, O>, never, R | Scope.Scope>
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
/**
|
|
@@ -75,7 +75,7 @@ export type MakeInputFormEntry<R0, I, O> = {
|
|
|
75
75
|
export function derive<R, I, O>(options: FormEntryOptions<R, I, O>): MakeFormEntry<R, I, O> {
|
|
76
76
|
const encode = Schema.encode(options.schema)
|
|
77
77
|
const decode = Schema.decode(options.schema)
|
|
78
|
-
const makeFormEntry = <R2, E>(input: RefSubject.RefSubject<R2, E, O> | Fx.Fx<R2, E, O> | Effect.Effect<
|
|
78
|
+
const makeFormEntry = <R2, E>(input: RefSubject.RefSubject<R2, E, O> | Fx.Fx<R2, E, O> | Effect.Effect<O, E, R2>) => {
|
|
79
79
|
const initial = Fx.mapEffect(Effect.isEffect(input) ? Fx.fromEffect(input) : input, (o) => encode(o, parseOptions))
|
|
80
80
|
|
|
81
81
|
return Effect.map(
|
|
@@ -84,7 +84,7 @@ export function derive<R, I, O>(options: FormEntryOptions<R, I, O>): MakeFormEnt
|
|
|
84
84
|
}),
|
|
85
85
|
(inputRef): FormEntry<R, E, I, O> | FormEntry.Derived<R, R2, E, I, O> => {
|
|
86
86
|
if (RefSubject.isRefSubject<R2, E, O>(input)) {
|
|
87
|
-
const persist: Effect.Effect<
|
|
87
|
+
const persist: Effect.Effect<O, ParseError | E, R | R2> = Effect.flatMap(
|
|
88
88
|
Effect.flatMap(
|
|
89
89
|
inputRef,
|
|
90
90
|
(i) => decode(i, parseOptions)
|
|
@@ -113,14 +113,14 @@ export function derive<R, I, O>(options: FormEntryOptions<R, I, O>): MakeFormEnt
|
|
|
113
113
|
*/
|
|
114
114
|
export function deriveInput<R, I, O>(options: FormEntryOptions<R, I, O>): MakeInputFormEntry<R, I, O> {
|
|
115
115
|
const decode = Schema.decode(options.schema)
|
|
116
|
-
const makeFormEntry = <R2, E>(input: RefSubject.RefSubject<R2, E, I> | Fx.Fx<R2, E, I> | Effect.Effect<
|
|
116
|
+
const makeFormEntry = <R2, E>(input: RefSubject.RefSubject<R2, E, I> | Fx.Fx<R2, E, I> | Effect.Effect<I, E, R2>) => {
|
|
117
117
|
const initial: Fx.Fx<R2, E | ParseError, I> = Effect.isEffect(input) ? Fx.fromEffect(input) : input
|
|
118
118
|
|
|
119
119
|
return Effect.map(
|
|
120
120
|
RefSubject.make(initial, { eq: Equivalence.make(Schema.from(options.schema)) }),
|
|
121
121
|
(inputRef): FormEntry<R, E, I, O> | FormEntry.Derived<R, R2, E, I, O> => {
|
|
122
122
|
if (RefSubject.isRefSubject<R2, E, O>(input)) {
|
|
123
|
-
const persist: Effect.Effect<
|
|
123
|
+
const persist: Effect.Effect<O, ParseError | E, R | R2> = Effect.flatMap(
|
|
124
124
|
Effect.flatMap(
|
|
125
125
|
inputRef,
|
|
126
126
|
(i) => RefSubject.set(input as RefSubject.RefSubject<R2, E, I>, i)
|
|
@@ -156,14 +156,14 @@ class FromEntryImpl<R, E, I, O> extends FxEffectBase<R | Scope.Scope, E | ParseE
|
|
|
156
156
|
readonly [RefSubjectTypeId]: RefSubjectTypeId = RefSubjectTypeId
|
|
157
157
|
|
|
158
158
|
readonly decoded: RefSubject.Computed<R, ParseError | E, O>
|
|
159
|
-
readonly version: Effect.Effect<
|
|
160
|
-
readonly subscriberCount: Effect.Effect<
|
|
161
|
-
readonly interrupt: Effect.Effect<
|
|
159
|
+
readonly version: Effect.Effect<number, ParseError | E>
|
|
160
|
+
readonly subscriberCount: Effect.Effect<number>
|
|
161
|
+
readonly interrupt: Effect.Effect<void>
|
|
162
162
|
|
|
163
163
|
constructor(
|
|
164
164
|
readonly ref: RefSubject.RefSubject<never, E | ParseError, I>,
|
|
165
165
|
readonly name: PropertyKey,
|
|
166
|
-
readonly schema: Schema.Schema<
|
|
166
|
+
readonly schema: Schema.Schema<O, I, R>
|
|
167
167
|
) {
|
|
168
168
|
super()
|
|
169
169
|
|
|
@@ -174,25 +174,25 @@ class FromEntryImpl<R, E, I, O> extends FxEffectBase<R | Scope.Scope, E | ParseE
|
|
|
174
174
|
this.interrupt = ref.interrupt
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
run<R3>(sink: Sink.Sink<R3, E | ParseError, I>): Effect.Effect<R3 | Scope.Scope
|
|
177
|
+
run<R3>(sink: Sink.Sink<R3, E | ParseError, I>): Effect.Effect<unknown, never, R3 | Scope.Scope> {
|
|
178
178
|
return this.ref.run(sink)
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
toEffect(): Effect.Effect<
|
|
181
|
+
toEffect(): Effect.Effect<I, E | ParseError> {
|
|
182
182
|
return this.ref
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
runUpdates<R2, E2, B>(
|
|
186
|
-
f: (ref: RefSubject.GetSetDelete<never, E | ParseError, I>) => Effect.Effect<
|
|
187
|
-
): Effect.Effect<
|
|
186
|
+
f: (ref: RefSubject.GetSetDelete<never, E | ParseError, I>) => Effect.Effect<B, E2, R2>
|
|
187
|
+
): Effect.Effect<B, E2, R2> {
|
|
188
188
|
return this.ref.runUpdates(f)
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
onFailure(cause: Cause<E | ParseError>): Effect.Effect<
|
|
191
|
+
onFailure(cause: Cause<E | ParseError>): Effect.Effect<unknown> {
|
|
192
192
|
return this.ref.onFailure(cause)
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
-
onSuccess(value: I): Effect.Effect<
|
|
195
|
+
onSuccess(value: I): Effect.Effect<unknown> {
|
|
196
196
|
return this.ref.onSuccess(value)
|
|
197
197
|
}
|
|
198
198
|
}
|
|
@@ -203,8 +203,8 @@ class DerivedFormEntryImpl<R, R2, E, I, O> extends FromEntryImpl<R, E, I, O>
|
|
|
203
203
|
constructor(
|
|
204
204
|
ref: RefSubject.RefSubject<never, E | ParseError, I>,
|
|
205
205
|
name: PropertyKey,
|
|
206
|
-
schema: Schema.Schema<
|
|
207
|
-
readonly persist: Effect.Effect<
|
|
206
|
+
schema: Schema.Schema<O, I, R>,
|
|
207
|
+
readonly persist: Effect.Effect<O, E | ParseError, R2>
|
|
208
208
|
) {
|
|
209
209
|
super(ref, name, schema)
|
|
210
210
|
}
|