@effect/cluster 0.38.1 → 0.38.2

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.
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/EntityProxy.js",
4
+ "module": "../dist/esm/EntityProxy.js",
5
+ "types": "../dist/dts/EntityProxy.d.ts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": [],
3
+ "main": "../dist/cjs/EntityProxyServer.js",
4
+ "module": "../dist/esm/EntityProxyServer.js",
5
+ "types": "../dist/dts/EntityProxyServer.d.ts"
6
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toRpcGroup = exports.toHttpApiGroup = void 0;
7
+ var HttpApiEndpoint = _interopRequireWildcard(require("@effect/platform/HttpApiEndpoint"));
8
+ var HttpApiGroup = _interopRequireWildcard(require("@effect/platform/HttpApiGroup"));
9
+ var Rpc = _interopRequireWildcard(require("@effect/rpc/Rpc"));
10
+ var RpcGroup = _interopRequireWildcard(require("@effect/rpc/RpcGroup"));
11
+ var Schema = _interopRequireWildcard(require("effect/Schema"));
12
+ var _ClusterError = require("./ClusterError.js");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ /**
15
+ * @since 1.0.0
16
+ */
17
+
18
+ const clientErrors = [_ClusterError.MailboxFull, _ClusterError.AlreadyProcessingMessage, _ClusterError.PersistenceError, _ClusterError.EntityNotManagedByRunner];
19
+ /**
20
+ * Derives an `RpcGroup` from an `Entity`.
21
+ *
22
+ * ```ts
23
+ * import { ClusterSchema, Entity, EntityProxy, EntityProxyServer } from "@effect/cluster"
24
+ * import { Rpc, RpcServer } from "@effect/rpc"
25
+ * import { Layer, Schema } from "effect"
26
+ *
27
+ * export const Counter = Entity.make("Counter", [
28
+ * Rpc.make("Increment", {
29
+ * payload: { id: Schema.String, amount: Schema.Number },
30
+ * primaryKey: ({ id }) => id,
31
+ * success: Schema.Number
32
+ * })
33
+ * ]).annotateRpcs(ClusterSchema.Persisted, true)
34
+ *
35
+ * // Use EntityProxy.toRpcGroup to create a `RpcGroup` from the Counter entity
36
+ * export class MyRpcs extends EntityProxy.toRpcGroup(Counter) {}
37
+ *
38
+ * // Use EntityProxyServer.layerRpcHandlers to create a layer that implements
39
+ * // the rpc handlers
40
+ * const RpcServerLayer = RpcServer.layer(MyRpcs).pipe(
41
+ * Layer.provide(EntityProxyServer.layerRpcHandlers(Counter))
42
+ * )
43
+ * ```
44
+ *
45
+ * @since 1.0.0
46
+ * @category Constructors
47
+ */
48
+ const toRpcGroup = (entity, options) => {
49
+ const prefix = options?.prefix ?? "";
50
+ const rpcs = [];
51
+ for (const parentRpc_ of entity.protocol.requests.values()) {
52
+ const parentRpc = parentRpc_;
53
+ const payloadSchema = Schema.Struct({
54
+ entityId: Schema.String,
55
+ payload: parentRpc.payloadSchema
56
+ });
57
+ const oldMake = payloadSchema.make;
58
+ payloadSchema.make = (input, options) => {
59
+ return oldMake({
60
+ entityId: input.entityId,
61
+ payload: parentRpc.payloadSchema.make(input.payload, options)
62
+ }, options);
63
+ };
64
+ const rpc = Rpc.make(`${prefix}${parentRpc._tag}`, {
65
+ payload: payloadSchema,
66
+ error: Schema.Union(parentRpc.errorSchema, ...clientErrors),
67
+ success: parentRpc.successSchema
68
+ }).annotateContext(parentRpc.annotations);
69
+ rpcs.push(rpc);
70
+ }
71
+ return RpcGroup.make(...rpcs);
72
+ };
73
+ exports.toRpcGroup = toRpcGroup;
74
+ const entityIdPath = /*#__PURE__*/Schema.Struct({
75
+ entityId: Schema.String
76
+ });
77
+ /**
78
+ * Derives an `HttpApiGroup` from an `Entity`.
79
+ *
80
+ * ```ts
81
+ * import { ClusterSchema, Entity, EntityProxy, EntityProxyServer } from "@effect/cluster"
82
+ * import { HttpApi, HttpApiBuilder } from "@effect/platform"
83
+ * import { Rpc } from "@effect/rpc"
84
+ * import { Layer, Schema } from "effect"
85
+ *
86
+ * export const Counter = Entity.make("Counter", [
87
+ * Rpc.make("Increment", {
88
+ * payload: { id: Schema.String, amount: Schema.Number },
89
+ * primaryKey: ({ id }) => id,
90
+ * success: Schema.Number
91
+ * })
92
+ * ]).annotateRpcs(ClusterSchema.Persisted, true)
93
+ *
94
+ * // Use EntityProxy.toHttpApiGroup to create a `HttpApiGroup` from the
95
+ * // Counter entity
96
+ * export class MyApi extends HttpApi.make("api")
97
+ * .add(
98
+ * EntityProxy.toHttpApiGroup("counter", Counter)
99
+ * .prefix("/counter")
100
+ * )
101
+ * {}
102
+ *
103
+ * // Use EntityProxyServer.layerHttpApi to create a layer that implements
104
+ * // the handlers for the HttpApiGroup
105
+ * const ApiLayer = HttpApiBuilder.api(MyApi).pipe(
106
+ * Layer.provide(EntityProxyServer.layerHttpApi(MyApi, "counter", Counter))
107
+ * )
108
+ * ```
109
+ *
110
+ * @since 1.0.0
111
+ * @category Constructors
112
+ */
113
+ const toHttpApiGroup = (name, entity) => {
114
+ let group = HttpApiGroup.make(name);
115
+ for (const parentRpc_ of entity.protocol.requests.values()) {
116
+ const parentRpc = parentRpc_;
117
+ 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);
118
+ group = group.add(endpoint);
119
+ }
120
+ return group;
121
+ };
122
+ exports.toHttpApiGroup = toHttpApiGroup;
123
+ const tagToPath = tag => tag.replace(/[^a-zA-Z0-9]+/g, "-") // Replace non-alphanumeric characters with hyphen
124
+ .replace(/([a-z])([A-Z])/g, "$1-$2") // Insert hyphen before uppercase letters
125
+ .toLowerCase();
126
+ //# sourceMappingURL=EntityProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityProxy.js","names":["HttpApiEndpoint","_interopRequireWildcard","require","HttpApiGroup","Rpc","RpcGroup","Schema","_ClusterError","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","clientErrors","MailboxFull","AlreadyProcessingMessage","PersistenceError","EntityNotManagedByRunner","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","exports","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,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.layerRpcHandlers = exports.layerHttpApi = void 0;
7
+ var HttpApiBuilder = _interopRequireWildcard(require("@effect/platform/HttpApiBuilder"));
8
+ var Context = _interopRequireWildcard(require("effect/Context"));
9
+ var Effect = _interopRequireWildcard(require("effect/Effect"));
10
+ var Layer = _interopRequireWildcard(require("effect/Layer"));
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ /**
13
+ * @since 1.0.0
14
+ * @category Layers
15
+ */
16
+ const layerHttpApi = (api, name, entity) => HttpApiBuilder.group(api, name, Effect.fnUntraced(function* (handlers_) {
17
+ const client = yield* entity.client;
18
+ let handlers = handlers_;
19
+ for (const parentRpc_ of entity.protocol.requests.values()) {
20
+ const parentRpc = parentRpc_;
21
+ handlers = handlers.handle(parentRpc._tag, ({
22
+ path,
23
+ payload
24
+ }) => client(path.entityId)[parentRpc._tag](payload));
25
+ }
26
+ return handlers;
27
+ }));
28
+ /**
29
+ * @since 1.0.0
30
+ * @category Layers
31
+ */
32
+ exports.layerHttpApi = layerHttpApi;
33
+ const layerRpcHandlers = (entity, options) => Layer.effectContext(Effect.gen(function* () {
34
+ const context = yield* Effect.context();
35
+ const prefix = options?.prefix ?? "";
36
+ const client = yield* entity.client;
37
+ const handlers = new Map();
38
+ for (const parentRpc_ of entity.protocol.requests.values()) {
39
+ const parentRpc = parentRpc_;
40
+ const tag = `${prefix}${parentRpc._tag}`;
41
+ const key = `@effect/rpc/Rpc/${tag}`;
42
+ handlers.set(key, {
43
+ context,
44
+ tag,
45
+ handler: ({
46
+ entityId,
47
+ payload
48
+ }) => client(entityId)[parentRpc._tag](payload)
49
+ });
50
+ }
51
+ return Context.unsafeMake(handlers);
52
+ }));
53
+ exports.layerRpcHandlers = layerRpcHandlers;
54
+ //# sourceMappingURL=EntityProxyServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityProxyServer.js","names":["HttpApiBuilder","_interopRequireWildcard","require","Context","Effect","Layer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","layerHttpApi","api","name","entity","group","fnUntraced","handlers_","client","handlers","parentRpc_","protocol","requests","values","parentRpc","handle","_tag","path","payload","entityId","exports","layerRpcHandlers","options","effectContext","gen","context","prefix","Map","tag","key","handler","unsafeMake"],"sources":["../../src/EntityProxyServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -77,7 +77,7 @@ const config = exports.config = /*#__PURE__*/Config.all({
77
77
  port: Config.integer("port").pipe(Config.withDefault(defaultRunnerAddress.port), Config.withDescription("The port used for inter-runner communication."))
