@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.
- package/dist/cjs/AtomLivestore.js +5 -4
- package/dist/cjs/AtomLivestore.js.map +1 -1
- package/dist/dts/AtomLivestore.d.ts +9 -4
- package/dist/dts/AtomLivestore.d.ts.map +1 -1
- package/dist/esm/AtomLivestore.js +5 -4
- package/dist/esm/AtomLivestore.js.map +1 -1
- package/package.json +2 -2
- package/src/AtomLivestore.ts +26 -13
|
@@ -42,11 +42,12 @@ function _interopRequireWildcard(e, t) {
|
|
|
42
42
|
*/
|
|
43
43
|
const Tag = () => (id, options) => {
|
|
44
44
|
const self = Context.Tag(id)();
|
|
45
|
-
|
|
46
|
-
parentSpanContext:
|
|
47
|
-
otelTracer:
|
|
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(
|
|
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","
|
|
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":"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","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
|
|
49
|
+
* @category Models
|
|
50
50
|
*/
|
|
51
|
-
export
|
|
51
|
+
export type Options<S extends LiveStoreSchema, Context = {}> = CreateStoreOptions<S, Context> & {
|
|
52
52
|
readonly otelOptions?: Partial<OtelOptions> | undefined;
|
|
53
|
-
}
|
|
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;
|
|
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
|
-
|
|
19
|
-
parentSpanContext:
|
|
20
|
-
otelTracer:
|
|
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(
|
|
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","
|
|
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":"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;AA+DrC;;;;AAIA,OAAO,MAAMC,GAAG,GAAGA,CAAA,KACnB,CACEC,EAAM,EACNC,OAA2E,KACpC;EACvC,MAAMC,IAAI,GAAiDP,OAAO,CAACI,GAAG,CAACC,EAAE,CAAC,EAAkC;EAE5G,MAAMG,gBAAgB,GAAIC,IAAyB,IACjDN,KAAK,CAACO,MAAM,CACVH,IAAI,EACJT,WAAW,CAACW,IAAI,CAAC,CAACE,IAAI,CACpBZ,WAAW,CAAC;IACVa,iBAAiB,EAAEH,IAAI,EAAEI,WAAW,EAAEC,eAAe;IACrDC,UAAU,EAAEN,IAAI,EAAEI,WAAW,EAAEG;GAChC,CAAC,EACFf,MAAM,CAACgB,KAAK,CACb,CACF;EAEHV,IAAI,CAACW,OAAO,GAAGtB,IAAI,CAACsB,OAAO,CACzB,OAAOZ,OAAO,KAAK,UAAU,GAAIa,GAAG,IAAKX,gBAAgB,CAACF,OAAO,CAACa,GAAG,CAAC,CAAC,GAAGX,gBAAgB,CAACF,OAAO,CAAC,CACpG;EACDC,IAAI,CAACa,KAAK,GAAGb,IAAI,CAACW,OAAO,CAACE,KAAK;EAC/Bb,IAAI,CAACc,KAAK,GAAGd,IAAI,CAACW,OAAO,CAACI,IAAI,CAACrB,MAAM,CAACsB,WAAW,CAACvB,OAAO,CAACmB,GAAG,CAACZ,IAAI,CAAC,CAAQ,CAAC;EAC5EA,IAAI,CAACiB,WAAW,GAAG5B,IAAI,CAAC6B,QAAQ,CAAEN,GAAG,IAAI;IACvC,MAAMO,MAAM,GAAGP,GAAG,CAACZ,IAAI,CAACc,KAAK,CAAC;IAC9B,OAAOxB,MAAM,CAAC8B,SAAS,CAACD,MAAM,EAAExB,cAAc,CAAC;EACjD,CAAC,CAAC;EACFK,IAAI,CAACqB,SAAS,GAAOC,KAAiE,IACpFjC,IAAI,CAAC6B,QAAQ,CAAEN,GAAG,IAAI;IACpB,MAAME,KAAK,GAAGF,GAAG,CAACZ,IAAI,CAACc,KAAK,CAAC;IAC7B,OAAOxB,MAAM,CAACiC,GAAG,CAACT,KAAK,EAAGA,KAAK,IAAI;MACjC,MAAMU,CAAC,GAAG,OAAOF,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACV,GAAG,CAAC,GAAGU,KAAK;MAC1D,SAASG,QAAQA,CAACC,KAAQ;QACxBd,GAAG,CAACe,OAAO,CAACrC,MAAM,CAACsC,OAAO,CAACF,KAAK,CAAC,CAAC;MACpC;MACAD,QAAQ,CAACA,QAAQ,GAAGA,QAAQ;MAC5Bb,GAAG,CAACiB,YAAY,CACdf,KAAK,CAACgB,SAAS,CAACN,CAAC,EAAEC,QAAQ,CAAC,CAC7B;MACD,OAAOX,KAAK,CAACQ,KAAK,CAACE,CAAC,CAAC;IACvB,CAAC,CAAC;EACJ,CAAC,CAAC;EACJxB,IAAI,CAAC+B,eAAe,GAAOT,KAAiE,IAC1FjC,IAAI,CAAC6B,QAAQ,CAAEN,GAAG,IAAI;IACpB,MAAME,KAAK,GAAGF,GAAG,CAACZ,IAAI,CAACiB,WAAW,CAAC;IACnC,IAAIH,KAAK,KAAKkB,SAAS,EAAE;MACvB,OAAOA,SAAS;IAClB;IACA,MAAMR,CAAC,GAAG,OAAOF,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACV,GAAG,CAAC,GAAGU,KAAK;IAC1D,SAASG,QAAQA,CAACC,KAAQ;MACxBd,GAAG,CAACe,OAAO,CAACD,KAAK,CAAC;IACpB;IACAD,QAAQ,CAACA,QAAQ,GAAGA,QAAQ;IAC5Bb,GAAG,CAACiB,YAAY,CACdf,KAAK,CAACgB,SAAS,CAACN,CAAC,EAAEC,QAAQ,CAAC,CAC7B;IACD,OAAOX,KAAK,CAACQ,KAAK,CAACE,CAAC,CAAC;EACvB,CAAC,CAAC;EACJxB,IAAI,CAACiC,MAAM,GAAG5C,IAAI,CAAC6C,QAAQ,CAAEtB,GAAG,IAAI;IAClCA,GAAG,CAACZ,IAAI,CAACiB,WAAW,CAAC;EACvB,CAAC,EAAE,CAACkB,GAAG,EAAET,KAAS,KAAI;IACpBS,GAAG,CAACvB,GAAG,CAACZ,IAAI,CAACiB,WAAW,CAAC,EAAEgB,MAAM,CAACP,KAAK,CAAC;EAC1C,CAAC,CAAC;EACF,OAAO1B,IAA2C;AACpD,CAAC","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.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.
|
|
14
|
+
"@effect-atom/atom": "^0.4.12"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@livestore/livestore": "*",
|
package/src/AtomLivestore.ts
CHANGED
|
@@ -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:
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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.
|
|
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)
|