@livestore/utils 0.3.0-dev.8 → 0.3.0-dev.9
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/.tsbuildinfo.json +1 -1
- package/dist/effect/BucketQueue.d.ts +1 -0
- package/dist/effect/BucketQueue.d.ts.map +1 -1
- package/dist/effect/BucketQueue.js +1 -0
- package/dist/effect/BucketQueue.js.map +1 -1
- package/dist/effect/Subscribable.d.ts +73 -0
- package/dist/effect/Subscribable.d.ts.map +1 -0
- package/dist/effect/Subscribable.js +75 -0
- package/dist/effect/Subscribable.js.map +1 -0
- package/dist/effect/index.d.ts +1 -0
- package/dist/effect/index.d.ts.map +1 -1
- package/dist/effect/index.js +4 -1
- package/dist/effect/index.js.map +1 -1
- package/package.json +2 -2
- package/src/effect/BucketQueue.ts +2 -0
- package/src/effect/Subscribable.ts +143 -0
- package/src/effect/index.ts +2 -0
|
@@ -4,4 +4,5 @@ export declare const make: <A>() => STM.STM<BucketQueue<A>>;
|
|
|
4
4
|
export declare const offerAll: <A>(self: BucketQueue<A>, elements: ReadonlyArray<A>) => STM.STM<void, never, never>;
|
|
5
5
|
export declare const clear: <A>(self: BucketQueue<A>) => STM.STM<void, never, never>;
|
|
6
6
|
export declare const takeBetween: <A>(self: BucketQueue<A>, min: number, max: number) => STM.STM<A[], never, never>;
|
|
7
|
+
export declare const takeAll: <A>(self: BucketQueue<A>) => STM.STM<A[], never, never>;
|
|
7
8
|
//# sourceMappingURL=BucketQueue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BucketQueue.d.ts","sourceRoot":"","sources":["../../src/effect/BucketQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAEzC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;AAE3C,eAAO,MAAM,IAAI,GAAI,CAAC,OAAK,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAuB,CAAA;AAExE,eAAO,MAAM,QAAQ,GAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,gCACV,CAAA;AAElE,eAAO,MAAM,KAAK,GAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,gCAAuB,CAAA;AAEpE,eAAO,MAAM,WAAW,GAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,OAAO,MAAM,OAAO,MAAM,+BAUzE,CAAA"}
|
|
1
|
+
{"version":3,"file":"BucketQueue.d.ts","sourceRoot":"","sources":["../../src/effect/BucketQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAEzC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;AAE3C,eAAO,MAAM,IAAI,GAAI,CAAC,OAAK,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAuB,CAAA;AAExE,eAAO,MAAM,QAAQ,GAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,gCACV,CAAA;AAElE,eAAO,MAAM,KAAK,GAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,gCAAuB,CAAA;AAEpE,eAAO,MAAM,WAAW,GAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,OAAO,MAAM,OAAO,MAAM,+BAUzE,CAAA;AAEJ,eAAO,MAAM,OAAO,GAAI,CAAC,QAAQ,WAAW,CAAC,CAAC,CAAC,+BAAmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BucketQueue.js","sourceRoot":"","sources":["../../src/effect/BucketQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAIzC,MAAM,CAAC,MAAM,IAAI,GAAG,GAA+B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAM,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,IAAoB,EAAE,QAA0B,EAAE,EAAE,CAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,IAAoB,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CAC/E,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;IACf,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/D,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC7B,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"BucketQueue.js","sourceRoot":"","sources":["../../src/effect/BucketQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAIzC,MAAM,CAAC,MAAM,IAAI,GAAG,GAA+B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAM,EAAE,CAAC,CAAA;AAExE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,IAAoB,EAAE,QAA0B,EAAE,EAAE,CAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;AAElE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAI,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,IAAoB,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CAC/E,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;IACf,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/D,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC7B,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,IAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import { Effect, Readable, Stream } from 'effect';
|
|
5
|
+
/**
|
|
6
|
+
* @since 2.0.0
|
|
7
|
+
* @category type ids
|
|
8
|
+
*/
|
|
9
|
+
export declare const TypeId: unique symbol;
|
|
10
|
+
/**
|
|
11
|
+
* @since 2.0.0
|
|
12
|
+
* @category type ids
|
|
13
|
+
*/
|
|
14
|
+
export type TypeId = typeof TypeId;
|
|
15
|
+
/**
|
|
16
|
+
* @since 2.0.0
|
|
17
|
+
* @category models
|
|
18
|
+
*/
|
|
19
|
+
export interface Subscribable<A, E = never, R = never> extends Readable.Readable<A, E, R>, Effect.Effect<A, E, R> {
|
|
20
|
+
readonly [TypeId]: TypeId;
|
|
21
|
+
readonly changes: Stream.Stream<A, E, R>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @since 2.0.0
|
|
25
|
+
* @category refinements
|
|
26
|
+
*/
|
|
27
|
+
export declare const isSubscribable: (u: unknown) => u is Subscribable<unknown, unknown, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* @since 2.0.0
|
|
30
|
+
* @category constructors
|
|
31
|
+
*/
|
|
32
|
+
export declare const make: <A, E, R>(options: {
|
|
33
|
+
readonly get: Effect.Effect<A, E, R>;
|
|
34
|
+
readonly changes: Stream.Stream<A, E, R>;
|
|
35
|
+
}) => Subscribable<A, E, R>;
|
|
36
|
+
/**
|
|
37
|
+
* @since 2.0.0
|
|
38
|
+
* @category combinators
|
|
39
|
+
*/
|
|
40
|
+
export declare const map: {
|
|
41
|
+
/**
|
|
42
|
+
* @since 2.0.0
|
|
43
|
+
* @category combinators
|
|
44
|
+
*/
|
|
45
|
+
<A, B>(f: (a: NoInfer<A>) => B): <E, R>(fa: Subscribable<A, E, R>) => Subscribable<B, E, R>;
|
|
46
|
+
/**
|
|
47
|
+
* @since 2.0.0
|
|
48
|
+
* @category combinators
|
|
49
|
+
*/
|
|
50
|
+
<A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R>;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* @since 2.0.0
|
|
54
|
+
* @category combinators
|
|
55
|
+
*/
|
|
56
|
+
export declare const mapEffect: {
|
|
57
|
+
/**
|
|
58
|
+
* @since 2.0.0
|
|
59
|
+
* @category combinators
|
|
60
|
+
*/
|
|
61
|
+
<A, B, E2, R2>(f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>): <E, R>(fa: Subscribable<A, E, R>) => Subscribable<B, E | E2, R | R2>;
|
|
62
|
+
/**
|
|
63
|
+
* @since 2.0.0
|
|
64
|
+
* @category combinators
|
|
65
|
+
*/
|
|
66
|
+
<A, E, R, B, E2, R2>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>): Subscribable<B, E | E2, R | R2>;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* @since 2.0.0
|
|
70
|
+
* @category constructors
|
|
71
|
+
*/
|
|
72
|
+
export declare const unwrap: <A, E, R, E1, R1>(effect: Effect.Effect<Subscribable<A, E, R>, E1, R1>) => Subscribable<A, E | E1, R | R1>;
|
|
73
|
+
//# sourceMappingURL=Subscribable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subscribable.d.ts","sourceRoot":"","sources":["../../src/effect/Subscribable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
// Fork of effect/Subscribable.ts which makes Subscribable yieldable
|
|
2
|
+
/**
|
|
3
|
+
* @since 2.0.0
|
|
4
|
+
*/
|
|
5
|
+
import { Effect, Effectable, Readable, Stream } from 'effect';
|
|
6
|
+
import { dual } from 'effect/Function';
|
|
7
|
+
import { hasProperty } from 'effect/Predicate';
|
|
8
|
+
/**
|
|
9
|
+
* @since 2.0.0
|
|
10
|
+
* @category type ids
|
|
11
|
+
*/
|
|
12
|
+
export const TypeId = Symbol.for('effect/Subscribable');
|
|
13
|
+
/**
|
|
14
|
+
* @since 2.0.0
|
|
15
|
+
* @category refinements
|
|
16
|
+
*/
|
|
17
|
+
export const isSubscribable = (u) => hasProperty(u, TypeId);
|
|
18
|
+
// const Proto: Omit<Subscribable<any>, 'get' | 'changes'> = {
|
|
19
|
+
// [Readable.TypeId]: Readable.TypeId,
|
|
20
|
+
// [TypeId]: TypeId,
|
|
21
|
+
// pipe() {
|
|
22
|
+
// return pipeArguments(this, arguments)
|
|
23
|
+
// },
|
|
24
|
+
// }
|
|
25
|
+
class SubscribableImpl extends Effectable.Class {
|
|
26
|
+
get;
|
|
27
|
+
changes;
|
|
28
|
+
// @ts-expect-error type symbol
|
|
29
|
+
[TypeId] = TypeId;
|
|
30
|
+
// @ts-expect-error type symbol
|
|
31
|
+
[Readable.TypeId] = Readable.TypeId;
|
|
32
|
+
constructor(get, changes) {
|
|
33
|
+
super();
|
|
34
|
+
this.get = get;
|
|
35
|
+
this.changes = changes;
|
|
36
|
+
}
|
|
37
|
+
// eslint-disable-next-line prefer-arrow/prefer-arrow-functions
|
|
38
|
+
commit() {
|
|
39
|
+
return this.get;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @since 2.0.0
|
|
44
|
+
* @category constructors
|
|
45
|
+
*/
|
|
46
|
+
// export const make = <A, E, R>(options: {
|
|
47
|
+
// readonly get: Effect.Effect<A, E, R>
|
|
48
|
+
// readonly changes: Stream.Stream<A, E, R>
|
|
49
|
+
// }): Subscribable<A, E, R> => Object.assign(Object.create(Proto), options)
|
|
50
|
+
export const make = (options) => new SubscribableImpl(options.get, options.changes);
|
|
51
|
+
/**
|
|
52
|
+
* @since 2.0.0
|
|
53
|
+
* @category combinators
|
|
54
|
+
*/
|
|
55
|
+
export const map = dual(2, (self, f) => make({
|
|
56
|
+
get: Effect.map(self.get, f),
|
|
57
|
+
changes: Stream.map(self.changes, f),
|
|
58
|
+
}));
|
|
59
|
+
/**
|
|
60
|
+
* @since 2.0.0
|
|
61
|
+
* @category combinators
|
|
62
|
+
*/
|
|
63
|
+
export const mapEffect = dual(2, (self, f) => make({
|
|
64
|
+
get: Effect.flatMap(self.get, f),
|
|
65
|
+
changes: Stream.mapEffect(self.changes, f),
|
|
66
|
+
}));
|
|
67
|
+
/**
|
|
68
|
+
* @since 2.0.0
|
|
69
|
+
* @category constructors
|
|
70
|
+
*/
|
|
71
|
+
export const unwrap = (effect) => make({
|
|
72
|
+
get: Effect.flatMap(effect, (s) => s.get),
|
|
73
|
+
changes: Stream.unwrap(Effect.map(effect, (s) => s.changes)),
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=Subscribable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Subscribable.js","sourceRoot":"","sources":["../../src/effect/Subscribable.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;AAiBtE;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAU,EAAgD,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAElH,8DAA8D;AAC9D,wCAAwC;AACxC,sBAAsB;AACtB,aAAa;AACb,4CAA4C;AAC5C,OAAO;AACP,IAAI;AAEJ,MAAM,gBAA2B,SAAQ,UAAU,CAAC,KAAQ;IAM/C;IACA;IANX,+BAA+B;IACtB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC1B,+BAA+B;IACtB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC5C,YACW,GAAqB,EACrB,OAAyB;QAElC,KAAK,EAAE,CAAA;QAHE,QAAG,GAAH,GAAG,CAAkB;QACrB,YAAO,GAAP,OAAO,CAAkB;IAGpC,CAAC;IACD,+DAA+D;IAC/D,MAAM;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;CACF;AAED;;;GAGG;AACH,2CAA2C;AAC3C,yCAAyC;AACzC,6CAA6C;AAC7C,4EAA4E;AAE5E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAU,OAG7B,EAAyB,EAAE,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAU,EAAE,OAAO,CAAC,OAAc,CAA0B,CAAA;AAEtH;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAWZ,IAAI,CACN,CAAC,EACD,CAAa,IAA2B,EAAE,CAAuB,EAAyB,EAAE,CAC1F,IAAI,CAAC;IACH,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;CACrC,CAAC,CACL,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAgBlB,IAAI,CACN,CAAC,EACD,CACE,IAA2B,EAC3B,CAA8C,EACb,EAAE,CACnC,IAAI,CAAC;IACH,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;CAC3C,CAAC,CACL,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,MAAoD,EACnB,EAAE,CACnC,IAAI,CAAC;IACH,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;CAC7D,CAAC,CAAA"}
|
package/dist/effect/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { dual } from 'effect/Function';
|
|
|
4
4
|
export * as Stream from './Stream.js';
|
|
5
5
|
export * as BucketQueue from './BucketQueue.js';
|
|
6
6
|
export * as SubscriptionRef from './SubscriptionRef.js';
|
|
7
|
+
export * as Subscribable from './Subscribable.js';
|
|
7
8
|
export * as Logger from './Logger.js';
|
|
8
9
|
export * as WebChannel from './WebChannel.js';
|
|
9
10
|
export * as WebSocket from './WebSocket.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/effect/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,OAAO,EACL,KAAK,EACL,GAAG,EACH,eAAe,EACf,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,IAAI,aAAa,EACtB,MAAM,IAAI,cAAc,EACxB,SAAS,EACT,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,MAAM,EACN,MAAM,EACN,QAAQ,EAER,MAAM,EACN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/effect/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,OAAO,EACL,KAAK,EACL,GAAG,EACH,eAAe,EACf,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,IAAI,aAAa,EACtB,MAAM,IAAI,cAAc,EACxB,SAAS,EACT,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,MAAM,EACN,MAAM,EACN,QAAQ,EAER,MAAM,EACN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS,EAET,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,KAAK,EACL,YAAY,EACZ,OAAO,GACR,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC5C,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAE1D,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,MAAM,EACN,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,MAAM,GACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAI7E,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
|
package/dist/effect/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import '../global.js';
|
|
2
2
|
export { Scope, Ref, SynchronizedRef, Queue, Fiber, FiberId, FiberSet, FiberMap, FiberHandle, Inspectable, RuntimeFlags, PubSub, Exit, Cause, Runtime, FiberRef, FiberRefs, FiberRefsPatch, Deferred, Metric, MetricState, Request, Tracer, Context, Data, Either, Brand, Hash, Equal, Chunk, Duration, Array as ReadonlyArray, Record as ReadonlyRecord, SortedMap, HashMap, HashSet, MutableHashSet, MutableHashMap, TQueue, Option, LogLevel,
|
|
3
3
|
// Logger,
|
|
4
|
-
Config, Layer, STM, TRef, Channel, Predicate,
|
|
4
|
+
Config, Layer, STM, TRef, Channel, Predicate,
|
|
5
|
+
// Subscribable,
|
|
6
|
+
pipe, identity, GlobalValue, Match, TestServices, Mailbox, } from 'effect';
|
|
5
7
|
export { dual } from 'effect/Function';
|
|
6
8
|
export * as Stream from './Stream.js';
|
|
7
9
|
export * as BucketQueue from './BucketQueue.js';
|
|
8
10
|
export * as SubscriptionRef from './SubscriptionRef.js';
|
|
11
|
+
export * as Subscribable from './Subscribable.js';
|
|
9
12
|
export * as Logger from './Logger.js';
|
|
10
13
|
export * as WebChannel from './WebChannel.js';
|
|
11
14
|
export * as WebSocket from './WebSocket.js';
|
package/dist/effect/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/effect/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,OAAO,EACL,KAAK,EACL,GAAG,EACH,eAAe,EACf,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,IAAI,aAAa,EACtB,MAAM,IAAI,cAAc,EACxB,SAAS,EACT,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,MAAM,EACN,MAAM,EACN,QAAQ;AACR,UAAU;AACV,MAAM,EACN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/effect/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,OAAO,EACL,KAAK,EACL,GAAG,EACH,eAAe,EACf,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,IAAI,aAAa,EACtB,MAAM,IAAI,cAAc,EACxB,SAAS,EACT,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,MAAM,EACN,MAAM,EACN,QAAQ;AACR,UAAU;AACV,MAAM,EACN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,SAAS;AACT,gBAAgB;AAChB,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,KAAK,EACL,YAAY,EACZ,OAAO,GACR,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAA;AAC1D,iEAAiE;AACjE,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,MAAM,EACN,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,MAAM,GACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE7E,oEAAoE;AAEpE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/utils",
|
|
3
|
-
"version": "0.3.0-dev.
|
|
3
|
+
"version": "0.3.0-dev.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"./dist/global.js"
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"msgpackr": "1.11.2",
|
|
66
66
|
"nanoid": "5.0.9",
|
|
67
67
|
"pretty-bytes": "6.1.1",
|
|
68
|
-
"@livestore/db-schema": "0.3.0-dev.
|
|
68
|
+
"@livestore/db-schema": "0.3.0-dev.9"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@effect/cli": "^0.54.1",
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// Fork of effect/Subscribable.ts which makes Subscribable yieldable
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @since 2.0.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Effect, Effectable, Readable, Stream } from 'effect'
|
|
8
|
+
import { dual } from 'effect/Function'
|
|
9
|
+
import { hasProperty } from 'effect/Predicate'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @since 2.0.0
|
|
13
|
+
* @category type ids
|
|
14
|
+
*/
|
|
15
|
+
export const TypeId: unique symbol = Symbol.for('effect/Subscribable')
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @since 2.0.0
|
|
19
|
+
* @category type ids
|
|
20
|
+
*/
|
|
21
|
+
export type TypeId = typeof TypeId
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @since 2.0.0
|
|
25
|
+
* @category models
|
|
26
|
+
*/
|
|
27
|
+
export interface Subscribable<A, E = never, R = never> extends Readable.Readable<A, E, R>, Effect.Effect<A, E, R> {
|
|
28
|
+
readonly [TypeId]: TypeId
|
|
29
|
+
readonly changes: Stream.Stream<A, E, R>
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @since 2.0.0
|
|
34
|
+
* @category refinements
|
|
35
|
+
*/
|
|
36
|
+
export const isSubscribable = (u: unknown): u is Subscribable<unknown, unknown, unknown> => hasProperty(u, TypeId)
|
|
37
|
+
|
|
38
|
+
// const Proto: Omit<Subscribable<any>, 'get' | 'changes'> = {
|
|
39
|
+
// [Readable.TypeId]: Readable.TypeId,
|
|
40
|
+
// [TypeId]: TypeId,
|
|
41
|
+
// pipe() {
|
|
42
|
+
// return pipeArguments(this, arguments)
|
|
43
|
+
// },
|
|
44
|
+
// }
|
|
45
|
+
|
|
46
|
+
class SubscribableImpl<in out A> extends Effectable.Class<A> implements Subscribable<A> {
|
|
47
|
+
// @ts-expect-error type symbol
|
|
48
|
+
readonly [TypeId] = TypeId
|
|
49
|
+
// @ts-expect-error type symbol
|
|
50
|
+
readonly [Readable.TypeId] = Readable.TypeId
|
|
51
|
+
constructor(
|
|
52
|
+
readonly get: Effect.Effect<A>,
|
|
53
|
+
readonly changes: Stream.Stream<A>,
|
|
54
|
+
) {
|
|
55
|
+
super()
|
|
56
|
+
}
|
|
57
|
+
// eslint-disable-next-line prefer-arrow/prefer-arrow-functions
|
|
58
|
+
commit() {
|
|
59
|
+
return this.get
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @since 2.0.0
|
|
65
|
+
* @category constructors
|
|
66
|
+
*/
|
|
67
|
+
// export const make = <A, E, R>(options: {
|
|
68
|
+
// readonly get: Effect.Effect<A, E, R>
|
|
69
|
+
// readonly changes: Stream.Stream<A, E, R>
|
|
70
|
+
// }): Subscribable<A, E, R> => Object.assign(Object.create(Proto), options)
|
|
71
|
+
|
|
72
|
+
export const make = <A, E, R>(options: {
|
|
73
|
+
readonly get: Effect.Effect<A, E, R>
|
|
74
|
+
readonly changes: Stream.Stream<A, E, R>
|
|
75
|
+
}): Subscribable<A, E, R> => new SubscribableImpl(options.get as any, options.changes as any) as Subscribable<A, E, R>
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @since 2.0.0
|
|
79
|
+
* @category combinators
|
|
80
|
+
*/
|
|
81
|
+
export const map: {
|
|
82
|
+
/**
|
|
83
|
+
* @since 2.0.0
|
|
84
|
+
* @category combinators
|
|
85
|
+
*/
|
|
86
|
+
<A, B>(f: (a: NoInfer<A>) => B): <E, R>(fa: Subscribable<A, E, R>) => Subscribable<B, E, R>
|
|
87
|
+
/**
|
|
88
|
+
* @since 2.0.0
|
|
89
|
+
* @category combinators
|
|
90
|
+
*/
|
|
91
|
+
<A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R>
|
|
92
|
+
} = dual(
|
|
93
|
+
2,
|
|
94
|
+
<A, E, R, B>(self: Subscribable<A, E, R>, f: (a: NoInfer<A>) => B): Subscribable<B, E, R> =>
|
|
95
|
+
make({
|
|
96
|
+
get: Effect.map(self.get, f),
|
|
97
|
+
changes: Stream.map(self.changes, f),
|
|
98
|
+
}),
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @since 2.0.0
|
|
103
|
+
* @category combinators
|
|
104
|
+
*/
|
|
105
|
+
export const mapEffect: {
|
|
106
|
+
/**
|
|
107
|
+
* @since 2.0.0
|
|
108
|
+
* @category combinators
|
|
109
|
+
*/
|
|
110
|
+
<A, B, E2, R2>(
|
|
111
|
+
f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>,
|
|
112
|
+
): <E, R>(fa: Subscribable<A, E, R>) => Subscribable<B, E | E2, R | R2>
|
|
113
|
+
/**
|
|
114
|
+
* @since 2.0.0
|
|
115
|
+
* @category combinators
|
|
116
|
+
*/
|
|
117
|
+
<A, E, R, B, E2, R2>(
|
|
118
|
+
self: Subscribable<A, E, R>,
|
|
119
|
+
f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>,
|
|
120
|
+
): Subscribable<B, E | E2, R | R2>
|
|
121
|
+
} = dual(
|
|
122
|
+
2,
|
|
123
|
+
<A, E, R, B, E2, R2>(
|
|
124
|
+
self: Subscribable<A, E, R>,
|
|
125
|
+
f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>,
|
|
126
|
+
): Subscribable<B, E | E2, R | R2> =>
|
|
127
|
+
make({
|
|
128
|
+
get: Effect.flatMap(self.get, f),
|
|
129
|
+
changes: Stream.mapEffect(self.changes, f),
|
|
130
|
+
}),
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* @since 2.0.0
|
|
135
|
+
* @category constructors
|
|
136
|
+
*/
|
|
137
|
+
export const unwrap = <A, E, R, E1, R1>(
|
|
138
|
+
effect: Effect.Effect<Subscribable<A, E, R>, E1, R1>,
|
|
139
|
+
): Subscribable<A, E | E1, R | R1> =>
|
|
140
|
+
make({
|
|
141
|
+
get: Effect.flatMap(effect, (s) => s.get),
|
|
142
|
+
changes: Stream.unwrap(Effect.map(effect, (s) => s.changes)),
|
|
143
|
+
})
|
package/src/effect/index.ts
CHANGED
|
@@ -49,6 +49,7 @@ export {
|
|
|
49
49
|
TRef,
|
|
50
50
|
Channel,
|
|
51
51
|
Predicate,
|
|
52
|
+
// Subscribable,
|
|
52
53
|
pipe,
|
|
53
54
|
identity,
|
|
54
55
|
GlobalValue,
|
|
@@ -64,6 +65,7 @@ export * as Stream from './Stream.js'
|
|
|
64
65
|
export * as BucketQueue from './BucketQueue.js'
|
|
65
66
|
|
|
66
67
|
export * as SubscriptionRef from './SubscriptionRef.js'
|
|
68
|
+
export * as Subscribable from './Subscribable.js'
|
|
67
69
|
|
|
68
70
|
export * as Logger from './Logger.js'
|
|
69
71
|
|