@effect-atom/atom-livestore 0.4.2 → 0.4.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/AtomLivestore.js +6 -5
- package/dist/cjs/AtomLivestore.js.map +1 -1
- package/dist/dts/AtomLivestore.d.ts +2 -2
- package/dist/dts/AtomLivestore.d.ts.map +1 -1
- package/dist/esm/AtomLivestore.js +6 -5
- package/dist/esm/AtomLivestore.js.map +1 -1
- package/package.json +2 -2
- package/src/AtomLivestore.ts +14 -9
|
@@ -55,13 +55,13 @@ const Tag = () => (id, options) => {
|
|
|
55
55
|
self.makeQuery = query => Atom.readable(get => {
|
|
56
56
|
const store = get(self.store);
|
|
57
57
|
return Result.map(store, store => {
|
|
58
|
-
const
|
|
59
|
-
get.addFinalizer(store.subscribe(
|
|
58
|
+
const q = typeof query === "function" ? query(get) : query;
|
|
59
|
+
get.addFinalizer(store.subscribe(q, {
|
|
60
60
|
onUpdate(value) {
|
|
61
61
|
get.setSelf(Result.success(value));
|
|
62
62
|
}
|
|
63
63
|
}));
|
|
64
|
-
return
|
|
64
|
+
return store.query(q);
|
|
65
65
|
});
|
|
66
66
|
});
|
|
67
67
|
self.makeQueryUnsafe = query => Atom.readable(get => {
|
|
@@ -69,12 +69,13 @@ const Tag = () => (id, options) => {
|
|
|
69
69
|
if (store === undefined) {
|
|
70
70
|
return undefined;
|
|
71
71
|
}
|
|
72
|
-
get
|
|
72
|
+
const q = typeof query === "function" ? query(get) : query;
|
|
73
|
+
get.addFinalizer(store.subscribe(q, {
|
|
73
74
|
onUpdate(value) {
|
|
74
75
|
get.setSelf(Result.success(value));
|
|
75
76
|
}
|
|
76
77
|
}));
|
|
77
|
-
return store.query(
|
|
78
|
+
return store.query(q);
|
|
78
79
|
});
|
|
79
80
|
self.commit = Atom.writable(get => {
|
|
80
81
|
get(self.storeUnsafe);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomLivestore.js","names":["Atom","_interopRequireWildcard","require","Result","_livestore","Context","Effect","_Function","Layer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Tag","id","options","self","layer","scoped","createStore","pipe","provideOtel","parentSpanContext","otelOptions","rootSpanContext","otelTracer","tracer","orDie","runtime","store","atom","contextWith","storeUnsafe","readable","result","getOrElse","constUndefined","makeQuery","query","map","addFinalizer","subscribe","onUpdate","value","setSelf","success","makeQueryUnsafe","undefined","commit","writable","ctx","exports"],"sources":["../../src/AtomLivestore.ts"],"sourcesContent":[null],"mappings":";;;;;;AAIA,IAAAA,IAAA,gBAAAC,uBAAA,cAAAC,OAAA;AACA,IAAAC,MAAA,gBAAAF,uBAAA,cAAAC,OAAA;AAEA,IAAAE,UAAA,gBAAAF,OAAA;AACA,IAAAG,OAAA,gBAAAJ,uBAAA,cAAAC,OAAA;AACA,IAAAI,MAAA,gBAAAL,uBAAA,cAAAC,OAAA;AACA,IAAAK,SAAA,gBAAAL,OAAA;AACA,IAAAM,KAAA,gBAAAP,uBAAA,cAAAC,OAAA;AAAqC,SAAAD,wBAAAQ,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAV,uBAAA,YAAAA,CAAAQ,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA;AAXrC;;;AAGA;;
|
|
1
|
+
{"version":3,"file":"AtomLivestore.js","names":["Atom","_interopRequireWildcard","require","Result","_livestore","Context","Effect","_Function","Layer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Tag","id","options","self","layer","scoped","createStore","pipe","provideOtel","parentSpanContext","otelOptions","rootSpanContext","otelTracer","tracer","orDie","runtime","store","atom","contextWith","storeUnsafe","readable","result","getOrElse","constUndefined","makeQuery","query","map","q","addFinalizer","subscribe","onUpdate","value","setSelf","success","makeQueryUnsafe","undefined","commit","writable","ctx","exports"],"sources":["../../src/AtomLivestore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -28,12 +28,12 @@ export interface AtomLiveStore<Self, Id extends string, S extends LiveStoreSchem
|
|
|
28
28
|
* Creates a Atom that allows you to resolve a LiveQueryDef. It embeds the loading
|
|
29
29
|
* of the Store and will emit a `Result` that contains the result of the query
|
|
30
30
|
*/
|
|
31
|
-
readonly makeQuery: <A>(query: LiveQueryDef<A>) => Atom.Atom<Result.Result<A>>;
|
|
31
|
+
readonly makeQuery: <A>(query: LiveQueryDef<A> | ((get: Atom.Context) => LiveQueryDef<A>)) => Atom.Atom<Result.Result<A>>;
|
|
32
32
|
/**
|
|
33
33
|
* Creates a Atom that allows you to resolve a LiveQueryDef. If the Store has
|
|
34
34
|
* not been created yet, it will return `undefined`.
|
|
35
35
|
*/
|
|
36
|
-
readonly makeQueryUnsafe: <A>(query: LiveQueryDef<A>) => Atom.Atom<A | undefined>;
|
|
36
|
+
readonly makeQueryUnsafe: <A>(query: LiveQueryDef<A> | ((get: Atom.Context) => LiveQueryDef<A>)) => Atom.Atom<A | undefined>;
|
|
37
37
|
/**
|
|
38
38
|
* A Atom.Writable that allows you to commit an event to the Store.
|
|
39
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomLivestore.d.ts","sourceRoot":"","sources":["../../src/AtomLivestore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAGzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,eAAe,EAAE,OAAO,GAAG,EAAE,CAC7F,SAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAE5C,KACE,CAAC,EAAE,KAAK,GACP,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAE/C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAExC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3D;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;IAC9D;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"AtomLivestore.d.ts","sourceRoot":"","sources":["../../src/AtomLivestore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAEjH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAGzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,eAAe,EAAE,OAAO,GAAG,EAAE,CAC7F,SAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAE5C,KACE,CAAC,EAAE,KAAK,GACP,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;IAE/C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAExC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3D;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;IAC9D;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EACpB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,KAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,EAC1B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,KAC9D,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAC7B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;CACzC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,gBAAgB;QACxB,eAAe,EAAE,MAAM,CAAA;KACxB;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,GAAG,GAAI,IAAI,QACvB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,eAAe,EAAE,OAAO,GAAG,EAAE,EAC/D,IAAI,EAAE,EACN,SAAS,kBAAkB,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG;IACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAAA;CACxD,KACA,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAwDpC,CAAA"}
|
|
@@ -28,13 +28,13 @@ export const Tag = () => (id, options) => {
|
|
|
28
28
|
self.makeQuery = query => Atom.readable(get => {
|
|
29
29
|
const store = get(self.store);
|
|
30
30
|
return Result.map(store, store => {
|
|
31
|
-
const
|
|
32
|
-
get.addFinalizer(store.subscribe(
|
|
31
|
+
const q = typeof query === "function" ? query(get) : query;
|
|
32
|
+
get.addFinalizer(store.subscribe(q, {
|
|
33
33
|
onUpdate(value) {
|
|
34
34
|
get.setSelf(Result.success(value));
|
|
35
35
|
}
|
|
36
36
|
}));
|
|
37
|
-
return
|
|
37
|
+
return store.query(q);
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
40
|
self.makeQueryUnsafe = query => Atom.readable(get => {
|
|
@@ -42,12 +42,13 @@ export const Tag = () => (id, options) => {
|
|
|
42
42
|
if (store === undefined) {
|
|
43
43
|
return undefined;
|
|
44
44
|
}
|
|
45
|
-
get
|
|
45
|
+
const q = typeof query === "function" ? query(get) : query;
|
|
46
|
+
get.addFinalizer(store.subscribe(q, {
|
|
46
47
|
onUpdate(value) {
|
|
47
48
|
get.setSelf(Result.success(value));
|
|
48
49
|
}
|
|
49
50
|
}));
|
|
50
|
-
return store.query(
|
|
51
|
+
return store.query(q);
|
|
51
52
|
});
|
|
52
53
|
self.commit = Atom.writable(get => {
|
|
53
54
|
get(self.storeUnsafe);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AtomLivestore.js","names":["Atom","Result","createStore","provideOtel","Context","Effect","constUndefined","Layer","Tag","id","options","self","layer","scoped","pipe","parentSpanContext","otelOptions","rootSpanContext","otelTracer","tracer","orDie","runtime","store","atom","contextWith","get","storeUnsafe","readable","result","getOrElse","makeQuery","query","map","addFinalizer","subscribe","onUpdate","value","setSelf","success","makeQueryUnsafe","undefined","commit","writable","ctx"],"sources":["../../src/AtomLivestore.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA;AACA,OAAO,KAAKA,IAAI,MAAM,wBAAwB;AAC9C,OAAO,KAAKC,MAAM,MAAM,0BAA0B;AAElD,SAASC,WAAW,EAAEC,WAAW,QAAQ,sBAAsB;AAC/D,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,cAAc,QAAQ,iBAAiB;AAChD,OAAO,KAAKC,KAAK,MAAM,cAAc;
|
|
1
|
+
{"version":3,"file":"AtomLivestore.js","names":["Atom","Result","createStore","provideOtel","Context","Effect","constUndefined","Layer","Tag","id","options","self","layer","scoped","pipe","parentSpanContext","otelOptions","rootSpanContext","otelTracer","tracer","orDie","runtime","store","atom","contextWith","get","storeUnsafe","readable","result","getOrElse","makeQuery","query","map","q","addFinalizer","subscribe","onUpdate","value","setSelf","success","makeQueryUnsafe","undefined","commit","writable","ctx"],"sources":["../../src/AtomLivestore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-atom/atom-livestore",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "effect-atom bindings to livestore",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"author": "Effect contributors",
|
|
12
12
|
"homepage": "https://github.com/tim-smart/effect-atom",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@effect-atom/atom": "^0.4.
|
|
14
|
+
"@effect-atom/atom": "^0.4.9"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@livestore/livestore": "*",
|
package/src/AtomLivestore.ts
CHANGED
|
@@ -40,12 +40,16 @@ export interface AtomLiveStore<Self, Id extends string, S extends LiveStoreSchem
|
|
|
40
40
|
* Creates a Atom that allows you to resolve a LiveQueryDef. It embeds the loading
|
|
41
41
|
* of the Store and will emit a `Result` that contains the result of the query
|
|
42
42
|
*/
|
|
43
|
-
readonly makeQuery: <A>(
|
|
43
|
+
readonly makeQuery: <A>(
|
|
44
|
+
query: LiveQueryDef<A> | ((get: Atom.Context) => LiveQueryDef<A>)
|
|
45
|
+
) => Atom.Atom<Result.Result<A>>
|
|
44
46
|
/**
|
|
45
47
|
* Creates a Atom that allows you to resolve a LiveQueryDef. If the Store has
|
|
46
48
|
* not been created yet, it will return `undefined`.
|
|
47
49
|
*/
|
|
48
|
-
readonly makeQueryUnsafe: <A>(
|
|
50
|
+
readonly makeQueryUnsafe: <A>(
|
|
51
|
+
query: LiveQueryDef<A> | ((get: Atom.Context) => LiveQueryDef<A>)
|
|
52
|
+
) => Atom.Atom<A | undefined>
|
|
49
53
|
/**
|
|
50
54
|
* A Atom.Writable that allows you to commit an event to the Store.
|
|
51
55
|
*/
|
|
@@ -87,35 +91,36 @@ export const Tag = <Self>() =>
|
|
|
87
91
|
const result = get(self.store)
|
|
88
92
|
return Result.getOrElse(result, constUndefined)
|
|
89
93
|
})
|
|
90
|
-
self.makeQuery = <A>(query: LiveQueryDef<A>) =>
|
|
94
|
+
self.makeQuery = <A>(query: LiveQueryDef<A> | ((get: Atom.Context) => LiveQueryDef<A>)) =>
|
|
91
95
|
Atom.readable((get) => {
|
|
92
96
|
const store = get(self.store)
|
|
93
97
|
return Result.map(store, (store) => {
|
|
94
|
-
const
|
|
98
|
+
const q = typeof query === "function" ? query(get) : query
|
|
95
99
|
get.addFinalizer(
|
|
96
|
-
store.subscribe(
|
|
100
|
+
store.subscribe(q, {
|
|
97
101
|
onUpdate(value) {
|
|
98
102
|
get.setSelf(Result.success(value))
|
|
99
103
|
}
|
|
100
104
|
})
|
|
101
105
|
)
|
|
102
|
-
return
|
|
106
|
+
return store.query(q)
|
|
103
107
|
})
|
|
104
108
|
})
|
|
105
|
-
self.makeQueryUnsafe = <A>(query: LiveQueryDef<A>) =>
|
|
109
|
+
self.makeQueryUnsafe = <A>(query: LiveQueryDef<A> | ((get: Atom.Context) => LiveQueryDef<A>)) =>
|
|
106
110
|
Atom.readable((get) => {
|
|
107
111
|
const store = get(self.storeUnsafe)
|
|
108
112
|
if (store === undefined) {
|
|
109
113
|
return undefined
|
|
110
114
|
}
|
|
115
|
+
const q = typeof query === "function" ? query(get) : query
|
|
111
116
|
get.addFinalizer(
|
|
112
|
-
store.subscribe(
|
|
117
|
+
store.subscribe(q, {
|
|
113
118
|
onUpdate(value) {
|
|
114
119
|
get.setSelf(Result.success(value))
|
|
115
120
|
}
|
|
116
121
|
})
|
|
117
122
|
)
|
|
118
|
-
return store.query(
|
|
123
|
+
return store.query(q)
|
|
119
124
|
})
|
|
120
125
|
self.commit = Atom.writable((get) => {
|
|
121
126
|
get(self.storeUnsafe)
|