@effect/cluster 0.38.1 → 0.38.3

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.
Files changed (36) hide show
  1. package/EntityProxy/package.json +6 -0
  2. package/EntityProxyServer/package.json +6 -0
  3. package/dist/cjs/ClusterWorkflowEngine.js +34 -66
  4. package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
  5. package/dist/cjs/EntityProxy.js +126 -0
  6. package/dist/cjs/EntityProxy.js.map +1 -0
  7. package/dist/cjs/EntityProxyServer.js +54 -0
  8. package/dist/cjs/EntityProxyServer.js.map +1 -0
  9. package/dist/cjs/ShardingConfig.js +1 -1
  10. package/dist/cjs/ShardingConfig.js.map +1 -1
  11. package/dist/cjs/index.js +5 -1
  12. package/dist/dts/ClusterWorkflowEngine.d.ts +0 -1
  13. package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
  14. package/dist/dts/EntityProxy.d.ts +93 -0
  15. package/dist/dts/EntityProxy.d.ts.map +1 -0
  16. package/dist/dts/EntityProxyServer.d.ts +26 -0
  17. package/dist/dts/EntityProxyServer.d.ts.map +1 -0
  18. package/dist/dts/ShardingConfig.d.ts.map +1 -1
  19. package/dist/dts/index.d.ts +8 -0
  20. package/dist/dts/index.d.ts.map +1 -1
  21. package/dist/esm/ClusterWorkflowEngine.js +34 -66
  22. package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
  23. package/dist/esm/EntityProxy.js +116 -0
  24. package/dist/esm/EntityProxy.js.map +1 -0
  25. package/dist/esm/EntityProxyServer.js +45 -0
  26. package/dist/esm/EntityProxyServer.js.map +1 -0
  27. package/dist/esm/ShardingConfig.js +1 -1
  28. package/dist/esm/ShardingConfig.js.map +1 -1
  29. package/dist/esm/index.js +8 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/package.json +21 -5
  32. package/src/ClusterWorkflowEngine.ts +54 -89
  33. package/src/EntityProxy.ts +193 -0
  34. package/src/EntityProxyServer.ts +86 -0
  35. package/src/ShardingConfig.ts +0 -1
  36. package/src/index.ts +10 -0
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as HttpApiEndpoint from "@effect/platform/HttpApiEndpoint";
5
+ import * as HttpApiGroup from "@effect/platform/HttpApiGroup";
6
+ import * as Rpc from "@effect/rpc/Rpc";
7
+ import * as RpcGroup from "@effect/rpc/RpcGroup";
8
+ import * as Schema from "effect/Schema";
9
+ import { AlreadyProcessingMessage, EntityNotManagedByRunner, MailboxFull, PersistenceError } from "./ClusterError.js";
10
+ import type * as Entity from "./Entity.js";
11
+ /**
12
+ * Derives an `RpcGroup` from an `Entity`.
13
+ *
14
+ * ```ts
15
+ * import { ClusterSchema, Entity, EntityProxy, EntityProxyServer } from "@effect/cluster"
16
+ * import { Rpc, RpcServer } from "@effect/rpc"
17
+ * import { Layer, Schema } from "effect"
18
+ *
19
+ * export const Counter = Entity.make("Counter", [
20
+ * Rpc.make("Increment", {
21
+ * payload: { id: Schema.String, amount: Schema.Number },
22
+ * primaryKey: ({ id }) => id,
23
+ * success: Schema.Number
24
+ * })
25
+ * ]).annotateRpcs(ClusterSchema.Persisted, true)
26
+ *
27
+ * // Use EntityProxy.toRpcGroup to create a `RpcGroup` from the Counter entity
28
+ * export class MyRpcs extends EntityProxy.toRpcGroup(Counter) {}
29
+ *
30
+ * // Use EntityProxyServer.layerRpcHandlers to create a layer that implements
31
+ * // the rpc handlers
32
+ * const RpcServerLayer = RpcServer.layer(MyRpcs).pipe(
33
+ * Layer.provide(EntityProxyServer.layerRpcHandlers(Counter))
34
+ * )
35
+ * ```
36
+ *
37
+ * @since 1.0.0
38
+ * @category Constructors
39
+ */
40
+ export declare const toRpcGroup: <Rpcs extends Rpc.Any, const Prefix extends string = "">(entity: Entity.Entity<Rpcs>, options?: {
41
+ readonly prefix?: Prefix | undefined;
42
+ }) => RpcGroup.RpcGroup<ConvertRpcs<Rpcs, Prefix>>;
43
+ /**
44
+ * @since 1.0.0
45
+ */
46
+ export type ConvertRpcs<Rpcs extends Rpc.Any, Prefix extends string> = Rpcs extends Rpc.Rpc<infer _Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? Rpc.Rpc<`${Prefix}${_Tag}`, Schema.Struct<{
47
+ entityId: typeof Schema.String;
48
+ payload: _Payload;
49
+ }>, _Success, Schema.Schema<_Error["Type"] | MailboxFull | AlreadyProcessingMessage | PersistenceError | EntityNotManagedByRunner, _Error["Encoded"] | typeof MailboxFull["Encoded"] | typeof AlreadyProcessingMessage["Encoded"] | typeof PersistenceError["Encoded"] | typeof EntityNotManagedByRunner["Encoded"], _Error["Context"]>> : never;
50
+ /**
51
+ * Derives an `HttpApiGroup` from an `Entity`.
52
+ *
53
+ * ```ts
54
+ * import { ClusterSchema, Entity, EntityProxy, EntityProxyServer } from "@effect/cluster"
55
+ * import { HttpApi, HttpApiBuilder } from "@effect/platform"
56
+ * import { Rpc } from "@effect/rpc"
57
+ * import { Layer, Schema } from "effect"
58
+ *
59
+ * export const Counter = Entity.make("Counter", [
60
+ * Rpc.make("Increment", {
61
+ * payload: { id: Schema.String, amount: Schema.Number },
62
+ * primaryKey: ({ id }) => id,
63
+ * success: Schema.Number
64
+ * })
65
+ * ]).annotateRpcs(ClusterSchema.Persisted, true)
66
+ *
67
+ * // Use EntityProxy.toHttpApiGroup to create a `HttpApiGroup` from the
68
+ * // Counter entity
69
+ * export class MyApi extends HttpApi.make("api")
70
+ * .add(
71
+ * EntityProxy.toHttpApiGroup("counter", Counter)
72
+ * .prefix("/counter")
73
+ * )
74
+ * {}
75
+ *
76
+ * // Use EntityProxyServer.layerHttpApi to create a layer that implements
77
+ * // the handlers for the HttpApiGroup
78
+ * const ApiLayer = HttpApiBuilder.api(MyApi).pipe(
79
+ * Layer.provide(EntityProxyServer.layerHttpApi(MyApi, "counter", Counter))
80
+ * )
81
+ * ```
82
+ *
83
+ * @since 1.0.0
84
+ * @category Constructors
85
+ */
86
+ export declare const toHttpApiGroup: <const Name extends string, Rpcs extends Rpc.Any>(name: Name, entity: Entity.Entity<Rpcs>) => HttpApiGroup.HttpApiGroup<Name, ConvertHttpApi<Rpcs>>;
87
+ /**
88
+ * @since 1.0.0
89
+ */
90
+ export type ConvertHttpApi<Rpcs extends Rpc.Any> = Rpcs extends Rpc.Rpc<infer _Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? HttpApiEndpoint.HttpApiEndpoint<_Tag, "POST", {
91
+ readonly entityId: string;
92
+ }, never, _Payload["Type"], never, _Success["Type"], _Error["Type"] | MailboxFull | AlreadyProcessingMessage | PersistenceError | EntityNotManagedByRunner, _Payload["Context"] | _Success["Context"], _Error["Context"]> : never;
93
+ //# sourceMappingURL=EntityProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityProxy.d.ts","sourceRoot":"","sources":["../../src/EntityProxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as HttpApi from "@effect/platform/HttpApi";
5
+ import type { ApiGroup, HttpApiGroup } from "@effect/platform/HttpApiGroup";
6
+ import type * as Rpc from "@effect/rpc/Rpc";
7
+ import * as Layer from "effect/Layer";
8
+ import type * as Entity from "./Entity.js";
9
+ import type { Sharding } from "./Sharding.js";
10
+ /**
11
+ * @since 1.0.0
12
+ * @category Layers
13
+ */
14
+ export declare const layerHttpApi: <ApiId extends string, Groups extends HttpApiGroup.Any, ApiE, ApiR, Name extends HttpApiGroup.Name<Groups>, Rpcs extends Rpc.Any>(api: HttpApi.HttpApi<ApiId, Groups, ApiE, ApiR>, name: Name, entity: Entity.Entity<Rpcs>) => Layer.Layer<ApiGroup<ApiId, Name>, never, Sharding | Rpc.Context<Rpcs>>;
15
+ /**
16
+ * @since 1.0.0
17
+ * @category Layers
18
+ */
19
+ export declare const layerRpcHandlers: <Rpcs extends Rpc.Any, const Prefix extends string = "">(entity: Entity.Entity<Rpcs>, options?: {
20
+ readonly prefix?: Prefix;
21
+ }) => Layer.Layer<RpcHandlers<Rpcs, Prefix>, never, Sharding | Rpc.Context<Rpcs>>;
22
+ /**
23
+ * @since 1.0.0
24
+ */
25
+ export type RpcHandlers<Rpcs extends Rpc.Any, Prefix extends string> = Rpcs extends Rpc.Rpc<infer _Tag, infer _Payload, infer _Success, infer _Error, infer _Middleware> ? Rpc.Handler<`${Prefix}${_Tag}`> : never;
26
+ //# sourceMappingURL=EntityProxyServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityProxyServer.d.ts","sourceRoot":"","sources":["../../src/EntityProxyServer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,0BAA0B,CAAA;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAG3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,SAAS,MAAM,EACpB,MAAM,SAAS,YAAY,CAAC,GAAG,EAC/B,IAAI,EACJ,IAAI,EACJ,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EACtC,IAAI,SAAS,GAAG,CAAC,GAAG,EAEpB,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAC/C,MAAM,IAAI,EACV,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC1B,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAiBtE,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,SAAS,GAAG,CAAC,GAAG,EACpB,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,EAAE,EAChC,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,KAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAiBzE,CAAA;AAEL;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,SAAS,MAAM,IAAI,IAAI,SAAS,GAAG,CAAC,GAAG,CACzF,MAAM,IAAI,EACV,MAAM,QAAQ,EACd,MAAM,QAAQ,EACd,MAAM,MAAM,EACZ,MAAM,WAAW,CAClB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,GAC/B,KAAK,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShardingConfig.d.ts","sourceRoot":"","sources":["../../src/ShardingConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;;IAShD;;;;;;OAMG;4BACqB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IACpD;;;;OAIG;kCAC2B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IAC1D;;OAEG;4BACqB,MAAM;IAC9B;;;;OAIG;0BACmB,aAAa,CAAC,MAAM,CAAC;IAC3C;;;;OAIG;6BACsB,MAAM;IAC/B;;OAEG;kCAC2B,aAAa;IAC3C;;;OAGG;6CACsC,aAAa;IACtD;;OAEG;oCAC6B,MAAM,GAAG,WAAW;IACpD;;;OAGG;gCACyB,aAAa;IACzC;;;;OAIG;uCACgC,aAAa;IAChD;;OAEG;wCACiC,aAAa;IACjD;;OAEG;sCAC+B,aAAa;yCACV,aAAa;IAClD;;OAEG;gCACyB,aAAa;IAEzC;;;OAGG;0CACmC,OAAO;;AA/E/C;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,mBA0EhC;CAAG;AAIP;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,MAAM,CAgB3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAChC,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAW,CAAA;AAEjE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAmFvD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa;IA7MxB;;;;;;OAMG;4BACqB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IACpD;;;;OAIG;kCAC2B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IAC1D;;OAEG;4BACqB,MAAM;IAC9B;;;;OAIG;0BACmB,aAAa,CAAC,MAAM,CAAC;IAC3C;;;;OAIG;6BACsB,MAAM;IAC/B;;OAEG;kCAC2B,aAAa;IAC3C;;;OAGG;6CACsC,aAAa;IACtD;;OAEG;oCAC6B,MAAM,GAAG,WAAW;IACpD;;;OAGG;gCACyB,aAAa;IACzC;;;;OAIG;uCACgC,aAAa;IAChD;;OAEG;wCACiC,aAAa;IACjD;;OAEG;sCAC+B,aAAa;yCACV,aAAa;IAClD;;OAEG;gCACyB,aAAa;IAEzC;;;OAGG;0CACmC,OAAO;sBA2I9C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,KAAG,KAAK,CAAC,KAAK,CAC9F,cAAc,EACd,WAAW,CAKV,CAAA"}
1
+ {"version":3,"file":"ShardingConfig.d.ts","sourceRoot":"","sources":["../../src/ShardingConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;;IAShD;;;;;;OAMG;4BACqB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IACpD;;;;OAIG;kCAC2B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IAC1D;;OAEG;4BACqB,MAAM;IAC9B;;;;OAIG;0BACmB,aAAa,CAAC,MAAM,CAAC;IAC3C;;;;OAIG;6BACsB,MAAM;IAC/B;;OAEG;kCAC2B,aAAa;IAC3C;;;OAGG;6CACsC,aAAa;IACtD;;OAEG;oCAC6B,MAAM,GAAG,WAAW;IACpD;;;OAGG;gCACyB,aAAa;IACzC;;;;OAIG;uCACgC,aAAa;IAChD;;OAEG;wCACiC,aAAa;IACjD;;OAEG;sCAC+B,aAAa;yCACV,aAAa;IAClD;;OAEG;gCACyB,aAAa;IAEzC;;;OAGG;0CACmC,OAAO;;AA/E/C;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,mBA0EhC;CAAG;AAIP;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,MAAM,CAgB3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,UAAU,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,cAAc,CAChC,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAW,CAAA;AAEjE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAkFvD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa;IA5MxB;;;;;;OAMG;4BACqB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IACpD;;;;OAIG;kCAC2B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IAC1D;;OAEG;4BACqB,MAAM;IAC9B;;;;OAIG;0BACmB,aAAa,CAAC,MAAM,CAAC;IAC3C;;;;OAIG;6BACsB,MAAM;IAC/B;;OAEG;kCAC2B,aAAa;IAC3C;;;OAGG;6CACsC,aAAa;IACtD;;OAEG;oCAC6B,MAAM,GAAG,WAAW;IACpD;;;OAGG;gCACyB,aAAa;IACzC;;;;OAIG;uCACgC,aAAa;IAChD;;OAEG;wCACiC,aAAa;IACjD;;OAEG;sCAC+B,aAAa;yCACV,aAAa;IAClD;;OAEG;gCACyB,aAAa;IAEzC;;;OAGG;0CACmC,OAAO;sBA0I9C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,KAAG,KAAK,CAAC,KAAK,CAC9F,cAAc,EACd,WAAW,CAKV,CAAA"}
@@ -34,6 +34,14 @@ export * as EntityAddress from "./EntityAddress.js";
34
34
  * @since 1.0.0
35
35
  */
36
36
  export * as EntityId from "./EntityId.js";
37
+ /**
38
+ * @since 1.0.0
39
+ */
40
+ export * as EntityProxy from "./EntityProxy.js";
41
+ /**
42
+ * @since 1.0.0
43
+ */
44
+ export * as EntityProxyServer from "./EntityProxyServer.js";
37
45
  /**
38
46
  * @since 1.0.0
39
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA;AAEnE;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAE3E;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA;AAEnE;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,yBAAyB,MAAM,gCAAgC,CAAA;AAE3E;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAE7D;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA"}
@@ -49,7 +49,6 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
49
49
  idleTimeToLive: "5 minutes"
50
50
  });
51
51
  const clockClient = yield* ClockEntity.client;
52
- const deferredClient = yield* DeferredEntity.client;
53
52
  const requestIdFor = Effect.fnUntraced(function* (options) {
54
53
  const shardGroup = Context.get(options.workflow.annotations, ClusterSchema.ShardGroup)(options.executionId);
55
54
  const entityId = EntityId.make(options.executionId);
@@ -100,6 +99,18 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
100
99
  });
101
100
  yield* storage.clearAddress(clockAddress);
102
101
  });
102
+ const resume = Effect.fnUntraced(function* (workflow, executionId) {
103
+ const maybeReply = yield* requestReply({
104
+ workflow,
105
+ entityType: `Workflow/${workflow.name}`,
106
+ executionId,
107
+ tag: "run",
108
+ id: ""
109
+ });
110
+ const maybeSuspended = Option.filter(maybeReply, reply => reply.exit._tag === "Success" && reply.exit.value._tag === "Suspended");
111
+ if (Option.isNone(maybeSuspended)) return;
112
+ yield* sharding.reset(Snowflake.Snowflake(maybeSuspended.value.requestId));
113
+ });
103
114
  return WorkflowEngine.of({
104
115
  register(workflow, execute) {
105
116
  // eslint-disable-next-line @typescript-eslint/no-this-alias
@@ -156,7 +167,11 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
156
167
  return yield* entry.activity.executeEncoded.pipe(Workflow.intoResult, Effect.provide(Context.unsafeMake(contextMap)), Effect.ensuring(Effect.sync(() => {
157
168
  activities.delete(activityId);
158
169
  })));
159
- }, Rpc.fork)
170
+ }, Rpc.fork),
171
+ deferred: Effect.fnUntraced(function* (request) {
172
+ yield* ensureSuccess(resume(workflow, executionId));
173
+ return request.payload.exit;
174
+ })
160
175
  };
161
176
  }));
162
177
  });
@@ -170,17 +185,13 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
170
185
  discard
171
186
  })), Effect.orDie, Effect.scoped),
172
187
  interrupt: Effect.fnUntraced(function* (workflow, executionId) {
173
- const requestId = yield* requestIdFor({
188
+ const reply = yield* requestReply({
174
189
  workflow,
175
190
  entityType: `Workflow/${workflow.name}`,
176
191
  executionId,
177
192
  tag: "run",
178
193
  id: ""
179
194
  });
180
- if (Option.isNone(requestId)) {
181
- return;
182
- }
183
- const reply = yield* replyForRequestId(requestId.value);
184
195
  const nonSuspendedReply = reply.pipe(Option.filter(reply => reply.exit._tag !== "Success" || reply.exit.value._tag !== "Suspended"));
185
196
  if (Option.isSome(nonSuspendedReply)) {
186
197
  return;
@@ -199,26 +210,6 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
199
210
  times: 3,
200
211
  schedule: Schedule.exponential(250)
201
212
  }), Effect.orDie),
202
- resume: Effect.fnUntraced(function* (workflowName, executionId) {
203
- const workflow = workflows.get(workflowName);
204
- if (!workflow) {
205
- return yield* Effect.dieMessage(`WorkflowEngine.resume: ${workflowName} not registered`);
206
- }
207
- const maybeReply = yield* requestReply({
208
- workflow,
209
- entityType: `Workflow/${workflowName}`,
210
- executionId,
211
- tag: "run",
212
- id: ""
213
- });
214
- const maybeSuspended = Option.filter(maybeReply, reply => reply.exit._tag === "Success" && reply.exit.value._tag === "Suspended");
215
- if (Option.isNone(maybeSuspended)) return;
216
- yield* sharding.reset(Snowflake.Snowflake(maybeSuspended.value.requestId));
217
- }, Effect.retry({
218
- while: e => e._tag === "PersistenceError",
219
- times: 3,
220
- schedule: Schedule.exponential(250)
221
- }), Effect.orDie),
222
213
  activityExecute: Effect.fnUntraced(function* ({
223
214
  activity,
224
215
  attempt
@@ -258,28 +249,27 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
258
249
  }, Effect.scoped),
259
250
  deferredResult: deferred => WorkflowInstance.pipe(Effect.flatMap(instance => requestReply({
260
251
  workflow: instance.workflow,
261
- entityType: DeferredEntity.type,
252
+ entityType: `Workflow/${instance.workflow.name}`,
262
253
  executionId: instance.executionId,
263
- tag: "set",
254
+ tag: "deferred",
264
255
  id: deferred.name
265
256
  })), Effect.map(Option.map(reply => reply.exit)), Effect.retry({
266
257
  while: e => e._tag === "PersistenceError",
267
258
  times: 3,
268
259
  schedule: Schedule.exponential(250)
269
260
  }), Effect.orDie),
270
- deferredDone({
261
+ deferredDone: Effect.fnUntraced(function* ({
271
262
  deferred,
272
263
  executionId,
273
264
  exit,
274
265
  workflowName
275
266
  }) {
276
- const client = deferredClient(executionId);
277
- return Effect.orDie(client.set({
278
- workflowName,
267
+ const client = yield* RcMap.get(clients, workflowName);
268
+ return yield* Effect.orDie(client(executionId).deferred({
279
269
  name: deferred.name,
280
270
  exit
281
271
  }));
282
- },
272
+ }, Effect.scoped),
283
273
  scheduleClock(options) {
284
274
  const client = clockClient(options.executionId);
285
275
  return DateTime.now.pipe(Effect.flatMap(now => client.run({
@@ -303,11 +293,11 @@ const ActivityRpc = /*#__PURE__*/Rpc.make("activity", {
303
293
  attempt,
304
294
  name
305
295
  }) => activityPrimaryKey(name, attempt),
306
- success: /*#__PURE__*/Workflow.Result({
296
+ success: Workflow.Result({
307
297
  success: Schema.Unknown,
308
298
  error: Schema.Unknown
309
299
  })
310
- });
300
+ }).annotate(ClusterSchema.Persisted, true);
311
301
  const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`, [Rpc.make("run", {
312
302
  payload: workflow.payloadSchema.fields,
313
303
  primaryKey: () => "",
@@ -315,16 +305,8 @@ const makeWorkflowEntity = workflow => Entity.make(`Workflow/${workflow.name}`,
315
305
  success: workflow.successSchema,
316
306
  error: workflow.errorSchema
317
307
  })
318
- }), ActivityRpc]).annotateContext(workflow.annotations).annotateRpcs(ClusterSchema.Persisted, true).annotateRpcs(ClusterSchema.Uninterruptible, true);
319
- const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
320
- const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
321
- success: Schema.Unknown,
322
- failure: Schema.Unknown,
323
- defect: Schema.Defect
324
- }));
325
- const DeferredEntity = /*#__PURE__*/Entity.make("Workflow/-/DurableDeferred", [Rpc.make("set", {
308
+ }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), Rpc.make("deferred", {
326
309
  payload: {
327
- workflowName: Schema.String,
328
310
  name: Schema.String,
329
311
  exit: ExitUnknown
330
312
  },
@@ -332,26 +314,12 @@ const DeferredEntity = /*#__PURE__*/Entity.make("Workflow/-/DurableDeferred", [R
332
314
  name
333
315
  }) => name,
334
316
  success: ExitUnknown
335
- }), Rpc.make("resume", {
336
- payload: {
337
- workflowName: Schema.String,
338
- name: Schema.String
339
- },
340
- primaryKey: ({
341
- name
342
- }) => name
343
- })]).annotateRpcs(ClusterSchema.Persisted, true).annotateRpcs(ClusterSchema.Uninterruptible, true);
344
- const DeferredEntityLayer = /*#__PURE__*/DeferredEntity.toLayer(/*#__PURE__*/Effect.gen(function* () {
345
- const engine = yield* WorkflowEngine;
346
- const address = yield* Entity.CurrentAddress;
347
- const executionId = address.entityId;
348
- const client = (yield* DeferredEntity.client)(executionId);
349
- return {
350
- set: request => Effect.as(ensureSuccess(client.resume(request.payload, {
351
- discard: true
352
- })), request.payload.exit),
353
- resume: request => engine.resume(request.payload.workflowName, executionId)
354
- };
317
+ }).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true), ActivityRpc]).annotateContext(workflow.annotations);
318
+ const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
319
+ const ExitUnknown = /*#__PURE__*/Schema.encodedSchema(/*#__PURE__*/Schema.Exit({
320
+ success: Schema.Unknown,
321
+ failure: Schema.Unknown,
322
+ defect: Schema.Defect
355
323
  }));
356
324
  class ClockPayload extends /*#__PURE__*/Schema.Class(`Workflow/DurableClock/Run`)({
357
325
  name: Schema.String,
@@ -395,5 +363,5 @@ const InterruptSignal = /*#__PURE__*/DurableDeferred.make("Workflow/InterruptSig
395
363
  * @since 1.0.0
396
364
  * @category Layers
397
365
  */
398
- export const layer = /*#__PURE__*/DeferredEntityLayer.pipe(/*#__PURE__*/Layer.merge(ClockEntityLayer), /*#__PURE__*/Layer.provideMerge(/*#__PURE__*/Layer.scoped(WorkflowEngine, make)));
366
+ export const layer = /*#__PURE__*/ClockEntityLayer.pipe(/*#__PURE__*/Layer.provideMerge(/*#__PURE__*/Layer.scoped(WorkflowEngine, make)));
399
367
  //# sourceMappingURL=ClusterWorkflowEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","activities","activityLatches","clients","lookup","fnUntraced","workflowName","entity","get","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","deferredClient","DeferredEntity","requestIdFor","options","shardGroup","workflow","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","name","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","of","register","execute","engine","suspend","has","makeWorkflowEntity","set","registerEntity","CurrentAddress","run","request","instance","suspended","payload","onExit","void","deferredResult","InterruptSignal","flatMap","maybeResult","zipRight","ignore","interrupt","scoped","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","context","unsafeMap","CurrentAttempt","key","executeEncoded","provide","unsafeMake","ensuring","sync","delete","fork","discard","nonSuspendedReply","exit","isSome","deferredDone","deferred","while","e","resume","maybeReply","maybeSuspended","activityExecute","release","result","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","ensureSuccess","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","payloadSchema","fields","successSchema","errorSchema","annotateContext","annotateRpcs","Persisted","Uninterruptible","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","DeferredEntityLayer","toLayer","as","ClockPayload","Class","DateTimeUtcFromNumber","symbol","annotate","ClockEntityLayer","zero","layer","merge","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Context","DateTime","Duration","Effect","Layer","Option","PrimaryKey","RcMap","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","activities","activityLatches","clients","lookup","fnUntraced","workflowName","entity","get","dieMessage","client","idleTimeToLive","clockClient","ClockEntity","requestIdFor","options","shardGroup","workflow","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","name","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","of","register","execute","engine","suspend","has","makeWorkflowEntity","set","registerEntity","CurrentAddress","run","request","instance","suspended","payload","onExit","void","deferredResult","InterruptSignal","flatMap","maybeResult","zipRight","ignore","interrupt","scoped","intoResult","provideService","activityId","entry","latch","unsafeMakeLatch","await","contextMap","context","unsafeMap","CurrentAttempt","key","executeEncoded","provide","unsafeMake","ensuring","sync","delete","fork","deferred","ensureSuccess","discard","nonSuspendedReply","isSome","deferredDone","while","e","activityExecute","release","result","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","payloadSchema","fields","successSchema","errorSchema","Uninterruptible","ExitUnknown","annotateContext","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as HttpApiEndpoint from "@effect/platform/HttpApiEndpoint";
5
+ import * as HttpApiGroup from "@effect/platform/HttpApiGroup";
6
+ import * as Rpc from "@effect/rpc/Rpc";
7
+ import * as RpcGroup from "@effect/rpc/RpcGroup";
8
+ import * as Schema from "effect/Schema";
9
+ import { AlreadyProcessingMessage, EntityNotManagedByRunner, MailboxFull, PersistenceError } from "./ClusterError.js";
10
+ const clientErrors = [MailboxFull, AlreadyProcessingMessage, PersistenceError, EntityNotManagedByRunner];
11
+ /**
12
+ * Derives an `RpcGroup` from an `Entity`.
13
+ *
14
+ * ```ts
15
+ * import { ClusterSchema, Entity, EntityProxy, EntityProxyServer } from "@effect/cluster"
16
+ * import { Rpc, RpcServer } from "@effect/rpc"
17
+ * import { Layer, Schema } from "effect"
18
+ *
19
+ * export const Counter = Entity.make("Counter", [
20
+ * Rpc.make("Increment", {
21
+ * payload: { id: Schema.String, amount: Schema.Number },
22
+ * primaryKey: ({ id }) => id,
23
+ * success: Schema.Number
24
+ * })
25
+ * ]).annotateRpcs(ClusterSchema.Persisted, true)
26
+ *
27
+ * // Use EntityProxy.toRpcGroup to create a `RpcGroup` from the Counter entity
28
+ * export class MyRpcs extends EntityProxy.toRpcGroup(Counter) {}
29
+ *
30
+ * // Use EntityProxyServer.layerRpcHandlers to create a layer that implements
31
+ * // the rpc handlers
32
+ * const RpcServerLayer = RpcServer.layer(MyRpcs).pipe(
33
+ * Layer.provide(EntityProxyServer.layerRpcHandlers(Counter))
34
+ * )
35
+ * ```
36
+ *
37
+ * @since 1.0.0
38
+ * @category Constructors
39
+ */
40
+ export const toRpcGroup = (entity, options) => {
41
+ const prefix = options?.prefix ?? "";
42
+ const rpcs = [];
43
+ for (const parentRpc_ of entity.protocol.requests.values()) {
44
+ const parentRpc = parentRpc_;
45
+ const payloadSchema = Schema.Struct({
46
+ entityId: Schema.String,
47
+ payload: parentRpc.payloadSchema
48
+ });
49
+ const oldMake = payloadSchema.make;
50
+ payloadSchema.make = (input, options) => {
51
+ return oldMake({
52
+ entityId: input.entityId,
53
+ payload: parentRpc.payloadSchema.make(input.payload, options)
54
+ }, options);
55
+ };
56
+ const rpc = Rpc.make(`${prefix}${parentRpc._tag}`, {
57
+ payload: payloadSchema,
58
+ error: Schema.Union(parentRpc.errorSchema, ...clientErrors),
59
+ success: parentRpc.successSchema
60
+ }).annotateContext(parentRpc.annotations);
61
+ rpcs.push(rpc);
62
+ }
63
+ return RpcGroup.make(...rpcs);
64
+ };
65
+ const entityIdPath = /*#__PURE__*/Schema.Struct({
66
+ entityId: Schema.String
67
+ });
68
+ /**
69
+ * Derives an `HttpApiGroup` from an `Entity`.
70
+ *
71
+ * ```ts
72
+ * import { ClusterSchema, Entity, EntityProxy, EntityProxyServer } from "@effect/cluster"
73
+ * import { HttpApi, HttpApiBuilder } from "@effect/platform"
74
+ * import { Rpc } from "@effect/rpc"
75
+ * import { Layer, Schema } from "effect"
76
+ *
77
+ * export const Counter = Entity.make("Counter", [
78
+ * Rpc.make("Increment", {
79
+ * payload: { id: Schema.String, amount: Schema.Number },
80
+ * primaryKey: ({ id }) => id,
81
+ * success: Schema.Number
82
+ * })
83
+ * ]).annotateRpcs(ClusterSchema.Persisted, true)
84
+ *
85
+ * // Use EntityProxy.toHttpApiGroup to create a `HttpApiGroup` from the
86
+ * // Counter entity
87
+ * export class MyApi extends HttpApi.make("api")
88
+ * .add(
89
+ * EntityProxy.toHttpApiGroup("counter", Counter)
90
+ * .prefix("/counter")
91
+ * )
92
+ * {}
93
+ *
94
+ * // Use EntityProxyServer.layerHttpApi to create a layer that implements
95
+ * // the handlers for the HttpApiGroup
96
+ * const ApiLayer = HttpApiBuilder.api(MyApi).pipe(
97
+ * Layer.provide(EntityProxyServer.layerHttpApi(MyApi, "counter", Counter))
98
+ * )
99
+ * ```
100
+ *
101
+ * @since 1.0.0
102
+ * @category Constructors
103
+ */
104
+ export const toHttpApiGroup = (name, entity) => {
105
+ let group = HttpApiGroup.make(name);
106
+ for (const parentRpc_ of entity.protocol.requests.values()) {
107
+ const parentRpc = parentRpc_;
108
+ const endpoint = HttpApiEndpoint.post(parentRpc._tag, `/${tagToPath(parentRpc._tag)}/:entityId`).setPath(entityIdPath).setPayload(parentRpc.payloadSchema).addSuccess(parentRpc.successSchema).addError(Schema.Union(parentRpc.errorSchema, ...clientErrors)).annotateContext(parentRpc.annotations);
109
+ group = group.add(endpoint);
110
+ }
111
+ return group;
112
+ };
113
+ const tagToPath = tag => tag.replace(/[^a-zA-Z0-9]+/g, "-") // Replace non-alphanumeric characters with hyphen
114
+ .replace(/([a-z])([A-Z])/g, "$1-$2") // Insert hyphen before uppercase letters
115
+ .toLowerCase();
116
+ //# sourceMappingURL=EntityProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityProxy.js","names":["HttpApiEndpoint","HttpApiGroup","Rpc","RpcGroup","Schema","AlreadyProcessingMessage","EntityNotManagedByRunner","MailboxFull","PersistenceError","clientErrors","toRpcGroup","entity","options","prefix","rpcs","parentRpc_","protocol","requests","values","parentRpc","payloadSchema","Struct","entityId","String","payload","oldMake","make","input","rpc","_tag","error","Union","errorSchema","success","successSchema","annotateContext","annotations","push","entityIdPath","toHttpApiGroup","name","group","endpoint","post","tagToPath","setPath","setPayload","addSuccess","addError","add","tag","replace","toLowerCase"],"sources":["../../src/EntityProxy.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ import * as HttpApiBuilder from "@effect/platform/HttpApiBuilder";
2
+ import * as Context from "effect/Context";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ /**
6
+ * @since 1.0.0
7
+ * @category Layers
8
+ */
9
+ export const layerHttpApi = (api, name, entity) => HttpApiBuilder.group(api, name, Effect.fnUntraced(function* (handlers_) {
10
+ const client = yield* entity.client;
11
+ let handlers = handlers_;
12
+ for (const parentRpc_ of entity.protocol.requests.values()) {
13
+ const parentRpc = parentRpc_;
14
+ handlers = handlers.handle(parentRpc._tag, ({
15
+ path,
16
+ payload
17
+ }) => client(path.entityId)[parentRpc._tag](payload));
18
+ }
19
+ return handlers;
20
+ }));
21
+ /**
22
+ * @since 1.0.0
23
+ * @category Layers
24
+ */
25
+ export const layerRpcHandlers = (entity, options) => Layer.effectContext(Effect.gen(function* () {
26
+ const context = yield* Effect.context();
27
+ const prefix = options?.prefix ?? "";
28
+ const client = yield* entity.client;
29
+ const handlers = new Map();
30
+ for (const parentRpc_ of entity.protocol.requests.values()) {
31
+ const parentRpc = parentRpc_;
32
+ const tag = `${prefix}${parentRpc._tag}`;
33
+ const key = `@effect/rpc/Rpc/${tag}`;
34
+ handlers.set(key, {
35
+ context,
36
+ tag,
37
+ handler: ({
38
+ entityId,
39
+ payload
40
+ }) => client(entityId)[parentRpc._tag](payload)
41
+ });
42
+ }
43
+ return Context.unsafeMake(handlers);
44
+ }));
45
+ //# sourceMappingURL=EntityProxyServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityProxyServer.js","names":["HttpApiBuilder","Context","Effect","Layer","layerHttpApi","api","name","entity","group","fnUntraced","handlers_","client","handlers","parentRpc_","protocol","requests","values","parentRpc","handle","_tag","path","payload","entityId","layerRpcHandlers","options","effectContext","gen","context","prefix","Map","tag","key","set","handler","unsafeMake"],"sources":["../../src/EntityProxyServer.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,cAAc,MAAM,iCAAiC;AAGjE,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAIrC;;;;AAIA,OAAO,MAAMC,YAAY,GAAGA,CAQ1BC,GAA+C,EAC/CC,IAAU,EACVC,MAA2B,KAE3BP,cAAc,CAACQ,KAAK,CAClBH,GAAG,EACHC,IAAI,EACJJ,MAAM,CAACO,UAAU,CAAC,WAAUC,SAAS;EACnC,MAAMC,MAAM,GAAG,OAAOJ,MAAM,CAACI,MAAM;EACnC,IAAIC,QAAQ,GAAGF,SAAS;EACxB,KAAK,MAAMG,UAAU,IAAIN,MAAM,CAACO,QAAQ,CAACC,QAAQ,CAACC,MAAM,EAAE,EAAE;IAC1D,MAAMC,SAAS,GAAGJ,UAAqC;IACvDD,QAAQ,GAAGA,QAAQ,CAACM,MAAM,CACxBD,SAAS,CAACE,IAAW,EACpB,CAAC;MAAEC,IAAI;MAAEC;IAAO,CAAgD,KAC9DV,MAAM,CAACS,IAAI,CAACE,QAAQ,CAAS,CAACL,SAAS,CAACE,IAAI,CAAC,CAACE,OAAO,CAAS,CAC3D;EACV;EACA,OAAOT,QAAwD;AACjE,CAAC,CAAC,CACH;AAEH;;;;AAIA,OAAO,MAAMW,gBAAgB,GAAGA,CAG9BhB,MAA2B,EAAEiB,OAE9B,KACCrB,KAAK,CAACsB,aAAa,CAACvB,MAAM,CAACwB,GAAG,CAAC,aAAS;EACtC,MAAMC,OAAO,GAAG,OAAOzB,MAAM,CAACyB,OAAO,EAAS;EAC9C,MAAMC,MAAM,GAAGJ,OAAO,EAAEI,MAAM,IAAI,EAAE;EACpC,MAAMjB,MAAM,GAAG,OAAOJ,MAAM,CAACI,MAAM;EACnC,MAAMC,QAAQ,GAAG,IAAIiB,GAAG,EAA+B;EACvD,KAAK,MAAMhB,UAAU,IAAIN,MAAM,CAACO,QAAQ,CAACC,QAAQ,CAACC,MAAM,EAAE,EAAE;IAC1D,MAAMC,SAAS,GAAGJ,UAAqC;IACvD,MAAMiB,GAAG,GAAG,GAAGF,MAAM,GAAGX,SAAS,CAACE,IAAI,EAAW;IACjD,MAAMY,GAAG,GAAG,mBAAmBD,GAAG,EAAE;IACpClB,QAAQ,CAACoB,GAAG,CAACD,GAAG,EAAE;MAChBJ,OAAO;MACPG,GAAG;MACHG,OAAO,EAAEA,CAAC;QAAEX,QAAQ;QAAED;MAAO,CAAO,KAAMV,MAAM,CAACW,QAAQ,CAAS,CAACL,SAAS,CAACE,IAAI,CAAC,CAACE,OAAO;KACpF,CAAC;EACX;EACA,OAAOpB,OAAO,CAACiC,UAAU,CAACtB,QAAQ,CAAC;AACrC,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -67,7 +67,7 @@ export const config = /*#__PURE__*/Config.all({
67
67
  port: Config.integer("port").pipe(Config.withDefault(defaultRunnerAddress.port), Config.withDescription("The port used for inter-runner communication."))
68
68
  }).pipe(/*#__PURE__*/Config.map(options => RunnerAddress.make(options)), Config.option),
69
69
  runnerListenAddress: /*#__PURE__*/Config.all({
70
- host: Config.string("listenHost").pipe(Config.withDefault(defaultRunnerAddress.host), Config.withDescription("The host to listen on.")),
70
+ host: Config.string("listenHost").pipe(Config.withDescription("The host to listen on.")),
71
71
  port: Config.integer("listenPort").pipe(Config.withDefault(defaultRunnerAddress.port), Config.withDescription("The port to listen on."))
72
72
  }).pipe(/*#__PURE__*/Config.map(options => RunnerAddress.make(options)), Config.option),
73
73
  serverVersion: /*#__PURE__*/Config.integer("serverVersion").pipe(/*#__PURE__*/Config.withDefault(defaults.serverVersion), /*#__PURE__*/Config.withDescription("The version of the current runner.")),