@effect-atom/atom 0.1.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/Atom/package.json +6 -0
- package/AtomRef/package.json +6 -0
- package/Hydration/package.json +6 -0
- package/LICENSE +21 -0
- package/README.md +3 -0
- package/Registry/package.json +6 -0
- package/Result/package.json +6 -0
- package/dist/cjs/Atom.js +1079 -0
- package/dist/cjs/Atom.js.map +1 -0
- package/dist/cjs/AtomRef.js +261 -0
- package/dist/cjs/AtomRef.js.map +1 -0
- package/dist/cjs/Hydration.js +100 -0
- package/dist/cjs/Hydration.js.map +1 -0
- package/dist/cjs/Registry.js +128 -0
- package/dist/cjs/Registry.js.map +1 -0
- package/dist/cjs/Result.js +454 -0
- package/dist/cjs/Result.js.map +1 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/registry.js +701 -0
- package/dist/cjs/internal/registry.js.map +1 -0
- package/dist/cjs/internal/runtime.js +92 -0
- package/dist/cjs/internal/runtime.js.map +1 -0
- package/dist/dts/Atom.d.ts +597 -0
- package/dist/dts/Atom.d.ts.map +1 -0
- package/dist/dts/AtomRef.d.ts +55 -0
- package/dist/dts/AtomRef.d.ts.map +1 -0
- package/dist/dts/Hydration.d.ts +27 -0
- package/dist/dts/Hydration.d.ts.map +1 -0
- package/dist/dts/Registry.d.ts +115 -0
- package/dist/dts/Registry.d.ts.map +1 -0
- package/dist/dts/Result.d.ts +351 -0
- package/dist/dts/Result.d.ts.map +1 -0
- package/dist/dts/index.d.ts +21 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/internal/registry.d.ts +2 -0
- package/dist/dts/internal/registry.d.ts.map +1 -0
- package/dist/dts/internal/runtime.d.ts +2 -0
- package/dist/dts/internal/runtime.d.ts.map +1 -0
- package/dist/esm/Atom.js +1029 -0
- package/dist/esm/Atom.js.map +1 -0
- package/dist/esm/AtomRef.js +232 -0
- package/dist/esm/AtomRef.js.map +1 -0
- package/dist/esm/Hydration.js +71 -0
- package/dist/esm/Hydration.js.map +1 -0
- package/dist/esm/Registry.js +98 -0
- package/dist/esm/Registry.js.map +1 -0
- package/dist/esm/Result.js +403 -0
- package/dist/esm/Result.js.map +1 -0
- package/dist/esm/index.js +21 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/registry.js +672 -0
- package/dist/esm/internal/registry.js.map +1 -0
- package/dist/esm/internal/runtime.js +64 -0
- package/dist/esm/internal/runtime.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +72 -0
- package/src/Atom.ts +1865 -0
- package/src/AtomRef.ts +282 -0
- package/src/Hydration.ts +98 -0
- package/src/Registry.ts +204 -0
- package/src/Result.ts +767 -0
- package/src/index.ts +24 -0
- package/src/internal/registry.ts +810 -0
- package/src/internal/runtime.ts +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Atom.js","names":["KeyValueStore","Arr","NoSuchElementException","Cause","Channel","Chunk","EffectContext","Duration","Effect","Either","Exit","Fiber","FiberRef","constant","constVoid","dual","pipe","globalValue","Inspectable","Layer","MutableHashMap","Option","pipeArguments","Runtime","Schema","Scope","Stream","Subscribable","SubscriptionRef","internalRegistry","runCallbackSync","Registry","AtomRegistry","Result","TypeId","WritableTypeId","AtomProto","arguments","toJSON","_id","keepAlive","lazy","label","toString","format","NodeInspectSymbol","RuntimeProto","atom","arg","options","read","makeRead","readable","get","previous","self","runtimeResult","_tag","replacePrevious","value","fn","length","makeFnRuntime","pull","pullSignal","state","pullAtom","makeEffect","makeStreamPullEffect","initial","makeStreamPull","subscriptionRef","ref","makeSubRef","SubscriptionRefTypeId","runtime","getOrThrow","readSubscribable","subscribable","makeSubscribable","isSubscribable","write","argAtom","makeResultFn","writable","WritableProto","isWritable","refresh","Object","create","constSetSelf","ctx","setSelf","make","readOrAtom","isDataType","u","providedRuntime","EffectTypeId","effect","StreamTypeId","stream","initialValue","_get","undefined","success","uninterruptible","defaultRuntime","scope","runSync","addFinalizer","runFork","close","void","contextMap","Map","context","unsafeMap","set","key","registry","scopedRuntime","unsafeMake","fiberRefs","runtimeFlags","syncResult","isAsync","cancel","exit","fromExitWithPrevious","waitingFrom","waiting","globalLayer","factory","layerAtom","provideMerge","layer","build","flatMap","buildWithMemoMap","memoMap","provide","addGlobalLayer","defaultMemoMap","makeMemoMap","makeStream","writer","readWithCause","onInput","input","suspend","last","onFailure","cause","sync","failureWithPrevious","onDone","_done","match","onNone","failWithPrevious","onSome","a","registryRuntime","add","runDrain","pipeTo","toChannel","sub","changes","runForEach","runCallback","refAtom","isSuccess","subAtom","fnSync","args","makeFnSync","f","hasInitialValue","isFn","counter","none","some","batch","refreshSelf","Reset","Symbol","for","makeFn","toPull","pullChunk","semaphore","unsafeMakeSemaphore","fiber","getCurrentFiber","currentContext","acc","empty","locally","onLeft","items","toReadonlyArray","isNonEmptyArray","fail","succeed","done","onRight","chunk","disableAccumulation","appendAll","arr","pullWithSemaphore","withPermits","getFiberRefs","cancels","Set","once","subscribe","delete","result","pending","size","_","family","WeakRef","FinalizationRegistry","atoms","atomEntry","newAtom","remove","flatMapNullable","deref","register","withFallback","fallback","assign","getPrototypeOf","autoDispose","setLazy","withLabel","name","Error","stack","split","setIdleTTL","duration","idleTTL","toMillis","transform","map","mapResult","debounce","millis","timeout","update","clearTimeout","val","setTimeout","optimistic","writeAtom","lastValue","isResult","current","getOrUndefined","timestamp","transitions","has","isFailure","immediate","clear","optimisticFn","transition","reducer","onExit","suspendOnWaiting","fromExit","as","windowFocusSignal","count","document","visibilityState","window","addEventListener","removeEventListener","makeRefreshOnSignal","signal","refreshOnWindowFocus","kvs","setAtom","fnUntraced","store","forSchema","schema","resultAtom","flatten","mount","getOrElse","defaultValue","searchParam","decode","decodeEither","encode","encodeEither","handleUpdate","searchParamState","updating","searchParams","URLSearchParams","location","search","newValue","getRight","encoded","v","updates","zipRight","updateSearchParams","entries","newUrl","pathname","history","pushState","toStream","unwrap","toStreamResult","modify","getResult","SerializableTypeId","isSerializable","serializable","encodeSync","decodeSync","ServerValueTypeId","withServerValue","withServerValueInitial","getServerValue"],"sources":["../../src/Atom.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Equal from "effect/Equal";
|
|
5
|
+
import { globalValue } from "effect/GlobalValue";
|
|
6
|
+
import * as Hash from "effect/Hash";
|
|
7
|
+
/**
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
* @category type ids
|
|
10
|
+
*/
|
|
11
|
+
export const TypeId = "~effect-atom/atom/AtomRef";
|
|
12
|
+
/**
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category constructors
|
|
15
|
+
*/
|
|
16
|
+
export const make = value => new AtomRefImpl(value);
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category constructors
|
|
20
|
+
*/
|
|
21
|
+
export const collection = items => new CollectionImpl(items);
|
|
22
|
+
const keyState = /*#__PURE__*/globalValue("@effect-atom/atom/AtomRef/keyState", () => ({
|
|
23
|
+
count: 0,
|
|
24
|
+
generate() {
|
|
25
|
+
return `AtomRef-${this.count++}`;
|
|
26
|
+
}
|
|
27
|
+
}));
|
|
28
|
+
class ReadonlyRefImpl {
|
|
29
|
+
value;
|
|
30
|
+
[TypeId];
|
|
31
|
+
key = /*#__PURE__*/keyState.generate();
|
|
32
|
+
constructor(value) {
|
|
33
|
+
this.value = value;
|
|
34
|
+
this[TypeId] = TypeId;
|
|
35
|
+
}
|
|
36
|
+
[Equal.symbol](that) {
|
|
37
|
+
return Equal.equals(this.value, that.value);
|
|
38
|
+
}
|
|
39
|
+
[Hash.symbol]() {
|
|
40
|
+
return Hash.hash(this.value);
|
|
41
|
+
}
|
|
42
|
+
listeners = [];
|
|
43
|
+
listenerCount = 0;
|
|
44
|
+
notify(a) {
|
|
45
|
+
for (let i = 0; i < this.listenerCount; i++) {
|
|
46
|
+
this.listeners[i](a);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
subscribe(f) {
|
|
50
|
+
this.listeners.push(f);
|
|
51
|
+
this.listenerCount++;
|
|
52
|
+
return () => {
|
|
53
|
+
const index = this.listeners.indexOf(f);
|
|
54
|
+
if (index !== -1) {
|
|
55
|
+
this.listeners[index] = this.listeners[this.listenerCount - 1];
|
|
56
|
+
this.listeners.pop();
|
|
57
|
+
this.listenerCount--;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
map(f) {
|
|
62
|
+
return new MapRefImpl(this, f);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
class AtomRefImpl extends ReadonlyRefImpl {
|
|
66
|
+
prop(prop) {
|
|
67
|
+
return new PropRefImpl(this, prop);
|
|
68
|
+
}
|
|
69
|
+
set(value) {
|
|
70
|
+
if (Equal.equals(value, this.value)) {
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
this.value = value;
|
|
74
|
+
this.notify(value);
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
update(f) {
|
|
78
|
+
return this.set(f(this.value));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
class MapRefImpl {
|
|
82
|
+
parent;
|
|
83
|
+
transform;
|
|
84
|
+
[TypeId];
|
|
85
|
+
key = /*#__PURE__*/keyState.generate();
|
|
86
|
+
constructor(parent, transform) {
|
|
87
|
+
this.parent = parent;
|
|
88
|
+
this.transform = transform;
|
|
89
|
+
this[TypeId] = TypeId;
|
|
90
|
+
}
|
|
91
|
+
[Equal.symbol](that) {
|
|
92
|
+
return Equal.equals(this.value, that.value);
|
|
93
|
+
}
|
|
94
|
+
[Hash.symbol]() {
|
|
95
|
+
return Hash.hash(this.value);
|
|
96
|
+
}
|
|
97
|
+
get value() {
|
|
98
|
+
return this.transform(this.parent.value);
|
|
99
|
+
}
|
|
100
|
+
subscribe(f) {
|
|
101
|
+
let previous = this.transform(this.parent.value);
|
|
102
|
+
return this.parent.subscribe(a => {
|
|
103
|
+
const next = this.transform(a);
|
|
104
|
+
if (Equal.equals(next, previous)) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
previous = next;
|
|
108
|
+
f(next);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
map(f) {
|
|
112
|
+
return new MapRefImpl(this, f);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
class PropRefImpl {
|
|
116
|
+
parent;
|
|
117
|
+
_prop;
|
|
118
|
+
[TypeId];
|
|
119
|
+
key = /*#__PURE__*/keyState.generate();
|
|
120
|
+
previous;
|
|
121
|
+
constructor(parent, _prop) {
|
|
122
|
+
this.parent = parent;
|
|
123
|
+
this._prop = _prop;
|
|
124
|
+
this[TypeId] = TypeId;
|
|
125
|
+
this.previous = parent.value[_prop];
|
|
126
|
+
}
|
|
127
|
+
[Equal.symbol](that) {
|
|
128
|
+
return Equal.equals(this.value, that.value);
|
|
129
|
+
}
|
|
130
|
+
[Hash.symbol]() {
|
|
131
|
+
return Hash.hash(this.value);
|
|
132
|
+
}
|
|
133
|
+
get value() {
|
|
134
|
+
if (this.parent.value && this._prop in this.parent.value) {
|
|
135
|
+
this.previous = this.parent.value[this._prop];
|
|
136
|
+
}
|
|
137
|
+
return this.previous;
|
|
138
|
+
}
|
|
139
|
+
subscribe(f) {
|
|
140
|
+
let previous = this.value;
|
|
141
|
+
return this.parent.subscribe(a => {
|
|
142
|
+
if (!a || !(this._prop in a)) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const next = a[this._prop];
|
|
146
|
+
if (Equal.equals(next, previous)) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
previous = next;
|
|
150
|
+
f(next);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
map(f) {
|
|
154
|
+
return new MapRefImpl(this, f);
|
|
155
|
+
}
|
|
156
|
+
prop(prop) {
|
|
157
|
+
return new PropRefImpl(this, prop);
|
|
158
|
+
}
|
|
159
|
+
set(value) {
|
|
160
|
+
if (Array.isArray(this.parent.value)) {
|
|
161
|
+
const newArray = this.parent.value.slice();
|
|
162
|
+
newArray[this._prop] = value;
|
|
163
|
+
this.parent.set(newArray);
|
|
164
|
+
} else {
|
|
165
|
+
this.parent.set({
|
|
166
|
+
...this.parent.value,
|
|
167
|
+
[this._prop]: value
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return this;
|
|
171
|
+
}
|
|
172
|
+
update(f) {
|
|
173
|
+
if (Array.isArray(this.parent.value)) {
|
|
174
|
+
const newArray = this.parent.value.slice();
|
|
175
|
+
newArray[this._prop] = f(this.parent.value[this._prop]);
|
|
176
|
+
this.parent.set(newArray);
|
|
177
|
+
} else {
|
|
178
|
+
this.parent.set({
|
|
179
|
+
...this.parent.value,
|
|
180
|
+
[this._prop]: f(this.parent.value[this._prop])
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
return this;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
class CollectionImpl extends ReadonlyRefImpl {
|
|
187
|
+
constructor(items) {
|
|
188
|
+
super([]);
|
|
189
|
+
for (const item of items) {
|
|
190
|
+
this.value.push(this.makeRef(item));
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
makeRef(value) {
|
|
194
|
+
const ref = new AtomRefImpl(value);
|
|
195
|
+
const notify = value => {
|
|
196
|
+
ref.notify(value);
|
|
197
|
+
this.notify(this.value);
|
|
198
|
+
};
|
|
199
|
+
return new Proxy(ref, {
|
|
200
|
+
get(target, p, _receiver) {
|
|
201
|
+
if (p === "notify") {
|
|
202
|
+
return notify;
|
|
203
|
+
}
|
|
204
|
+
return target[p];
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
push(item) {
|
|
209
|
+
const ref = this.makeRef(item);
|
|
210
|
+
this.value.push(ref);
|
|
211
|
+
this.notify(this.value);
|
|
212
|
+
return this;
|
|
213
|
+
}
|
|
214
|
+
insertAt(index, item) {
|
|
215
|
+
const ref = this.makeRef(item);
|
|
216
|
+
this.value.splice(index, 0, ref);
|
|
217
|
+
this.notify(this.value);
|
|
218
|
+
return this;
|
|
219
|
+
}
|
|
220
|
+
remove(ref) {
|
|
221
|
+
const index = this.value.indexOf(ref);
|
|
222
|
+
if (index !== -1) {
|
|
223
|
+
this.value.splice(index, 1);
|
|
224
|
+
this.notify(this.value);
|
|
225
|
+
}
|
|
226
|
+
return this;
|
|
227
|
+
}
|
|
228
|
+
toArray() {
|
|
229
|
+
return this.value.map(ref => ref.value);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=AtomRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtomRef.js","names":["Equal","globalValue","Hash","TypeId","make","value","AtomRefImpl","collection","items","CollectionImpl","keyState","count","generate","ReadonlyRefImpl","key","constructor","symbol","that","equals","hash","listeners","listenerCount","notify","a","i","subscribe","f","push","index","indexOf","pop","map","MapRefImpl","prop","PropRefImpl","set","update","parent","transform","previous","next","_prop","Array","isArray","newArray","slice","item","makeRef","ref","Proxy","get","target","p","_receiver","insertAt","splice","remove","toArray"],"sources":["../../src/AtomRef.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Arr from "effect/Array";
|
|
5
|
+
import * as Atom from "./Atom.js";
|
|
6
|
+
import * as Result from "./Result.js";
|
|
7
|
+
/**
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
* @category dehydration
|
|
10
|
+
*/
|
|
11
|
+
export const dehydrate = (registry, options) => {
|
|
12
|
+
const encodeInitialResultMode = options?.encodeInitialAs ?? "ignore";
|
|
13
|
+
const arr = Arr.empty();
|
|
14
|
+
const now = Date.now();
|
|
15
|
+
registry.getNodes().forEach((node, key) => {
|
|
16
|
+
if (!Atom.isSerializable(node.atom)) return;
|
|
17
|
+
const atom = node.atom;
|
|
18
|
+
const value = node.value();
|
|
19
|
+
const isInitial = Result.isResult(value) && Result.isInitial(value);
|
|
20
|
+
if (encodeInitialResultMode === "ignore" && isInitial) return;
|
|
21
|
+
const encodedValue = atom[Atom.SerializableTypeId].encode(value);
|
|
22
|
+
// Create a promise that resolves when the atom moves out of Initial state
|
|
23
|
+
let resultPromise;
|
|
24
|
+
if (encodeInitialResultMode === "promise" && isInitial) {
|
|
25
|
+
resultPromise = new Promise(resolve => {
|
|
26
|
+
const unsubscribe = registry.subscribe(atom, newValue => {
|
|
27
|
+
if (Result.isResult(newValue) && !Result.isInitial(newValue)) {
|
|
28
|
+
resolve(atom[Atom.SerializableTypeId].encode(newValue));
|
|
29
|
+
unsubscribe();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
arr.push({
|
|
35
|
+
key: key,
|
|
36
|
+
value: encodedValue,
|
|
37
|
+
dehydratedAt: now,
|
|
38
|
+
resultPromise
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
return arr;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* @since 1.0.0
|
|
45
|
+
* @category hydration
|
|
46
|
+
*/
|
|
47
|
+
export const hydrate = (registry, dehydratedState) => {
|
|
48
|
+
for (const datom of dehydratedState) {
|
|
49
|
+
registry.setSerializable(datom.key, datom.value);
|
|
50
|
+
// If there's a resultPromise, it means this was in Initial state when dehydrated
|
|
51
|
+
// and we should wait for it to resolve to a non-Initial state, then update the registry
|
|
52
|
+
if (!datom.resultPromise) continue;
|
|
53
|
+
datom.resultPromise.then(resolvedValue => {
|
|
54
|
+
// Try to update the existing node directly instead of using setSerializable
|
|
55
|
+
const nodes = registry.getNodes();
|
|
56
|
+
const node = nodes.get(datom.key);
|
|
57
|
+
if (node) {
|
|
58
|
+
// Decode the resolved value using the node's atom serializable decoder
|
|
59
|
+
const atom = node.atom;
|
|
60
|
+
if (atom[Atom.SerializableTypeId]) {
|
|
61
|
+
const decoded = atom[Atom.SerializableTypeId].decode(resolvedValue);
|
|
62
|
+
node.setValue(decoded);
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
65
|
+
// Fallback to setSerializable if node doesn't exist yet
|
|
66
|
+
registry.setSerializable(datom.key, resolvedValue);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=Hydration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hydration.js","names":["Arr","Atom","Result","dehydrate","registry","options","encodeInitialResultMode","encodeInitialAs","arr","empty","now","Date","getNodes","forEach","node","key","isSerializable","atom","value","isInitial","isResult","encodedValue","SerializableTypeId","encode","resultPromise","Promise","resolve","unsubscribe","subscribe","newValue","push","dehydratedAt","hydrate","dehydratedState","datom","setSerializable","then","resolvedValue","nodes","get","decoded","decode","setValue"],"sources":["../../src/Hydration.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Context from "effect/Context";
|
|
5
|
+
import * as Effect from "effect/Effect";
|
|
6
|
+
import * as FiberRef from "effect/FiberRef";
|
|
7
|
+
import { dual } from "effect/Function";
|
|
8
|
+
import * as Layer from "effect/Layer";
|
|
9
|
+
import * as Mailbox from "effect/Mailbox";
|
|
10
|
+
import { hasProperty } from "effect/Predicate";
|
|
11
|
+
import * as Scope from "effect/Scope";
|
|
12
|
+
import * as Stream from "effect/Stream";
|
|
13
|
+
import * as internal from "./internal/registry.js";
|
|
14
|
+
import * as Result from "./Result.js";
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
* @category type ids
|
|
18
|
+
*/
|
|
19
|
+
export const TypeId = "~effect-atom/atom/Registry";
|
|
20
|
+
/**
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
* @category guards
|
|
23
|
+
*/
|
|
24
|
+
export const isRegistry = u => hasProperty(u, TypeId);
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
* @category constructors
|
|
28
|
+
*/
|
|
29
|
+
export const make = internal.make;
|
|
30
|
+
/**
|
|
31
|
+
* @since 1.0.0
|
|
32
|
+
* @category Tags
|
|
33
|
+
*/
|
|
34
|
+
export class AtomRegistry extends /*#__PURE__*/Context.Tag("@effect/atom/Registry/CurrentRegistry")() {}
|
|
35
|
+
/**
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
* @category Layers
|
|
38
|
+
*/
|
|
39
|
+
export const layerOptions = options => Layer.scoped(AtomRegistry, Effect.gen(function* () {
|
|
40
|
+
const scope = yield* Effect.scope;
|
|
41
|
+
const scheduler = yield* FiberRef.get(FiberRef.currentScheduler);
|
|
42
|
+
const registry = internal.make({
|
|
43
|
+
...options,
|
|
44
|
+
scheduleTask: options?.scheduleTask ?? (f => scheduler.scheduleTask(f, 0))
|
|
45
|
+
});
|
|
46
|
+
yield* Scope.addFinalizer(scope, Effect.sync(() => registry.dispose()));
|
|
47
|
+
return registry;
|
|
48
|
+
}));
|
|
49
|
+
/**
|
|
50
|
+
* @since 1.0.0
|
|
51
|
+
* @category Layers
|
|
52
|
+
*/
|
|
53
|
+
export const layer = /*#__PURE__*/layerOptions();
|
|
54
|
+
// -----------------------------------------------------------------------------
|
|
55
|
+
// conversions
|
|
56
|
+
// -----------------------------------------------------------------------------
|
|
57
|
+
/**
|
|
58
|
+
* @since 1.0.0
|
|
59
|
+
* @category Conversions
|
|
60
|
+
*/
|
|
61
|
+
export const toStream = /*#__PURE__*/dual(2, (self, atom) => Stream.unwrapScoped(Effect.contextWithEffect(context => {
|
|
62
|
+
const scope = Context.get(context, Scope.Scope);
|
|
63
|
+
return Mailbox.make().pipe(Effect.tap(mailbox => {
|
|
64
|
+
const cancel = self.subscribe(atom, value => mailbox.unsafeOffer(value), {
|
|
65
|
+
immediate: true
|
|
66
|
+
});
|
|
67
|
+
return Scope.addFinalizer(scope, Effect.suspend(() => {
|
|
68
|
+
cancel();
|
|
69
|
+
return mailbox.shutdown;
|
|
70
|
+
}));
|
|
71
|
+
}), Effect.uninterruptible, Effect.map(mailbox => Mailbox.toStream(mailbox)));
|
|
72
|
+
})));
|
|
73
|
+
/**
|
|
74
|
+
* @since 1.0.0
|
|
75
|
+
* @category Conversions
|
|
76
|
+
*/
|
|
77
|
+
export const toStreamResult = /*#__PURE__*/dual(2, (self, atom) => toStream(self, atom).pipe(Stream.filter(Result.isNotInitial), Stream.mapEffect(result => result._tag === "Success" ? Effect.succeed(result.value) : Effect.failCause(result.cause))));
|
|
78
|
+
/**
|
|
79
|
+
* @since 1.0.0
|
|
80
|
+
* @category Conversions
|
|
81
|
+
*/
|
|
82
|
+
export const getResult = /*#__PURE__*/dual(args => isRegistry(args[0]), (self, atom, options) => {
|
|
83
|
+
const suspendOnWaiting = options?.suspendOnWaiting ?? false;
|
|
84
|
+
return Effect.async(resume => {
|
|
85
|
+
const result = self.get(atom);
|
|
86
|
+
if (result._tag !== "Initial" && !(suspendOnWaiting && result.waiting)) {
|
|
87
|
+
return resume(Result.toExit(result));
|
|
88
|
+
}
|
|
89
|
+
const cancel = self.subscribe(atom, value => {
|
|
90
|
+
if (value._tag !== "Initial" && !(suspendOnWaiting && value.waiting)) {
|
|
91
|
+
resume(Result.toExit(value));
|
|
92
|
+
cancel();
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return Effect.sync(cancel);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=Registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.js","names":["Context","Effect","FiberRef","dual","Layer","Mailbox","hasProperty","Scope","Stream","internal","Result","TypeId","isRegistry","u","make","AtomRegistry","Tag","layerOptions","options","scoped","gen","scope","scheduler","get","currentScheduler","registry","scheduleTask","f","addFinalizer","sync","dispose","layer","toStream","self","atom","unwrapScoped","contextWithEffect","context","pipe","tap","mailbox","cancel","subscribe","value","unsafeOffer","immediate","suspend","shutdown","uninterruptible","map","toStreamResult","filter","isNotInitial","mapEffect","result","_tag","succeed","failCause","cause","getResult","args","suspendOnWaiting","async","resume","waiting","toExit"],"sources":["../../src/Registry.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|