78
78
  }).pipe(/*#__PURE__*/Config.map(options => _RunnerAddress.RunnerAddress.make(options)), Config.option),
79
79
  runnerListenAddress: /*#__PURE__*/Config.all({
80
- host: Config.string("listenHost").pipe(Config.withDefault(defaultRunnerAddress.host), Config.withDescription("The host to listen on.")),
80
+ host: Config.string("listenHost").pipe(Config.withDescription("The host to listen on.")),
81
81
  port: Config.integer("listenPort").pipe(Config.withDefault(defaultRunnerAddress.port), Config.withDescription("The port to listen on."))
82
82
  }).pipe(/*#__PURE__*/Config.map(options => _RunnerAddress.RunnerAddress.make(options)), Config.option),
83
83
  serverVersion: /*#__PURE__*/Config.integer("serverVersion").pipe(/*#__PURE__*/Config.withDefault(defaults.serverVersion), /*#__PURE__*/Config.withDescription("The version of the current runner.")),
@@ -1 +1 @@
1
- {"version":3,"file":"ShardingConfig.js","names":["Config","_interopRequireWildcard","require","ConfigProvider","Context","Duration","Effect","Layer","Option","_RunnerAddress","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardingConfig","Tag","exports","defaultRunnerAddress","RunnerAddress","make","host","port","defaults","runnerAddress","some","runnerListenAddress","none","serverVersion","shardsPerGroup","shardManagerAddress","shardManagerUnavailableTimeout","minutes","shardGroups","entityMailboxCapacity","entityMaxIdleTime","entityTerminationTimeout","seconds","entityMessagePollInterval","entityReplyPollInterval","millis","sendRetryInterval","refreshAssignmentsInterval","simulateRemoteSerialization","layer","options","succeed","layerDefaults","config","all","string","pipe","withDefault","withDescription","integer","map","option","array","duration","boolean","configFromEnv","withConfigProvider","fromEnv","constantCase","layerFromEnv","effect"],"sources":["../../src/ShardingConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ShardingConfig.js","names":["Config","_interopRequireWildcard","require","ConfigProvider","Context","Duration","Effect","Layer","Option","_RunnerAddress","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardingConfig","Tag","exports","defaultRunnerAddress","RunnerAddress","make","host","port","defaults","runnerAddress","some","runnerListenAddress","none","serverVersion","shardsPerGroup","shardManagerAddress","shardManagerUnavailableTimeout","minutes","shardGroups","entityMailboxCapacity","entityMaxIdleTime","entityTerminationTimeout","seconds","entityMessagePollInterval","entityReplyPollInterval","millis","sendRetryInterval","refreshAssignmentsInterval","simulateRemoteSerialization","layer","options","succeed","layerDefaults","config","all","string","pipe","withDefault","withDescription","integer","map","option","array","duration","boolean","configFromEnv","withConfigProvider","fromEnv","constantCase","layerFromEnv","effect"],"sources":["../../src/ShardingConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SynchronizedClock = exports.SqlShardStorage = exports.SqlMessageStorage = exports.SocketShardManager = exports.SocketRunner = exports.Snowflake = exports.SingletonAddress = exports.Singleton = exports.ShardingRegistrationEvent = exports.ShardingConfig = exports.Sharding = exports.ShardStorage = exports.ShardManager = exports.ShardId = exports.Runners = exports.RunnerServer = exports.RunnerHealth = exports.RunnerAddress = exports.Runner = exports.Reply = exports.MessageStorage = exports.Message = exports.MachineId = exports.HttpShardManager = exports.HttpRunner = exports.HttpCommon = exports.Envelope = exports.EntityType = exports.EntityId = exports.EntityAddress = exports.Entity = exports.DeliverAt = exports.ClusterWorkflowEngine = exports.ClusterSchema = exports.ClusterMetrics = exports.ClusterError = exports.ClusterCron = void 0;
6
+ exports.SynchronizedClock = exports.SqlShardStorage = exports.SqlMessageStorage = exports.SocketShardManager = exports.SocketRunner = exports.Snowflake = exports.SingletonAddress = exports.Singleton = exports.ShardingRegistrationEvent = exports.ShardingConfig = exports.Sharding = exports.ShardStorage = exports.ShardManager = exports.ShardId = exports.Runners = exports.RunnerServer = exports.RunnerHealth = exports.RunnerAddress = exports.Runner = exports.Reply = exports.MessageStorage = exports.Message = exports.MachineId = exports.HttpShardManager = exports.HttpRunner = exports.HttpCommon = exports.Envelope = exports.EntityType = exports.EntityProxyServer = exports.EntityProxy = exports.EntityId = exports.EntityAddress = exports.Entity = exports.DeliverAt = exports.ClusterWorkflowEngine = exports.ClusterSchema = exports.ClusterMetrics = exports.ClusterError = exports.ClusterCron = void 0;
7
7
  var _ClusterCron = _interopRequireWildcard(require("./ClusterCron.js"));
8
8
  exports.ClusterCron = _ClusterCron;
9
9
  var _ClusterError = _interopRequireWildcard(require("./ClusterError.js"));
@@ -22,6 +22,10 @@ var _EntityAddress = _interopRequireWildcard(require("./EntityAddress.js"));
22
22
  exports.EntityAddress = _EntityAddress;
23
23
  var _EntityId = _interopRequireWildcard(require("./EntityId.js"));
24
24
  exports.EntityId = _EntityId;
25
+ var _EntityProxy = _interopRequireWildcard(require("./EntityProxy.js"));
26
+ exports.EntityProxy = _EntityProxy;
27
+ var _EntityProxyServer = _interopRequireWildcard(require("./EntityProxyServer.js"));
28
+ exports.EntityProxyServer = _EntityProxyServer;
25
29
  var _EntityType = _interopRequireWildcard(require("./EntityType.js"));
26
30
  exports.EntityType = _EntityType;
27
31
  var _Envelope = _interopRequireWildcard(require("./Envelope.js"));
@@ -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":"AAAA;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAA;AACnE,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACrH,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAS1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,EAAE,EAC/E,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3B,UAAU;IACR,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KACA,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAwB7C,CAAA;AAED;;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,GAAG,CACP,GAAG,MAAM,GAAG,IAAI,EAAE,EAClB,MAAM,CAAC,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,MAAM,CAAC,MAAM,CAAA;IAC9B,OAAO,EAAE,QAAQ,CAAA;CAClB,CAAC,EACF,QAAQ,EACR,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,wBAAwB,EACnG,MAAM,CAAC,SAAS,CAAC,GACjB,OAAO,WAAW,CAAC,SAAS,CAAC,GAC7B,OAAO,wBAAwB,CAAC,SAAS,CAAC,GAC1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,GAClC,OAAO,wBAAwB,CAAC,SAAS,CAAC,EAC5C,MAAM,CAAC,SAAS,CAAC,CAClB,CACF,GACC,KAAK,CAAA;AAMT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,GAAG,EAC5E,MAAM,IAAI,EACV,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC1B,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,CActD,CAAA;AAQD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,IAAI,SAAS,GAAG,CAAC,GAAG,CACrE,MAAM,IAAI,EACV,MAAM,QAAQ,EACd,MAAM,QAAQ,EACd,MAAM,MAAM,EACZ,MAAM,WAAW,CAClB,GAAG,eAAe,CAAC,eAAe,CAC/B,IAAI,EACJ,MAAM,EACN;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC7B,KAAK,EACL,QAAQ,CAAC,MAAM,CAAC,EAChB,KAAK,EACL,QAAQ,CAAC,MAAM,CAAC,EAChB,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,wBAAwB,EACrG,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,EACzC,MAAM,CAAC,SAAS,CAAC,CAClB,GACD,KAAK,CAAA"}
@@ -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"}
@@ -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.")),
@@ -1 +1 @@
1
- {"version":3,"file":"ShardingConfig.js","names":["Config","ConfigProvider","Context","Duration","Effect","Layer","Option","RunnerAddress","ShardingConfig","Tag","defaultRunnerAddress","make","host","port","defaults","runnerAddress","some","runnerListenAddress","none","serverVersion","shardsPerGroup","shardManagerAddress","shardManagerUnavailableTimeout","minutes","shardGroups","entityMailboxCapacity","entityMaxIdleTime","entityTerminationTimeout","seconds","entityMessagePollInterval","entityReplyPollInterval","millis","sendRetryInterval","refreshAssignmentsInterval","simulateRemoteSerialization","layer","options","succeed","layerDefaults","config","all","string","pipe","withDefault","withDescription","integer","map","option","array","duration","boolean","configFromEnv","withConfigProvider","fromEnv","constantCase","layerFromEnv","effect"],"sources":["../../src/ShardingConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ShardingConfig.js","names":["Config","ConfigProvider","Context","Duration","Effect","Layer","Option","RunnerAddress","ShardingConfig","Tag","defaultRunnerAddress","make","host","port","defaults","runnerAddress","some","runnerListenAddress","none","serverVersion","shardsPerGroup","shardManagerAddress","shardManagerUnavailableTimeout","minutes","shardGroups","entityMailboxCapacity","entityMaxIdleTime","entityTerminationTimeout","seconds","entityMessagePollInterval","entityReplyPollInterval","millis","sendRetryInterval","refreshAssignmentsInterval","simulateRemoteSerialization","layer","options","succeed","layerDefaults","config","all","string","pipe","withDefault","withDescription","integer","map","option","array","duration","boolean","configFromEnv","withConfigProvider","fromEnv","constantCase","layerFromEnv","effect"],"sources":["../../src/ShardingConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -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.js","names":["ClusterCron","ClusterError","ClusterMetrics","ClusterSchema","ClusterWorkflowEngine","DeliverAt","Entity","EntityAddress","EntityId","EntityType","Envelope","HttpCommon","HttpRunner","HttpShardManager","MachineId","Message","MessageStorage","Reply","Runner","RunnerAddress","RunnerHealth","RunnerServer","Runners","ShardId","ShardManager","ShardStorage","Sharding","ShardingConfig","ShardingRegistrationEvent","Singleton","SingletonAddress","Snowflake","SocketRunner","SocketShardManager","SqlMessageStorage","SqlShardStorage","SynchronizedClock"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,qBAAqB,MAAM,4BAA4B;AAEnE;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,yBAAyB,MAAM,gCAAgC;AAE3E;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAE3D;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ClusterCron","ClusterError","ClusterMetrics","ClusterSchema","ClusterWorkflowEngine","DeliverAt","Entity","EntityAddress","EntityId","EntityProxy","EntityProxyServer","EntityType","Envelope","HttpCommon","HttpRunner","HttpShardManager","MachineId","Message","MessageStorage","Reply","Runner","RunnerAddress","RunnerHealth","RunnerServer","Runners","ShardId","ShardManager","ShardStorage","Sharding","ShardingConfig","ShardingRegistrationEvent","Singleton","SingletonAddress","Snowflake","SocketRunner","SocketShardManager","SqlMessageStorage","SqlShardStorage","SynchronizedClock"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,qBAAqB,MAAM,4BAA4B;AAEnE;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAE3D;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,yBAAyB,MAAM,gCAAgC;AAE3E;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAE3D;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/cluster",
3
- "version": "0.38.1",
3
+ "version": "0.38.2",
4
4
  "description": "Unified interfaces for common cluster-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -11,10 +11,10 @@
11
11
  "sideEffects": [],
12
12
  "homepage": "https://effect.website",
13
13
  "peerDependencies": {
14
- "@effect/platform": "^0.84.5",
15
- "@effect/rpc": "^0.61.5",
16
- "@effect/sql": "^0.37.5",
17
- "@effect/workflow": "^0.1.2",
14
+ "@effect/platform": "^0.84.6",
15
+ "@effect/rpc": "^0.61.6",
16
+ "@effect/sql": "^0.37.6",
17
+ "@effect/workflow": "^0.1.3",
18
18
  "effect": "^3.16.3"
19
19
  },
20
20
  "publishConfig": {
@@ -75,6 +75,16 @@
75
75
  "import": "./dist/esm/EntityId.js",
76
76
  "default": "./dist/cjs/EntityId.js"
77
77
  },
78
+ "./EntityProxy": {
79
+ "types": "./dist/dts/EntityProxy.d.ts",
80
+ "import": "./dist/esm/EntityProxy.js",
81
+ "default": "./dist/cjs/EntityProxy.js"
82
+ },
83
+ "./EntityProxyServer": {
84
+ "types": "./dist/dts/EntityProxyServer.d.ts",
85
+ "import": "./dist/esm/EntityProxyServer.js",
86
+ "default": "./dist/cjs/EntityProxyServer.js"
87
+ },
78
88
  "./EntityType": {
79
89
  "types": "./dist/dts/EntityType.d.ts",
80
90
  "import": "./dist/esm/EntityType.js",
@@ -250,6 +260,12 @@
250
260
  "EntityId": [
251
261
  "./dist/dts/EntityId.d.ts"
252
262
  ],
263
+ "EntityProxy": [
264
+ "./dist/dts/EntityProxy.d.ts"
265
+ ],
266
+ "EntityProxyServer": [
267
+ "./dist/dts/EntityProxyServer.d.ts"
268
+ ],
253
269
  "EntityType": [
254
270
  "./dist/dts/EntityType.d.ts"
255
271
  ],
@@ -0,0 +1,193 @@
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
+ const clientErrors = [
13
+ MailboxFull,
14
+ AlreadyProcessingMessage,
15
+ PersistenceError,
16
+ EntityNotManagedByRunner
17
+ ] as const
18
+
19
+ /**
20
+ * Derives an `RpcGroup` from an `Entity`.
21
+ *
22
+ * ```ts
23
+ * import { ClusterSchema, Entity, EntityProxy, EntityProxyServer } from "@effect/cluster"
24
+ * import { Rpc, RpcServer } from "@effect/rpc"
25
+ * import { Layer, Schema } from "effect"
26
+ *
27
+ * export const Counter = Entity.make("Counter", [
28
+ * Rpc.make("Increment", {
29
+ * payload: { id: Schema.String, amount: Schema.Number },
30
+ * primaryKey: ({ id }) => id,
31
+ * success: Schema.Number
32
+ * })
33
+ * ]).annotateRpcs(ClusterSchema.Persisted, true)
34
+ *
35
+ * // Use EntityProxy.toRpcGroup to create a `RpcGroup` from the Counter entity
36
+ * export class MyRpcs extends EntityProxy.toRpcGroup(Counter) {}
37
+ *
38
+ * // Use EntityProxyServer.layerRpcHandlers to create a layer that implements
39
+ * // the rpc handlers
40
+ * const RpcServerLayer = RpcServer.layer(MyRpcs).pipe(
41
+ * Layer.provide(EntityProxyServer.layerRpcHandlers(Counter))
42
+ * )
43
+ * ```
44
+ *
45
+ * @since 1.0.0
46
+ * @category Constructors
47
+ */
48
+ export const toRpcGroup = <Rpcs extends Rpc.Any, const Prefix extends string = "">(
49
+ entity: Entity.Entity<Rpcs>,
50
+ options?: {
51
+ readonly prefix?: Prefix | undefined
52
+ }
53
+ ): RpcGroup.RpcGroup<ConvertRpcs<Rpcs, Prefix>> => {
54
+ const prefix = options?.prefix ?? ""
55
+ const rpcs: Array<Rpc.Any> = []
56
+ for (const parentRpc_ of entity.protocol.requests.values()) {
57
+ const parentRpc = parentRpc_ as any as Rpc.AnyWithProps
58
+ const payloadSchema = Schema.Struct({
59
+ entityId: Schema.String,
60
+ payload: parentRpc.payloadSchema
61
+ })
62
+ const oldMake = payloadSchema.make
63
+ payloadSchema.make = (input: any, options?: Schema.MakeOptions) => {
64
+ return oldMake({
65
+ entityId: input.entityId,
66
+ payload: parentRpc.payloadSchema.make(input.payload, options)
67
+ }, options)
68
+ }
69
+ const rpc = Rpc.make(`${prefix}${parentRpc._tag}`, {
70
+ payload: payloadSchema,
71
+ error: Schema.Union(parentRpc.errorSchema, ...clientErrors),
72
+ success: parentRpc.successSchema
73
+ }).annotateContext(parentRpc.annotations)
74
+ rpcs.push(rpc)
75
+ }
76
+ return RpcGroup.make(...rpcs) as any as RpcGroup.RpcGroup<ConvertRpcs<Rpcs, Prefix>>
77
+ }
78
+
79
+ /**
80
+ * @since 1.0.0
81
+ */
82
+ export type ConvertRpcs<Rpcs extends Rpc.Any, Prefix extends string> = Rpcs extends Rpc.Rpc<
83
+ infer _Tag,
84
+ infer _Payload,
85
+ infer _Success,
86
+ infer _Error,
87
+ infer _Middleware
88
+ > ? Rpc.Rpc<
89
+ `${Prefix}${_Tag}`,
90
+ Schema.Struct<{
91
+ entityId: typeof Schema.String
92
+ payload: _Payload
93
+ }>,
94
+ _Success,
95
+ Schema.Schema<
96
+ _Error["Type"] | MailboxFull | AlreadyProcessingMessage | PersistenceError | EntityNotManagedByRunner,
97
+ | _Error["Encoded"]
98
+ | typeof MailboxFull["Encoded"]
99
+ | typeof AlreadyProcessingMessage["Encoded"]
100
+ | typeof PersistenceError["Encoded"]
101
+ | typeof EntityNotManagedByRunner["Encoded"],
102
+ _Error["Context"]
103
+ >
104
+ >
105
+ : never
106
+
107
+ const entityIdPath = Schema.Struct({
108
+ entityId: Schema.String
109
+ })
110
+
111
+ /**
112
+ * Derives an `HttpApiGroup` from an `Entity`.
113
+ *
114
+ * ```ts
115
+ * import { ClusterSchema, Entity, EntityProxy, EntityProxyServer } from "@effect/cluster"
116
+ * import { HttpApi, HttpApiBuilder } from "@effect/platform"
117
+ * import { Rpc } from "@effect/rpc"
118
+ * import { Layer, Schema } from "effect"
119
+ *
120
+ * export const Counter = Entity.make("Counter", [
121
+ * Rpc.make("Increment", {
122
+ * payload: { id: Schema.String, amount: Schema.Number },
123
+ * primaryKey: ({ id }) => id,
124
+ * success: Schema.Number
125
+ * })
126
+ * ]).annotateRpcs(ClusterSchema.Persisted, true)
127
+ *
128
+ * // Use EntityProxy.toHttpApiGroup to create a `HttpApiGroup` from the
129
+ * // Counter entity
130
+ * export class MyApi extends HttpApi.make("api")
131
+ * .add(
132
+ * EntityProxy.toHttpApiGroup("counter", Counter)
133
+ * .prefix("/counter")
134
+ * )
135
+ * {}
136
+ *
137
+ * // Use EntityProxyServer.layerHttpApi to create a layer that implements
138
+ * // the handlers for the HttpApiGroup
139
+ * const ApiLayer = HttpApiBuilder.api(MyApi).pipe(
140
+ * Layer.provide(EntityProxyServer.layerHttpApi(MyApi, "counter", Counter))
141
+ * )
142
+ * ```
143
+ *
144
+ * @since 1.0.0
145
+ * @category Constructors
146
+ */
147
+ export const toHttpApiGroup = <const Name extends string, Rpcs extends Rpc.Any>(
148
+ name: Name,
149
+ entity: Entity.Entity<Rpcs>
150
+ ): HttpApiGroup.HttpApiGroup<Name, ConvertHttpApi<Rpcs>> => {
151
+ let group = HttpApiGroup.make(name)
152
+ for (const parentRpc_ of entity.protocol.requests.values()) {
153
+ const parentRpc = parentRpc_ as any as Rpc.AnyWithProps
154
+ const endpoint = HttpApiEndpoint.post(parentRpc._tag, `/${tagToPath(parentRpc._tag)}/:entityId`)
155
+ .setPath(entityIdPath)
156
+ .setPayload(parentRpc.payloadSchema)
157
+ .addSuccess(parentRpc.successSchema)
158
+ .addError(Schema.Union(parentRpc.errorSchema, ...clientErrors))
159
+ .annotateContext(parentRpc.annotations)
160
+
161
+ group = group.add(endpoint) as any
162
+ }
163
+ return group as any as HttpApiGroup.HttpApiGroup<Name, ConvertHttpApi<Rpcs>>
164
+ }
165
+
166
+ const tagToPath = (tag: string): string =>
167
+ tag
168
+ .replace(/[^a-zA-Z0-9]+/g, "-") // Replace non-alphanumeric characters with hyphen
169
+ .replace(/([a-z])([A-Z])/g, "$1-$2") // Insert hyphen before uppercase letters
170
+ .toLowerCase()
171
+
172
+ /**
173
+ * @since 1.0.0
174
+ */
175
+ export type ConvertHttpApi<Rpcs extends Rpc.Any> = Rpcs extends Rpc.Rpc<
176
+ infer _Tag,
177
+ infer _Payload,
178
+ infer _Success,
179
+ infer _Error,
180
+ infer _Middleware
181
+ > ? HttpApiEndpoint.HttpApiEndpoint<
182
+ _Tag,
183
+ "POST",
184
+ { readonly entityId: string },
185
+ never,
186
+ _Payload["Type"],
187
+ never,
188
+ _Success["Type"],
189
+ _Error["Type"] | MailboxFull | AlreadyProcessingMessage | PersistenceError | EntityNotManagedByRunner,
190
+ _Payload["Context"] | _Success["Context"],
191
+ _Error["Context"]
192
+ > :
193
+ never
@@ -0,0 +1,86 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as HttpApi from "@effect/platform/HttpApi"
5
+ import * as HttpApiBuilder from "@effect/platform/HttpApiBuilder"
6
+ import type { ApiGroup, HttpApiGroup } from "@effect/platform/HttpApiGroup"
7
+ import type * as Rpc from "@effect/rpc/Rpc"
8
+ import * as Context from "effect/Context"
9
+ import * as Effect from "effect/Effect"
10
+ import * as Layer from "effect/Layer"
11
+ import type * as Entity from "./Entity.js"
12
+ import type { Sharding } from "./Sharding.js"
13
+
14
+ /**
15
+ * @since 1.0.0
16
+ * @category Layers
17
+ */
18
+ export const layerHttpApi = <
19
+ ApiId extends string,
20
+ Groups extends HttpApiGroup.Any,
21
+ ApiE,
22
+ ApiR,
23
+ Name extends HttpApiGroup.Name<Groups>,
24
+ Rpcs extends Rpc.Any
25
+ >(
26
+ api: HttpApi.HttpApi<ApiId, Groups, ApiE, ApiR>,
27
+ name: Name,
28
+ entity: Entity.Entity<Rpcs>
29
+ ): Layer.Layer<ApiGroup<ApiId, Name>, never, Sharding | Rpc.Context<Rpcs>> =>
30
+ HttpApiBuilder.group(
31
+ api,
32
+ name,
33
+ Effect.fnUntraced(function*(handlers_) {
34
+ const client = yield* entity.client
35
+ let handlers = handlers_
36
+ for (const parentRpc_ of entity.protocol.requests.values()) {
37
+ const parentRpc = parentRpc_ as any as Rpc.AnyWithProps
38
+ handlers = handlers.handle(
39
+ parentRpc._tag as any,
40
+ (({ path, payload }: { path: { entityId: string }; payload: any }) =>
41
+ (client(path.entityId) as any)[parentRpc._tag](payload)) as any
42
+ ) as any
43
+ }
44
+ return handlers as HttpApiBuilder.Handlers<never, never, never>
45
+ })
46
+ )
47
+
48
+ /**
49
+ * @since 1.0.0
50
+ * @category Layers
51
+ */
52
+ export const layerRpcHandlers = <
53
+ Rpcs extends Rpc.Any,
54
+ const Prefix extends string = ""
55
+ >(entity: Entity.Entity<Rpcs>, options?: {
56
+ readonly prefix?: Prefix
57
+ }): Layer.Layer<RpcHandlers<Rpcs, Prefix>, never, Sharding | Rpc.Context<Rpcs>> =>
58
+ Layer.effectContext(Effect.gen(function*() {
59
+ const context = yield* Effect.context<never>()
60
+ const prefix = options?.prefix ?? ""
61
+ const client = yield* entity.client
62
+ const handlers = new Map<string, Rpc.Handler<string>>()
63
+ for (const parentRpc_ of entity.protocol.requests.values()) {
64
+ const parentRpc = parentRpc_ as any as Rpc.AnyWithProps
65
+ const tag = `${prefix}${parentRpc._tag}` as const
66
+ const key = `@effect/rpc/Rpc/${tag}`
67
+ handlers.set(key, {
68
+ context,
69
+ tag,
70
+ handler: ({ entityId, payload }: any) => (client(entityId) as any)[parentRpc._tag](payload) as any
71
+ } as any)
72
+ }
73
+ return Context.unsafeMake(handlers)
74
+ }))
75
+
76
+ /**
77
+ * @since 1.0.0
78
+ */
79
+ export type RpcHandlers<Rpcs extends Rpc.Any, Prefix extends string> = Rpcs extends Rpc.Rpc<
80
+ infer _Tag,
81
+ infer _Payload,
82
+ infer _Success,
83
+ infer _Error,
84
+ infer _Middleware
85
+ > ? Rpc.Handler<`${Prefix}${_Tag}`>
86
+ : never
@@ -148,7 +148,6 @@ export const config: Config.Config<ShardingConfig["Type"]> = Config.all({
148
148
  }).pipe(Config.map((options) => RunnerAddress.make(options)), Config.option),
149
149
  runnerListenAddress: Config.all({
150
150
  host: Config.string("listenHost").pipe(
151
- Config.withDefault(defaultRunnerAddress.host),
152
151
  Config.withDescription("The host to listen on.")
153
152
  ),
154
153
  port: Config.integer("listenPort").pipe(
package/src/index.ts CHANGED
@@ -43,6 +43,16 @@ export * as EntityAddress from "./EntityAddress.js"
43
43
  */
44
44
  export * as EntityId from "./EntityId.js"
45
45
 
46
+ /**
47
+ * @since 1.0.0
48
+ */
49
+ export * as EntityProxy from "./EntityProxy.js"
50
+
51
+ /**
52
+ * @since 1.0.0
53
+ */
54
+ export * as EntityProxyServer from "./EntityProxyServer.js"
55
+
46
56
  /**
47
57
  * @since 1.0.0
48
58
  */