@effect-atom/atom-livestore 0.4.3 → 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.
@@ -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 result = store.query(query);
59
- get.addFinalizer(store.subscribe(query, {
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 result;
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.addFinalizer(store.subscribe(query, {
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(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":"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","ignoreList":[]}
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,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9E;;;OAGG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IACjF;;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,CAuDpC,CAAA"}
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 result = store.query(query);
32
- get.addFinalizer(store.subscribe(query, {
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 result;
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.addFinalizer(store.subscribe(query, {
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(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":"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","ignoreList":[]}
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",
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.8"
14
+ "@effect-atom/atom": "^0.4.9"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@livestore/livestore": "*",
@@ -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>(query: LiveQueryDef<A>) => Atom.Atom<Result.Result<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>(query: LiveQueryDef<A>) => Atom.Atom<A | undefined>
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 result = store.query(query)
98
+ const q = typeof query === "function" ? query(get) : query
95
99
  get.addFinalizer(
96
- store.subscribe(query, {
100
+ store.subscribe(q, {
97
101
  onUpdate(value) {
98
102
  get.setSelf(Result.success(value))
99
103
  }
100
104
  })
101
105
  )
102
- return result
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(query, {
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(query)
123
+ return store.query(q)
119
124
  })
120
125
  self.commit = Atom.writable((get) => {
121
126
  get(self.storeUnsafe)