@effect-atom/atom-livestore 0.4.6 → 0.4.8

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.
@@ -42,11 +42,12 @@ function _interopRequireWildcard(e, t) {
42
42
  */
43
43
  const Tag = () => (id, options) => {
44
44
  const self = Context.Tag(id)();
45
- self.layer = Layer.scoped(self, (0, _livestore.createStore)(options).pipe((0, _livestore.provideOtel)({
46
- parentSpanContext: options?.otelOptions?.rootSpanContext,
47
- otelTracer: options?.otelOptions?.tracer
45
+ const layerFromOptions = opts => Layer.scoped(self, (0, _livestore.createStore)(opts).pipe((0, _livestore.provideOtel)({
46
+ parentSpanContext: opts?.otelOptions?.rootSpanContext,
47
+ otelTracer: opts?.otelOptions?.tracer
48
48
  }), Effect.orDie));
49
- self.runtime = Atom.runtime(self.layer);
49
+ self.runtime = Atom.runtime(typeof options === "function" ? get => layerFromOptions(options(get)) : layerFromOptions(options));
50
+ self.layer = self.runtime.layer;
50
51
  self.store = self.runtime.atom(Effect.contextWith(Context.get(self)));
51
52
  self.storeUnsafe = Atom.readable(get => {
52
53
  const result = get(self.store);
@@ -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","q","onUpdate","value","setSelf","success","addFinalizer","subscribe","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","layerFromOptions","opts","scoped","createStore","pipe","provideOtel","parentSpanContext","otelOptions","rootSpanContext","otelTracer","tracer","orDie","runtime","layer","store","atom","contextWith","storeUnsafe","readable","result","getOrElse","constUndefined","makeQuery","query","map","q","onUpdate","value","setSelf","success","addFinalizer","subscribe","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;;AAuEA;;;;AAIO,MAAMkB,GAAG,GAAGA,CAAA,KACnB,CACEC,EAAM,EACNC,OAA2E,KACpC;EACvC,MAAMC,IAAI,GAAiD1B,OAAO,CAACuB,GAAG,CAACC,EAAE,CAAC,EAAkC;EAE5G,MAAMG,gBAAgB,GAAIC,IAAyB,IACjDzB,KAAK,CAAC0B,MAAM,CACVH,IAAI,EACJ,IAAA3B,UAAA,CAAA+B,WAAW,EAACF,IAAI,CAAC,CAACG,IAAI,CACpB,IAAAhC,UAAA,CAAAiC,WAAW,EAAC;IACVC,iBAAiB,EAAEL,IAAI,EAAEM,WAAW,EAAEC,eAAe;IACrDC,UAAU,EAAER,IAAI,EAAEM,WAAW,EAAEG;GAChC,CAAC,EACFpC,MAAM,CAACqC,KAAK,CACb,CACF;EAEHZ,IAAI,CAACa,OAAO,GAAG5C,IAAI,CAAC4C,OAAO,CACzB,OAAOd,OAAO,KAAK,UAAU,GAAIT,GAAG,IAAKW,gBAAgB,CAACF,OAAO,CAACT,GAAG,CAAC,CAAC,GAAGW,gBAAgB,CAACF,OAAO,CAAC,CACpG;EACDC,IAAI,CAACc,KAAK,GAAGd,IAAI,CAACa,OAAO,CAACC,KAAK;EAC/Bd,IAAI,CAACe,KAAK,GAAGf,IAAI,CAACa,OAAO,CAACG,IAAI,CAACzC,MAAM,CAAC0C,WAAW,CAAC3C,OAAO,CAACgB,GAAG,CAACU,IAAI,CAAC,CAAQ,CAAC;EAC5EA,IAAI,CAACkB,WAAW,GAAGjD,IAAI,CAACkD,QAAQ,CAAE7B,GAAG,IAAI;IACvC,MAAM8B,MAAM,GAAG9B,GAAG,CAACU,IAAI,CAACe,KAAK,CAAC;IAC9B,OAAO3C,MAAM,CAACiD,SAAS,CAACD,MAAM,EAAE5C,SAAA,CAAA8C,cAAc,CAAC;EACjD,CAAC,CAAC;EACFtB,IAAI,CAACuB,SAAS,GAAOC,KAAiE,IACpFvD,IAAI,CAACkD,QAAQ,CAAE7B,GAAG,IAAI;IACpB,MAAMyB,KAAK,GAAGzB,GAAG,CAACU,IAAI,CAACe,KAAK,CAAC;IAC7B,OAAO3C,MAAM,CAACqD,GAAG,CAACV,KAAK,EAAGA,KAAK,IAAI;MACjC,MAAMW,CAAC,GAAG,OAAOF,KAAK,KAAK,UAAU,GAAGA,KAAK,CAAClC,GAAG,CAAC,GAAGkC,KAAK;MAC1D,SAASG,QAAQA,CAACC,KAAQ;QACxBtC,GAAG,CAACuC,OAAO,CAACzD,MAAM,CAAC0D,OAAO,CAACF,KAAK,CAAC,CAAC;MACpC;MACAD,QAAQ,CAACA,QAAQ,GAAGA,QAAQ;MAC5BrC,GAAG,CAACyC,YAAY,CACdhB,KAAK,CAACiB,SAAS,CAACN,CAAC,EAAEC,QAAQ,CAAC,CAC7B;MACD,OAAOZ,KAAK,CAACS,KAAK,CAACE,CAAC,CAAC;IACvB,CAAC,CAAC;EACJ,CAAC,CAAC;EACJ1B,IAAI,CAACiC,eAAe,GAAOT,KAAiE,IAC1FvD,IAAI,CAACkD,QAAQ,CAAE7B,GAAG,IAAI;IACpB,MAAMyB,KAAK,GAAGzB,GAAG,CAACU,IAAI,CAACkB,WAAW,CAAC;IACnC,IAAIH,KAAK,KAAKmB,SAAS,EAAE;MACvB,OAAOA,SAAS;IAClB;IACA,MAAMR,CAAC,GAAG,OAAOF,KAAK,KAAK,UAAU,GAAGA,KAAK,CAAClC,GAAG,CAAC,GAAGkC,KAAK;IAC1D,SAASG,QAAQA,CAACC,KAAQ;MACxBtC,GAAG,CAACuC,OAAO,CAACD,KAAK,CAAC;IACpB;IACAD,QAAQ,CAACA,QAAQ,GAAGA,QAAQ;IAC5BrC,GAAG,CAACyC,YAAY,CACdhB,KAAK,CAACiB,SAAS,CAACN,CAAC,EAAEC,QAAQ,CAAC,CAC7B;IACD,OAAOZ,KAAK,CAACS,KAAK,CAACE,CAAC,CAAC;EACvB,CAAC,CAAC;EACJ1B,IAAI,CAACmC,MAAM,GAAGlE,IAAI,CAACmE,QAAQ,CAAE9C,GAAG,IAAI;IAClCA,GAAG,CAACU,IAAI,CAACkB,WAAW,CAAC;EACvB,CAAC,EAAE,CAACmB,GAAG,EAAET,KAAS,KAAI;IACpBS,GAAG,CAAC/C,GAAG,CAACU,IAAI,CAACkB,WAAW,CAAC,EAAEiB,MAAM,CAACP,KAAK,CAAC;EAC1C,CAAC,CAAC;EACF,OAAO5B,IAA2C;AACpD,CAAC;AAAAsC,OAAA,CAAAzC,GAAA,GAAAA,GAAA","ignoreList":[]}
@@ -12,7 +12,7 @@ import * as Layer from "effect/Layer";
12
12
  */
13
13
  export interface AtomLiveStore<Self, Id extends string, S extends LiveStoreSchema, Context = {}> extends Context.Tag<Self, Store<S, Context>> {
14
14
  new (_: never): Context.TagClassShape<Id, Store<S, Context>>;
15
- readonly layer: Layer.Layer<Self>;
15
+ readonly layer: Atom.Atom<Layer.Layer<Self>>;
16
16
  readonly runtime: Atom.AtomRuntime<Self>;
17
17
  /**
18
18
  * A Atom that allows you to access the Store. It will emit a `Result` that
@@ -46,9 +46,14 @@ declare global {
46
46
  }
47
47
  /**
48
48
  * @since 1.0.0
49
- * @category Constructors
49
+ * @category Models
50
50
  */
51
- export declare const Tag: <Self>() => <const Id extends string, S extends LiveStoreSchema, Context = {}>(id: Id, options: CreateStoreOptions<S, Context> & {
51
+ export type Options<S extends LiveStoreSchema, Context = {}> = CreateStoreOptions<S, Context> & {
52
52
  readonly otelOptions?: Partial<OtelOptions> | undefined;
53
- }) => AtomLiveStore<Self, Id, S, Context>;
53
+ };
54
+ /**
55
+ * @since 1.0.0
56
+ * @category Constructors
57
+ */
58
+ export declare const Tag: <Self>() => <const Id extends string, S extends LiveStoreSchema, Context = {}>(id: Id, options: Options<S, Context> | ((get: Atom.Context) => Options<S, Context>)) => AtomLiveStore<Self, Id, S, Context>;
54
59
  //# sourceMappingURL=AtomLivestore.d.ts.map
@@ -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,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"}
1
+ {"version":3,"file":"AtomLivestore.d.ts","sourceRoot":"","sources":["../../src/AtomLivestore.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,12 @@ import * as Layer from "effect/Layer";
15
15
  */
16
16
  export const Tag = () => (id, options) => {
17
17
  const self = Context.Tag(id)();
18
- self.layer = Layer.scoped(self, createStore(options).pipe(provideOtel({
19
- parentSpanContext: options?.otelOptions?.rootSpanContext,
20
- otelTracer: options?.otelOptions?.tracer
18
+ const layerFromOptions = opts => Layer.scoped(self, createStore(opts).pipe(provideOtel({
19
+ parentSpanContext: opts?.otelOptions?.rootSpanContext,
20
+ otelTracer: opts?.otelOptions?.tracer
21
21
  }), Effect.orDie));
22
- self.runtime = Atom.runtime(self.layer);
22
+ self.runtime = Atom.runtime(typeof options === "function" ? get => layerFromOptions(options(get)) : layerFromOptions(options));
23
+ self.layer = self.runtime.layer;
23
24
  self.store = self.runtime.atom(Effect.contextWith(Context.get(self)));
24
25
  self.storeUnsafe = Atom.readable(get => {
25
26
  const result = get(self.store);
@@ -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","q","onUpdate","value","setSelf","success","addFinalizer","subscribe","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","layerFromOptions","opts","scoped","pipe","parentSpanContext","otelOptions","rootSpanContext","otelTracer","tracer","orDie","runtime","get","layer","store","atom","contextWith","storeUnsafe","readable","result","getOrElse","makeQuery","query","map","q","onUpdate","value","setSelf","success","addFinalizer","subscribe","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.6",
3
+ "version": "0.4.8",
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.10"
14
+ "@effect-atom/atom": "^0.4.12"
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@livestore/livestore": "*",
@@ -23,7 +23,7 @@ export interface AtomLiveStore<Self, Id extends string, S extends LiveStoreSchem
23
23
  _: never
24
24
  ): Context.TagClassShape<Id, Store<S, Context>>
25
25
 
26
- readonly layer: Layer.Layer<Self>
26
+ readonly layer: Atom.Atom<Layer.Layer<Self>>
27
27
  readonly runtime: Atom.AtomRuntime<Self>
28
28
 
29
29
  /**
@@ -62,6 +62,16 @@ declare global {
62
62
  }
63
63
  }
64
64
 
65
+ /**
66
+ * @since 1.0.0
67
+ * @category Models
68
+ */
69
+ export type Options<S extends LiveStoreSchema, Context = {}> =
70
+ & CreateStoreOptions<S, Context>
71
+ & {
72
+ readonly otelOptions?: Partial<OtelOptions> | undefined
73
+ }
74
+
65
75
  /**
66
76
  * @since 1.0.0
67
77
  * @category Constructors
@@ -69,23 +79,26 @@ declare global {
69
79
  export const Tag = <Self>() =>
70
80
  <const Id extends string, S extends LiveStoreSchema, Context = {}>(
71
81
  id: Id,
72
- options: CreateStoreOptions<S, Context> & {
73
- readonly otelOptions?: Partial<OtelOptions> | undefined
74
- }
82
+ options: Options<S, Context> | ((get: Atom.Context) => Options<S, Context>)
75
83
  ): AtomLiveStore<Self, Id, S, Context> => {
76
84
  const self: Mutable<AtomLiveStore<Self, Id, S, Context>> = Context.Tag(id)<Self, Store<S, Context>>() as any
77
85
 
78
- self.layer = Layer.scoped(
79
- self,
80
- createStore(options).pipe(
81
- provideOtel({
82
- parentSpanContext: options?.otelOptions?.rootSpanContext,
83
- otelTracer: options?.otelOptions?.tracer
84
- }),
85
- Effect.orDie
86
+ const layerFromOptions = (opts: Options<S, Context>) =>
87
+ Layer.scoped(
88
+ self,
89
+ createStore(opts).pipe(
90
+ provideOtel({
91
+ parentSpanContext: opts?.otelOptions?.rootSpanContext,
92
+ otelTracer: opts?.otelOptions?.tracer
93
+ }),
94
+ Effect.orDie
95
+ )
86
96
  )
97
+
98
+ self.runtime = Atom.runtime(
99
+ typeof options === "function" ? (get) => layerFromOptions(options(get)) : layerFromOptions(options)
87
100
  )
88
- self.runtime = Atom.runtime(self.layer)
101
+ self.layer = self.runtime.layer
89
102
  self.store = self.runtime.atom(Effect.contextWith(Context.get(self)) as any)
90
103
  self.storeUnsafe = Atom.readable((get) => {
91
104
  const result = get(self.store)