@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.
Files changed (65) hide show
  1. package/Atom/package.json +6 -0
  2. package/AtomRef/package.json +6 -0
  3. package/Hydration/package.json +6 -0
  4. package/LICENSE +21 -0
  5. package/README.md +3 -0
  6. package/Registry/package.json +6 -0
  7. package/Result/package.json +6 -0
  8. package/dist/cjs/Atom.js +1079 -0
  9. package/dist/cjs/Atom.js.map +1 -0
  10. package/dist/cjs/AtomRef.js +261 -0
  11. package/dist/cjs/AtomRef.js.map +1 -0
  12. package/dist/cjs/Hydration.js +100 -0
  13. package/dist/cjs/Hydration.js.map +1 -0
  14. package/dist/cjs/Registry.js +128 -0
  15. package/dist/cjs/Registry.js.map +1 -0
  16. package/dist/cjs/Result.js +454 -0
  17. package/dist/cjs/Result.js.map +1 -0
  18. package/dist/cjs/index.js +37 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/internal/registry.js +701 -0
  21. package/dist/cjs/internal/registry.js.map +1 -0
  22. package/dist/cjs/internal/runtime.js +92 -0
  23. package/dist/cjs/internal/runtime.js.map +1 -0
  24. package/dist/dts/Atom.d.ts +597 -0
  25. package/dist/dts/Atom.d.ts.map +1 -0
  26. package/dist/dts/AtomRef.d.ts +55 -0
  27. package/dist/dts/AtomRef.d.ts.map +1 -0
  28. package/dist/dts/Hydration.d.ts +27 -0
  29. package/dist/dts/Hydration.d.ts.map +1 -0
  30. package/dist/dts/Registry.d.ts +115 -0
  31. package/dist/dts/Registry.d.ts.map +1 -0
  32. package/dist/dts/Result.d.ts +351 -0
  33. package/dist/dts/Result.d.ts.map +1 -0
  34. package/dist/dts/index.d.ts +21 -0
  35. package/dist/dts/index.d.ts.map +1 -0
  36. package/dist/dts/internal/registry.d.ts +2 -0
  37. package/dist/dts/internal/registry.d.ts.map +1 -0
  38. package/dist/dts/internal/runtime.d.ts +2 -0
  39. package/dist/dts/internal/runtime.d.ts.map +1 -0
  40. package/dist/esm/Atom.js +1029 -0
  41. package/dist/esm/Atom.js.map +1 -0
  42. package/dist/esm/AtomRef.js +232 -0
  43. package/dist/esm/AtomRef.js.map +1 -0
  44. package/dist/esm/Hydration.js +71 -0
  45. package/dist/esm/Hydration.js.map +1 -0
  46. package/dist/esm/Registry.js +98 -0
  47. package/dist/esm/Registry.js.map +1 -0
  48. package/dist/esm/Result.js +403 -0
  49. package/dist/esm/Result.js.map +1 -0
  50. package/dist/esm/index.js +21 -0
  51. package/dist/esm/index.js.map +1 -0
  52. package/dist/esm/internal/registry.js +672 -0
  53. package/dist/esm/internal/registry.js.map +1 -0
  54. package/dist/esm/internal/runtime.js +64 -0
  55. package/dist/esm/internal/runtime.js.map +1 -0
  56. package/dist/esm/package.json +4 -0
  57. package/package.json +72 -0
  58. package/src/Atom.ts +1865 -0
  59. package/src/AtomRef.ts +282 -0
  60. package/src/Hydration.ts +98 -0
  61. package/src/Registry.ts +204 -0
  62. package/src/Result.ts +767 -0
  63. package/src/index.ts +24 -0
  64. package/src/internal/registry.ts +810 -0
  65. 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":"AAAA;;;AAGA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,SAASC,WAAW,QAAQ,oBAAoB;AAChD,OAAO,KAAKC,IAAI,MAAM,aAAa;AAEnC;;;;AAIA,OAAO,MAAMC,MAAM,GAAW,2BAA2B;AAyCzD;;;;AAIA,OAAO,MAAMC,IAAI,GAAOC,KAAQ,IAAiB,IAAIC,WAAW,CAACD,KAAK,CAAC;AAEvE;;;;AAIA,OAAO,MAAME,UAAU,GAAOC,KAAkB,IAAoB,IAAIC,cAAc,CAACD,KAAK,CAAC;AAE7F,MAAME,QAAQ,gBAAGT,WAAW,CAAC,oCAAoC,EAAE,OAAO;EACxEU,KAAK,EAAE,CAAC;EACRC,QAAQA,CAAA;IACN,OAAO,WAAW,IAAI,CAACD,KAAK,EAAE,EAAE;EAClC;CACD,CAAC,CAAC;AAEH,MAAME,eAAe;EAGAR,KAAA;EAFV,CAACF,MAAM;EACPW,GAAG,gBAAGJ,QAAQ,CAACE,QAAQ,EAAE;EAClCG,YAAmBV,KAAQ;IAAR,KAAAA,KAAK,GAALA,KAAK;IACtB,IAAI,CAACF,MAAM,CAAC,GAAGA,MAAM;EACvB;EAEA,CAACH,KAAK,CAACgB,MAAM,EAAEC,IAAiB;IAC9B,OAAOjB,KAAK,CAACkB,MAAM,CAAC,IAAI,CAACb,KAAK,EAAGY,IAAuB,CAACZ,KAAK,CAAC;EACjE;EAEA,CAACH,IAAI,CAACc,MAAM,IAAC;IACX,OAAOd,IAAI,CAACiB,IAAI,CAAC,IAAI,CAACd,KAAK,CAAC;EAC9B;EAEAe,SAAS,GAA0B,EAAE;EACrCC,aAAa,GAAG,CAAC;EAEjBC,MAAMA,CAACC,CAAI;IACT,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACH,aAAa,EAAEG,CAAC,EAAE,EAAE;MAC3C,IAAI,CAACJ,SAAS,CAACI,CAAC,CAAC,CAACD,CAAC,CAAC;IACtB;EACF;EAEAE,SAASA,CAACC,CAAiB;IACzB,IAAI,CAACN,SAAS,CAACO,IAAI,CAACD,CAAC,CAAC;IACtB,IAAI,CAACL,aAAa,EAAE;IAEpB,OAAO,MAAK;MACV,MAAMO,KAAK,GAAG,IAAI,CAACR,SAAS,CAACS,OAAO,CAACH,CAAC,CAAC;MACvC,IAAIE,KAAK,KAAK,CAAC,CAAC,EAAE;QAChB,IAAI,CAACR,SAAS,CAACQ,KAAK,CAAC,GAAG,IAAI,CAACR,SAAS,CAAC,IAAI,CAACC,aAAa,GAAG,CAAC,CAAC;QAC9D,IAAI,CAACD,SAAS,CAACU,GAAG,EAAE;QACpB,IAAI,CAACT,aAAa,EAAE;MACtB;IACF,CAAC;EACH;EAEAU,GAAGA,CAAIL,CAAc;IACnB,OAAO,IAAIM,UAAU,CAAC,IAAI,EAAEN,CAAC,CAAC;EAChC;;AAGF,MAAMpB,WAAe,SAAQO,eAAkB;EAC7CoB,IAAIA,CAAoBA,IAAO;IAC7B,OAAO,IAAIC,WAAW,CAAC,IAAI,EAAED,IAAI,CAAC;EACpC;EACAE,GAAGA,CAAC9B,KAAQ;IACV,IAAIL,KAAK,CAACkB,MAAM,CAACb,KAAK,EAAE,IAAI,CAACA,KAAK,CAAC,EAAE;MACnC,OAAO,IAAI;IACb;IACA,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACiB,MAAM,CAACjB,KAAK,CAAC;IAClB,OAAO,IAAI;EACb;EAEA+B,MAAMA,CAACV,CAAkB;IACvB,OAAO,IAAI,CAACS,GAAG,CAACT,CAAC,CAAC,IAAI,CAACrB,KAAK,CAAC,CAAC;EAChC;;AAGF,MAAM2B,UAAU;EAGOK,MAAA;EAAiCC,SAAA;EAF7C,CAACnC,MAAM;EACPW,GAAG,gBAAGJ,QAAQ,CAACE,QAAQ,EAAE;EAClCG,YAAqBsB,MAAsB,EAAWC,SAAsB;IAAvD,KAAAD,MAAM,GAANA,MAAM;IAA2B,KAAAC,SAAS,GAATA,SAAS;IAC7D,IAAI,CAACnC,MAAM,CAAC,GAAGA,MAAM;EACvB;EACA,CAACH,KAAK,CAACgB,MAAM,EAAEC,IAAiB;IAC9B,OAAOjB,KAAK,CAACkB,MAAM,CAAC,IAAI,CAACb,KAAK,EAAGY,IAAuB,CAACZ,KAAK,CAAC;EACjE;EACA,CAACH,IAAI,CAACc,MAAM,IAAC;IACX,OAAOd,IAAI,CAACiB,IAAI,CAAC,IAAI,CAACd,KAAK,CAAC;EAC9B;EACA,IAAIA,KAAKA,CAAA;IACP,OAAO,IAAI,CAACiC,SAAS,CAAC,IAAI,CAACD,MAAM,CAAChC,KAAK,CAAC;EAC1C;EACAoB,SAASA,CAACC,CAAiB;IACzB,IAAIa,QAAQ,GAAG,IAAI,CAACD,SAAS,CAAC,IAAI,CAACD,MAAM,CAAChC,KAAK,CAAC;IAChD,OAAO,IAAI,CAACgC,MAAM,CAACZ,SAAS,CAAEF,CAAC,IAAI;MACjC,MAAMiB,IAAI,GAAG,IAAI,CAACF,SAAS,CAACf,CAAC,CAAC;MAC9B,IAAIvB,KAAK,CAACkB,MAAM,CAACsB,IAAI,EAAED,QAAQ,CAAC,EAAE;QAChC;MACF;MACAA,QAAQ,GAAGC,IAAI;MACfd,CAAC,CAACc,IAAI,CAAC;IACT,CAAC,CAAC;EACJ;EACAT,GAAGA,CAAIL,CAAc;IACnB,OAAO,IAAIM,UAAU,CAAC,IAAI,EAAEN,CAAC,CAAC;EAChC;;AAGF,MAAMQ,WAAW;EAIMG,MAAA;EAA6BI,KAAA;EAHzC,CAACtC,MAAM;EACPW,GAAG,gBAAGJ,QAAQ,CAACE,QAAQ,EAAE;EAC1B2B,QAAQ;EAChBxB,YAAqBsB,MAAkB,EAAWI,KAAQ;IAArC,KAAAJ,MAAM,GAANA,MAAM;IAAuB,KAAAI,KAAK,GAALA,KAAK;IACrD,IAAI,CAACtC,MAAM,CAAC,GAAGA,MAAM;IACrB,IAAI,CAACoC,QAAQ,GAAGF,MAAM,CAAChC,KAAK,CAACoC,KAAK,CAAC;EACrC;EACA,CAACzC,KAAK,CAACgB,MAAM,EAAEC,IAAiB;IAC9B,OAAOjB,KAAK,CAACkB,MAAM,CAAC,IAAI,CAACb,KAAK,EAAGY,IAAuB,CAACZ,KAAK,CAAC;EACjE;EACA,CAACH,IAAI,CAACc,MAAM,IAAC;IACX,OAAOd,IAAI,CAACiB,IAAI,CAAC,IAAI,CAACd,KAAK,CAAC;EAC9B;EACA,IAAIA,KAAKA,CAAA;IACP,IAAI,IAAI,CAACgC,MAAM,CAAChC,KAAK,IAAI,IAAI,CAACoC,KAAK,IAAK,IAAI,CAACJ,MAAM,CAAChC,KAAa,EAAE;MACjE,IAAI,CAACkC,QAAQ,GAAG,IAAI,CAACF,MAAM,CAAChC,KAAK,CAAC,IAAI,CAACoC,KAAK,CAAC;IAC/C;IACA,OAAO,IAAI,CAACF,QAAQ;EACtB;EACAd,SAASA,CAACC,CAAoB;IAC5B,IAAIa,QAAQ,GAAG,IAAI,CAAClC,KAAK;IACzB,OAAO,IAAI,CAACgC,MAAM,CAACZ,SAAS,CAAEF,CAAC,IAAI;MACjC,IAAI,CAACA,CAAC,IAAI,EAAE,IAAI,CAACkB,KAAK,IAAKlB,CAAS,CAAC,EAAE;QACrC;MACF;MACA,MAAMiB,IAAI,GAAGjB,CAAC,CAAC,IAAI,CAACkB,KAAK,CAAC;MAC1B,IAAIzC,KAAK,CAACkB,MAAM,CAACsB,IAAI,EAAED,QAAQ,CAAC,EAAE;QAChC;MACF;MACAA,QAAQ,GAAGC,IAAI;MACfd,CAAC,CAACc,IAAI,CAAC;IACT,CAAC,CAAC;EACJ;EACAT,GAAGA,CAAIL,CAAiB;IACtB,OAAO,IAAIM,UAAU,CAAC,IAAI,EAAEN,CAAC,CAAC;EAChC;EACAO,IAAIA,CAAwBA,IAAQ;IAClC,OAAO,IAAIC,WAAW,CAAC,IAAI,EAAED,IAAI,CAAC;EACpC;EACAE,GAAGA,CAAC9B,KAAW;IACb,IAAIqC,KAAK,CAACC,OAAO,CAAC,IAAI,CAACN,MAAM,CAAChC,KAAK,CAAC,EAAE;MACpC,MAAMuC,QAAQ,GAAG,IAAI,CAACP,MAAM,CAAChC,KAAK,CAACwC,KAAK,EAAE;MAC1CD,QAAQ,CAAC,IAAI,CAACH,KAAe,CAAC,GAAGpC,KAAK;MACtC,IAAI,CAACgC,MAAM,CAACF,GAAG,CAACS,QAAa,CAAC;IAChC,CAAC,MAAM;MACL,IAAI,CAACP,MAAM,CAACF,GAAG,CAAC;QACd,GAAG,IAAI,CAACE,MAAM,CAAChC,KAAK;QACpB,CAAC,IAAI,CAACoC,KAAK,GAAGpC;OACf,CAAC;IACJ;IACA,OAAO,IAAI;EACb;EACA+B,MAAMA,CAACV,CAAwB;IAC7B,IAAIgB,KAAK,CAACC,OAAO,CAAC,IAAI,CAACN,MAAM,CAAChC,KAAK,CAAC,EAAE;MACpC,MAAMuC,QAAQ,GAAG,IAAI,CAACP,MAAM,CAAChC,KAAK,CAACwC,KAAK,EAAE;MAC1CD,QAAQ,CAAC,IAAI,CAACH,KAAe,CAAC,GAAGf,CAAC,CAAC,IAAI,CAACW,MAAM,CAAChC,KAAK,CAAC,IAAI,CAACoC,KAAK,CAAC,CAAC;MACjE,IAAI,CAACJ,MAAM,CAACF,GAAG,CAACS,QAAa,CAAC;IAChC,CAAC,MAAM;MACL,IAAI,CAACP,MAAM,CAACF,GAAG,CAAC;QACd,GAAG,IAAI,CAACE,MAAM,CAAChC,KAAK;QACpB,CAAC,IAAI,CAACoC,KAAK,GAAGf,CAAC,CAAC,IAAI,CAACW,MAAM,CAAChC,KAAK,CAAC,IAAI,CAACoC,KAAK,CAAC;OAC9C,CAAC;IACJ;IACA,OAAO,IAAI;EACb;;AAGF,MAAMhC,cAAkB,SAAQI,eAAkC;EAChEE,YAAYP,KAAkB;IAC5B,KAAK,CAAC,EAAE,CAAC;IACT,KAAK,MAAMsC,IAAI,IAAItC,KAAK,EAAE;MACxB,IAAI,CAACH,KAAK,CAACsB,IAAI,CAAC,IAAI,CAACoB,OAAO,CAACD,IAAI,CAAC,CAAC;IACrC;EACF;EAEAC,OAAOA,CAAC1C,KAAQ;IACd,MAAM2C,GAAG,GAAG,IAAI1C,WAAW,CAACD,KAAK,CAAC;IAClC,MAAMiB,MAAM,GAAIjB,KAAQ,IAAI;MAC1B2C,GAAG,CAAC1B,MAAM,CAACjB,KAAK,CAAC;MACjB,IAAI,CAACiB,MAAM,CAAC,IAAI,CAACjB,KAAK,CAAC;IACzB,CAAC;IACD,OAAO,IAAI4C,KAAK,CAACD,GAAG,EAAE;MACpBE,GAAGA,CAACC,MAAM,EAAEC,CAAC,EAAEC,SAAS;QACtB,IAAID,CAAC,KAAK,QAAQ,EAAE;UAClB,OAAO9B,MAAM;QACf;QACA,OAAO6B,MAAM,CAACC,CAAqB,CAAC;MACtC;KACD,CAAC;EACJ;EAEAzB,IAAIA,CAACmB,IAAO;IACV,MAAME,GAAG,GAAG,IAAI,CAACD,OAAO,CAACD,IAAI,CAAC;IAC9B,IAAI,CAACzC,KAAK,CAACsB,IAAI,CAACqB,GAAG,CAAC;IACpB,IAAI,CAAC1B,MAAM,CAAC,IAAI,CAACjB,KAAK,CAAC;IACvB,OAAO,IAAI;EACb;EAEAiD,QAAQA,CAAC1B,KAAa,EAAEkB,IAAO;IAC7B,MAAME,GAAG,GAAG,IAAI,CAACD,OAAO,CAACD,IAAI,CAAC;IAC9B,IAAI,CAACzC,KAAK,CAACkD,MAAM,CAAC3B,KAAK,EAAE,CAAC,EAAEoB,GAAG,CAAC;IAChC,IAAI,CAAC1B,MAAM,CAAC,IAAI,CAACjB,KAAK,CAAC;IACvB,OAAO,IAAI;EACb;EAEAmD,MAAMA,CAACR,GAAe;IACpB,MAAMpB,KAAK,GAAG,IAAI,CAACvB,KAAK,CAACwB,OAAO,CAACmB,GAAG,CAAC;IACrC,IAAIpB,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB,IAAI,CAACvB,KAAK,CAACkD,MAAM,CAAC3B,KAAK,EAAE,CAAC,CAAC;MAC3B,IAAI,CAACN,MAAM,CAAC,IAAI,CAACjB,KAAK,CAAC;IACzB;IACA,OAAO,IAAI;EACb;EAEAoD,OAAOA,CAAA;IACL,OAAO,IAAI,CAACpD,KAAK,CAAC0B,GAAG,CAAEiB,GAAG,IAAKA,GAAG,CAAC3C,KAAK,CAAC;EAC3C","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":[]}