@dr_nikson/effect-grpc 3.0.0-mvp-87283f517fd15c8199f5ba251bf74e2503cd0baf → 3.0.0-mvp-e2b78b1c4be4bb339577d68dfce008ef1b56218c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -712,31 +712,55 @@ const configLayer = Layer.succeed(
712
712
 
713
713
  ## Advanced Usage
714
714
 
715
- ### Error Handling
715
+ ### Error Handling with GrpcException
716
716
 
717
- effect-grpc integrates with Effect's error handling system:
717
+ effect-grpc provides `GrpcException`, a typed error that extends Effect's `Data.TaggedError` for handling gRPC errors. All generated service methods return `Effect<Success, GrpcException>`.
718
718
 
719
719
  ```typescript
720
- const serviceImpl = {
721
- myMethod(request) {
720
+ import { Effect } from "effect";
721
+ import { HandlerContext } from "@connectrpc/connect";
722
+ import { GrpcException } from "@dr_nikson/effect-grpc";
723
+ import { Code } from "@connectrpc/connect";
724
+
725
+ import * as effectProto from "./generated/example/v1/user_effect.js";
726
+ import * as proto from "./generated/example/v1/user_pb.js";
727
+
728
+ // Implement the service with error handling
729
+ const UserServiceLive: effectProto.UserService<HandlerContext> = {
730
+ getUser(request: proto.GetUserRequest) {
722
731
  return Effect.gen(function* () {
723
- // Validate input
724
- if (!request.id) {
725
- return yield* Effect.fail(new InvalidInputError("ID is required"));
732
+ // Input validation with gRPC status codes
733
+ if (!request.userId) {
734
+ return yield* Effect.fail(
735
+ GrpcException.create(Code.InvalidArgument, "User ID is required")
736
+ );
726
737
  }
727
738
 
728
- // Business logic with error handling
729
- const result = yield* Effect.tryPromise({
730
- try: () => fetchData(request.id),
731
- catch: (error) => new DatabaseError("Failed to fetch data", { cause: error })
739
+ // Convert unknown errors to GrpcException
740
+ const user = yield* Effect.tryPromise({
741
+ try: () => database.findUser(request.userId),
742
+ catch: (error) => GrpcException.from(Code.Internal, error)
732
743
  });
733
744
 
734
- return { data: result };
745
+ if (!user) {
746
+ return yield* Effect.fail(
747
+ GrpcException.create(Code.NotFound, "User not found")
748
+ );
749
+ }
750
+
751
+ return { user };
735
752
  });
736
753
  }
737
754
  };
738
755
  ```
739
756
 
757
+ **GrpcException API:**
758
+ - `GrpcException.create(code, message, cause?)` - Create a new exception
759
+ - `GrpcException.from(code, cause)` - Convert any error to GrpcException
760
+ - `GrpcException.withDescription(error, desc)` - Add context description
761
+
762
+ For gRPC status codes and error handling best practices, see [Connect RPC Error Handling](https://connectrpc.com/docs/node/errors).
763
+
740
764
  ### Dependency Injection
741
765
 
742
766
  Leverage Effect's powerful dependency injection to compose your services with external dependencies:
@@ -0,0 +1,243 @@
1
+ import type { Code, ConnectError } from "@connectrpc/connect";
2
+ declare const GrpcException_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
3
+ readonly _tag: "@dr_nikson/effect-grpc/grpcException/GrpcException";
4
+ } & Readonly<A>;
5
+ /**
6
+ * A high-level error type for gRPC operations in Effect programs.
7
+ *
8
+ * GrpcException is a tagged error that extends Data.TaggedError, designed as part of the DSL
9
+ * for gRPC error handling. It focuses on application-level concerns (code, message, description, cause)
10
+ * rather than low-level wire-format details.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { Effect } from "effect";
15
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
16
+ * import { Code } from "@connectrpc/connect";
17
+ *
18
+ * // Create an exception with a code and message
19
+ * const notFoundError = GrpcException.create(
20
+ * Code.NotFound,
21
+ * "User not found"
22
+ * );
23
+ *
24
+ * // Use in Effect programs with catchTag
25
+ * const program = Effect.gen(function* () {
26
+ * yield* notFoundError; // The error is yieldable
27
+ * yield* Effect.fail(notFoundError);
28
+ * }).pipe(
29
+ * Effect.catchTag(GrpcException, (error) => {
30
+ * console.log(`gRPC error [${Code[error.code]}]: ${error.message}`);
31
+ * return Effect.succeed("recovered");
32
+ * })
33
+ * );
34
+ *
35
+ * // Convert from unknown error
36
+ * try {
37
+ * // some operation
38
+ * } catch (error) {
39
+ * yield* GrpcException.from(Code.Internal, error);
40
+ * }
41
+ *
42
+ * // Add context with description
43
+ * const enriched = GrpcException.withDescription(
44
+ * notFoundError,
45
+ * "Database query failed"
46
+ * );
47
+ * ```
48
+ *
49
+ * @category Error Handling
50
+ * @since 0.2.0
51
+ */
52
+ export declare class GrpcException extends GrpcException_base<{
53
+ /**
54
+ * The gRPC status code for this error.
55
+ */
56
+ readonly code: Code;
57
+ /**
58
+ * The error message describing what went wrong.
59
+ */
60
+ readonly message: string;
61
+ /**
62
+ * Optional description providing additional context about the error.
63
+ * This can be used to add higher-level context without modifying the original message.
64
+ *
65
+ * Unlike the message field, description can be easily modified as errors bubble up
66
+ * through the call stack using withDescription.
67
+ */
68
+ readonly description?: string;
69
+ /**
70
+ * Optional cause of this error.
71
+ * Used to chain errors and preserve the original error that caused this exception.
72
+ * Can be a native Error, Effect tagged error.
73
+ */
74
+ readonly cause?: unknown;
75
+ }> {
76
+ /**
77
+ * Returns a formatted error message including the status code, message, and description (if present).
78
+ * This is called automatically when the error is converted to a string.
79
+ *
80
+ * Format:
81
+ * - Without description: "[code] message"
82
+ * - With description: "[code] message (description)"
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
87
+ * import { Code } from "@connectrpc/connect";
88
+ *
89
+ * const error1 = GrpcException.create(
90
+ * Code.NotFound,
91
+ * "User not found"
92
+ * );
93
+ * console.log(error1.toString());
94
+ * // Output: "[not_found] User not found"
95
+ *
96
+ * const error2 = GrpcException.withDescription(
97
+ * error1,
98
+ * "Database query failed"
99
+ * );
100
+ * console.log(error2.toString());
101
+ * // Output: "[not_found] User not found (Database query failed)"
102
+ * ```
103
+ */
104
+ toString(): string;
105
+ }
106
+ /**
107
+ * Creates a new GrpcException from the provided parameters.
108
+ *
109
+ * This is the primary constructor for creating GrpcException instances.
110
+ * Code and message are required; cause is optional.
111
+ *
112
+ * @param code - The gRPC status code (required)
113
+ * @param message - The error message (required)
114
+ * @param cause - Optional cause of the error
115
+ * @returns A new GrpcException instance
116
+ *
117
+ * @example
118
+ * ```typescript
119
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
120
+ * import { Code } from "@connectrpc/connect";
121
+ *
122
+ * // Simple error
123
+ * const error1 = GrpcException.create(
124
+ * Code.NotFound,
125
+ * "User not found"
126
+ * );
127
+ *
128
+ * // With cause
129
+ * try {
130
+ * // some operation
131
+ * } catch (err) {
132
+ * const error2 = GrpcException.create(
133
+ * Code.Internal,
134
+ * "Operation failed",
135
+ * err
136
+ * );
137
+ * }
138
+ * ```
139
+ */
140
+ export declare const create: {
141
+ (code: Code, message: string, cause?: unknown): GrpcException;
142
+ };
143
+ /**
144
+ * Converts any value into a GrpcException, following these rules:
145
+ * - If the cause is a ConnectError, wraps it preserving code and message
146
+ * - For other Errors, creates a GrpcException with the error message and sets it as cause
147
+ * - For other values, converts to string and uses as message
148
+ *
149
+ * @param code - The gRPC status code to use (required)
150
+ * @param cause - The error/value to convert (native Error, ConnectError, or any value)
151
+ * @returns A GrpcException instance
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * import { Effect } from "effect";
156
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
157
+ * import { Code, ConnectError } from "@connectrpc/connect";
158
+ *
159
+ * const handleError = (error: unknown) =>
160
+ * Effect.fail(GrpcException.from(Code.Internal, error));
161
+ *
162
+ * // From ConnectError - preserves code and message
163
+ * const connectErr = new ConnectError("Not found", Code.NotFound);
164
+ * const grpcErr1 = GrpcException.from(Code.Internal, connectErr);
165
+ * // grpcErr1.code === Code.NotFound (from ConnectError, not the parameter)
166
+ * // grpcErr1.message === "Not found"
167
+ *
168
+ * // From regular Error - sets as cause
169
+ * const regularErr = new Error("Network timeout");
170
+ * const grpcErr2 = GrpcException.from(Code.Unavailable, regularErr);
171
+ * // grpcErr2.code === Code.Unavailable
172
+ * // grpcErr2.message === "Network timeout"
173
+ * // grpcErr2.cause === regularErr
174
+ * ```
175
+ */
176
+ export declare const from: {
177
+ (code: Code, cause: unknown): GrpcException;
178
+ };
179
+ /**
180
+ * Sets or replaces the description field of a GrpcException.
181
+ * Returns a new GrpcException with the specified description.
182
+ *
183
+ * @param error - The GrpcException to modify
184
+ * @param description - The description to set
185
+ * @returns A new GrpcException with the description
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
190
+ * import { Code } from "@connectrpc/connect";
191
+ *
192
+ * const error = GrpcException.create(
193
+ * Code.NotFound,
194
+ * "User not found"
195
+ * );
196
+ * const enriched = GrpcException.withDescription(
197
+ * error,
198
+ * "Database query failed"
199
+ * );
200
+ * // enriched.description === "Database query failed"
201
+ * ```
202
+ */
203
+ export declare const withDescription: {
204
+ (error: GrpcException, description: string): GrpcException;
205
+ };
206
+ /**
207
+ * Converts a GrpcException to a ConnectError for use with Connect-RPC.
208
+ * This is useful when you need to throw or return errors in Connect-RPC handlers.
209
+ *
210
+ * Only the code, message, and cause are preserved. Description is not included
211
+ * as ConnectError doesn't have a corresponding field.
212
+ *
213
+ * @param error - The GrpcException to convert
214
+ * @returns A ConnectError instance
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
219
+ * import { Code } from "@connectrpc/connect";
220
+ *
221
+ * const error = GrpcException.create(
222
+ * Code.NotFound,
223
+ * "User not found"
224
+ * );
225
+ * const withDesc = GrpcException.withDescription(
226
+ * error,
227
+ * "Database query failed"
228
+ * );
229
+ *
230
+ * const connectError = GrpcException.toConnectError(withDesc);
231
+ * // connectError.code === Code.NotFound
232
+ * // connectError.rawMessage === "User not found"
233
+ * // Note: description is lost in conversion
234
+ *
235
+ * // Can be thrown in Connect-RPC handlers
236
+ * throw GrpcException.toConnectError(error);
237
+ * ```
238
+ */
239
+ export declare const toConnectError: {
240
+ (error: GrpcException): ConnectError;
241
+ };
242
+ export {};
243
+ //# sourceMappingURL=grpcException.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpcException.d.ts","sourceRoot":"","sources":["../src/grpcException.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;;;;AAI9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,aAAc,SAAQ,mBAEjC;IACA;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,QAAQ,IAAI,MAAM;CAUnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;CAC7C,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,IAAI,EAAE;IACjB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC;CAC7B,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe,EAAE;IAC5B,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC;CACjC,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAAC;CACZ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { ConnectError } from "@connectrpc/connect";
2
+ import type { Code } from "@connectrpc/connect";
3
+ import { GrpcException } from "./grpcException.js";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare const create: (code: Code, message: string, cause?: unknown) => GrpcException;
8
+ /**
9
+ * @internal
10
+ */
11
+ export declare const from: (code: Code, cause: unknown) => GrpcException;
12
+ /**
13
+ * @internal
14
+ */
15
+ export declare const withDescription: (error: GrpcException, description: string) => GrpcException;
16
+ /**
17
+ * @internal
18
+ */
19
+ export declare const toConnectError: (error: GrpcException) => ConnectError;
20
+ /**
21
+ * @internal
22
+ */
23
+ export declare const toString: (error: GrpcException) => string;
24
+ /**
25
+ * @internal
26
+ */
27
+ export declare const inspect: (error: GrpcException) => string;
28
+ //# sourceMappingURL=grpcException.internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpcException.internal.d.ts","sourceRoot":"","sources":["../src/grpcException.internal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,MAAM,IAAI,EAAE,SAAS,MAAM,EAAE,QAAQ,OAAO,KAAG,aAErE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,IAAI,EAAE,OAAO,OAAO,KAAG,aA2BjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,aAAa,EAAE,aAAa,MAAM,KAAG,aAO3E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,aAAa,KAAG,YAErD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,KAAG,MAO/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,aAAa,KAAG,MAE9C,CAAC"}
@@ -0,0 +1,72 @@
1
+ // packages/effect-grpc/src/grpcException.internal.ts
2
+ import { ConnectError } from "@connectrpc/connect";
3
+ import { GrpcException } from "./grpcException.js";
4
+ /**
5
+ * @internal
6
+ */
7
+ export const create = (code, message, cause) => {
8
+ return new GrpcException({ code, message, cause });
9
+ };
10
+ /**
11
+ * @internal
12
+ */
13
+ export const from = (code, cause) => {
14
+ // Handle ConnectError - preserve code and message
15
+ if (cause instanceof ConnectError) {
16
+ return new GrpcException({
17
+ code: cause.code,
18
+ message: cause.rawMessage,
19
+ cause,
20
+ });
21
+ }
22
+ // Handle regular Error - use error message and set as cause
23
+ if (cause instanceof Error) {
24
+ return new GrpcException({
25
+ code,
26
+ message: cause.message,
27
+ cause,
28
+ });
29
+ }
30
+ // For other values, convert to string and use as message
31
+ const message = String(cause);
32
+ return new GrpcException({
33
+ code,
34
+ message,
35
+ cause,
36
+ });
37
+ };
38
+ /**
39
+ * @internal
40
+ */
41
+ export const withDescription = (error, description) => {
42
+ return new GrpcException({
43
+ code: error.code,
44
+ message: error.message,
45
+ description,
46
+ cause: error.cause,
47
+ });
48
+ };
49
+ /**
50
+ * @internal
51
+ */
52
+ export const toConnectError = (error) => {
53
+ return new ConnectError(error.message, error.code, undefined, undefined, error.cause);
54
+ };
55
+ /**
56
+ * @internal
57
+ */
58
+ export const toString = (error) => {
59
+ const codeStr = error.code;
60
+ const parts = [`[${codeStr}]`, error.message];
61
+ if (error.description) {
62
+ parts.push(`(${error.description})`);
63
+ }
64
+ return parts.join(" ");
65
+ };
66
+ /**
67
+ * @internal
68
+ */
69
+ export const inspect = (error) => {
70
+ return toString(error);
71
+ };
72
+ //# sourceMappingURL=grpcException.internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpcException.internal.js","sourceRoot":"","sources":["../src/grpcException.internal.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAU,EAAE,OAAe,EAAE,KAAe,EAAiB,EAAE;IACpF,OAAO,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAU,EAAE,KAAc,EAAiB,EAAE;IAChE,kDAAkD;IAClD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,OAAO,IAAI,aAAa,CAAC;YACvB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,UAAU;YACzB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,4DAA4D;IAC5D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,aAAa,CAAC;YACvB,IAAI;YACJ,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9B,OAAO,IAAI,aAAa,CAAC;QACvB,IAAI;QACJ,OAAO;QACP,KAAK;KACN,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAoB,EAAE,WAAmB,EAAiB,EAAE;IAC1F,OAAO,IAAI,aAAa,CAAC;QACvB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW;QACX,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAgB,EAAE;IACnE,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AACxF,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAU,EAAE;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAoB,EAAU,EAAE;IACtD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC"}
@@ -0,0 +1,218 @@
1
+ // packages/effect-grpc/src/grpcException.ts
2
+ import { Data } from "effect";
3
+ import * as internal from "./grpcException.internal.js";
4
+ /**
5
+ * A high-level error type for gRPC operations in Effect programs.
6
+ *
7
+ * GrpcException is a tagged error that extends Data.TaggedError, designed as part of the DSL
8
+ * for gRPC error handling. It focuses on application-level concerns (code, message, description, cause)
9
+ * rather than low-level wire-format details.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { Effect } from "effect";
14
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
15
+ * import { Code } from "@connectrpc/connect";
16
+ *
17
+ * // Create an exception with a code and message
18
+ * const notFoundError = GrpcException.create(
19
+ * Code.NotFound,
20
+ * "User not found"
21
+ * );
22
+ *
23
+ * // Use in Effect programs with catchTag
24
+ * const program = Effect.gen(function* () {
25
+ * yield* notFoundError; // The error is yieldable
26
+ * yield* Effect.fail(notFoundError);
27
+ * }).pipe(
28
+ * Effect.catchTag(GrpcException, (error) => {
29
+ * console.log(`gRPC error [${Code[error.code]}]: ${error.message}`);
30
+ * return Effect.succeed("recovered");
31
+ * })
32
+ * );
33
+ *
34
+ * // Convert from unknown error
35
+ * try {
36
+ * // some operation
37
+ * } catch (error) {
38
+ * yield* GrpcException.from(Code.Internal, error);
39
+ * }
40
+ *
41
+ * // Add context with description
42
+ * const enriched = GrpcException.withDescription(
43
+ * notFoundError,
44
+ * "Database query failed"
45
+ * );
46
+ * ```
47
+ *
48
+ * @category Error Handling
49
+ * @since 0.2.0
50
+ */
51
+ export class GrpcException extends Data.TaggedError("@dr_nikson/effect-grpc/grpcException/GrpcException") {
52
+ /**
53
+ * Returns a formatted error message including the status code, message, and description (if present).
54
+ * This is called automatically when the error is converted to a string.
55
+ *
56
+ * Format:
57
+ * - Without description: "[code] message"
58
+ * - With description: "[code] message (description)"
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
63
+ * import { Code } from "@connectrpc/connect";
64
+ *
65
+ * const error1 = GrpcException.create(
66
+ * Code.NotFound,
67
+ * "User not found"
68
+ * );
69
+ * console.log(error1.toString());
70
+ * // Output: "[not_found] User not found"
71
+ *
72
+ * const error2 = GrpcException.withDescription(
73
+ * error1,
74
+ * "Database query failed"
75
+ * );
76
+ * console.log(error2.toString());
77
+ * // Output: "[not_found] User not found (Database query failed)"
78
+ * ```
79
+ */
80
+ toString() {
81
+ return internal.toString(this);
82
+ }
83
+ /**
84
+ * Custom inspection for Node.js util.inspect
85
+ */
86
+ [Symbol.for("nodejs.util.inspect.custom")]() {
87
+ return internal.inspect(this);
88
+ }
89
+ }
90
+ /**
91
+ * Creates a new GrpcException from the provided parameters.
92
+ *
93
+ * This is the primary constructor for creating GrpcException instances.
94
+ * Code and message are required; cause is optional.
95
+ *
96
+ * @param code - The gRPC status code (required)
97
+ * @param message - The error message (required)
98
+ * @param cause - Optional cause of the error
99
+ * @returns A new GrpcException instance
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
104
+ * import { Code } from "@connectrpc/connect";
105
+ *
106
+ * // Simple error
107
+ * const error1 = GrpcException.create(
108
+ * Code.NotFound,
109
+ * "User not found"
110
+ * );
111
+ *
112
+ * // With cause
113
+ * try {
114
+ * // some operation
115
+ * } catch (err) {
116
+ * const error2 = GrpcException.create(
117
+ * Code.Internal,
118
+ * "Operation failed",
119
+ * err
120
+ * );
121
+ * }
122
+ * ```
123
+ */
124
+ export const create = internal.create;
125
+ /**
126
+ * Converts any value into a GrpcException, following these rules:
127
+ * - If the cause is a ConnectError, wraps it preserving code and message
128
+ * - For other Errors, creates a GrpcException with the error message and sets it as cause
129
+ * - For other values, converts to string and uses as message
130
+ *
131
+ * @param code - The gRPC status code to use (required)
132
+ * @param cause - The error/value to convert (native Error, ConnectError, or any value)
133
+ * @returns A GrpcException instance
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * import { Effect } from "effect";
138
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
139
+ * import { Code, ConnectError } from "@connectrpc/connect";
140
+ *
141
+ * const handleError = (error: unknown) =>
142
+ * Effect.fail(GrpcException.from(Code.Internal, error));
143
+ *
144
+ * // From ConnectError - preserves code and message
145
+ * const connectErr = new ConnectError("Not found", Code.NotFound);
146
+ * const grpcErr1 = GrpcException.from(Code.Internal, connectErr);
147
+ * // grpcErr1.code === Code.NotFound (from ConnectError, not the parameter)
148
+ * // grpcErr1.message === "Not found"
149
+ *
150
+ * // From regular Error - sets as cause
151
+ * const regularErr = new Error("Network timeout");
152
+ * const grpcErr2 = GrpcException.from(Code.Unavailable, regularErr);
153
+ * // grpcErr2.code === Code.Unavailable
154
+ * // grpcErr2.message === "Network timeout"
155
+ * // grpcErr2.cause === regularErr
156
+ * ```
157
+ */
158
+ export const from = internal.from;
159
+ /**
160
+ * Sets or replaces the description field of a GrpcException.
161
+ * Returns a new GrpcException with the specified description.
162
+ *
163
+ * @param error - The GrpcException to modify
164
+ * @param description - The description to set
165
+ * @returns A new GrpcException with the description
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
170
+ * import { Code } from "@connectrpc/connect";
171
+ *
172
+ * const error = GrpcException.create(
173
+ * Code.NotFound,
174
+ * "User not found"
175
+ * );
176
+ * const enriched = GrpcException.withDescription(
177
+ * error,
178
+ * "Database query failed"
179
+ * );
180
+ * // enriched.description === "Database query failed"
181
+ * ```
182
+ */
183
+ export const withDescription = internal.withDescription;
184
+ /**
185
+ * Converts a GrpcException to a ConnectError for use with Connect-RPC.
186
+ * This is useful when you need to throw or return errors in Connect-RPC handlers.
187
+ *
188
+ * Only the code, message, and cause are preserved. Description is not included
189
+ * as ConnectError doesn't have a corresponding field.
190
+ *
191
+ * @param error - The GrpcException to convert
192
+ * @returns A ConnectError instance
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
197
+ * import { Code } from "@connectrpc/connect";
198
+ *
199
+ * const error = GrpcException.create(
200
+ * Code.NotFound,
201
+ * "User not found"
202
+ * );
203
+ * const withDesc = GrpcException.withDescription(
204
+ * error,
205
+ * "Database query failed"
206
+ * );
207
+ *
208
+ * const connectError = GrpcException.toConnectError(withDesc);
209
+ * // connectError.code === Code.NotFound
210
+ * // connectError.rawMessage === "User not found"
211
+ * // Note: description is lost in conversion
212
+ *
213
+ * // Can be thrown in Connect-RPC handlers
214
+ * throw GrpcException.toConnectError(error);
215
+ * ```
216
+ */
217
+ export const toConnectError = internal.toConnectError;
218
+ //# sourceMappingURL=grpcException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpcException.js","sourceRoot":"","sources":["../src/grpcException.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,OAAO,aAAc,SAAQ,IAAI,CAAC,WAAW,CACjD,oDAAoD,CA2BpD;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,QAAQ;QACN,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,MAAM,MAAM,GAEf,QAAQ,CAAC,MAAM,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,IAAI,GAEb,QAAQ,CAAC,IAAI,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,eAAe,GAExB,QAAQ,CAAC,eAAe,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,cAAc,GAEvB,QAAQ,CAAC,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * as EffectGrpcServer from "./server.js";
2
2
  export * as EffectGrpcClient from "./client.js";
3
+ export * as GrpcException from "./grpcException.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * as EffectGrpcServer from "./server.js";
2
2
  export * as EffectGrpcClient from "./client.js";
3
+ export * as GrpcException from "./grpcException.js";
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC"}
@@ -2,6 +2,7 @@ import { Effect, Runtime } from "effect";
2
2
  import type { DescMessage, MessageInitShape, MessageShape } from "@bufbuild/protobuf";
3
3
  import type { GenMessage, GenServiceMethods } from "@bufbuild/protobuf/codegenv2";
4
4
  import type { HandlerContext } from "@connectrpc/connect";
5
+ import * as GrpcException from "./grpcException.js";
5
6
  import type { RequestMeta } from "./client.js";
6
7
  /**
7
8
  * Type-safe executor interface for gRPC service methods.
@@ -69,14 +70,14 @@ type UnaryClientExecutorFn<I extends DescMessage, O extends DescMessage> = (requ
69
70
  * ```
70
71
  */
71
72
  export interface ServerExecutor<Ctx> {
72
- unary<In, Out>(req: In, ctx: HandlerContext, prog: (req: In, ctx: Ctx) => Effect.Effect<Out>): Promise<Out>;
73
+ unary<In, Out>(req: In, ctx: HandlerContext, prog: (req: In, ctx: Ctx) => Effect.Effect<Out, GrpcException.GrpcException>): Promise<Out>;
73
74
  }
74
75
  export declare const ServerExecutor: {
75
76
  (runtime: Runtime.Runtime<never>): ServerExecutor<HandlerContext>;
76
77
  };
77
78
  export interface ServerExecutorTransformer<Ctx> {
78
79
  readonly transformation: (underlying: ServerExecutor<HandlerContext>) => ServerExecutor<Ctx>;
79
- transformContext<Ctx1>(f: (ctx: Ctx) => Effect.Effect<Ctx1>): ServerExecutorTransformer<Ctx1>;
80
+ transformContext<Ctx1>(f: (ctx: Ctx) => Effect.Effect<Ctx1, GrpcException.GrpcException>): ServerExecutorTransformer<Ctx1>;
80
81
  }
81
82
  export declare const ServerExecutorTransformer: {
82
83
  (): ServerExecutorTransformer<HandlerContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"protoRuntime.d.ts","sourceRoot":"","sources":["../src/protoRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,cAAc,CAAC,YAAY,SAAS,iBAAiB,IAAI;KAClE,CAAC,IAAI,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CACjD;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;KAAE,CACpF,GACC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GACtD,0CAA0C;CAC7C,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,WAAW,IAAI,CACzE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,IAAI,CAAC,EAAE,WAAW,KACf,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG;IACjC,KAAK,CAAC,EAAE,EAAE,GAAG,EACX,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAC9C,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB;AACD,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;CAChC,CAAC;AAErC,MAAM,WAAW,yBAAyB,CAAC,GAAG;IAC5C,QAAQ,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC;IAE7F,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;CAC/F;AACD,eAAO,MAAM,yBAAyB,EAAE;IACtC,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;CACA,CAAC"}
1
+ {"version":3,"file":"protoRuntime.d.ts","sourceRoot":"","sources":["../src/protoRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,cAAc,CAAC,YAAY,SAAS,iBAAiB,IAAI;KAClE,CAAC,IAAI,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CACjD;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;KAAE,CACpF,GACC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GACtD,0CAA0C;CAC7C,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,WAAW,IAAI,CACzE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,IAAI,CAAC,EAAE,WAAW,KACf,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG;IACjC,KAAK,CAAC,EAAE,EAAE,GAAG,EACX,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC,GAC3E,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB;AACD,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;CAChC,CAAC;AAErC,MAAM,WAAW,yBAAyB,CAAC,GAAG;IAC5C,QAAQ,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC;IAE7F,gBAAgB,CAAC,IAAI,EACnB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,GAChE,yBAAyB,CAAC,IAAI,CAAC,CAAC;CACpC;AACD,eAAO,MAAM,yBAAyB,EAAE;IACtC,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;CACA,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Effect, Runtime } from "effect";
2
2
  import type { HandlerContext } from "@connectrpc/connect";
3
+ import * as GrpcException from "./grpcException.js";
3
4
  import type * as T from "./protoRuntime.js";
4
5
  /**
5
6
  * @internal
@@ -10,7 +11,7 @@ export declare class ServerExecutorLive implements T.ServerExecutor<HandlerConte
10
11
  readonly runtime: Runtime.Runtime<never>;
11
12
  constructor(runtime: Runtime.Runtime<never>);
12
13
  static make(runtime: Runtime.Runtime<never>): T.ServerExecutor<HandlerContext>;
13
- unary<In, Out>(req: In, ctx: HandlerContext, prog: (req: In, ctx: HandlerContext) => Effect.Effect<Out>): Promise<Out>;
14
+ unary<In, Out>(req: In, ctx: HandlerContext, prog: (req: In, ctx: HandlerContext) => Effect.Effect<Out, GrpcException.GrpcException>): Promise<Out>;
14
15
  }
15
16
  /**
16
17
  * @internal
@@ -21,6 +22,6 @@ export declare class ServerExecutorTransformerLive<Ctx> implements T.ServerExecu
21
22
  readonly transformation: (underlying: T.ServerExecutor<HandlerContext>) => T.ServerExecutor<Ctx>;
22
23
  constructor(transformation: (underlying: T.ServerExecutor<HandlerContext>) => T.ServerExecutor<Ctx>);
23
24
  static empty(): ServerExecutorTransformerLive<HandlerContext>;
24
- transformContext<Ctx1>(f: (ctx: Ctx) => Effect.Effect<Ctx1>): ServerExecutorTransformerLive<Ctx1>;
25
+ transformContext<Ctx1>(f: (ctx: Ctx) => Effect.Effect<Ctx1, GrpcException.GrpcException>): ServerExecutorTransformerLive<Ctx1>;
25
26
  }
26
27
  //# sourceMappingURL=protoRuntime.internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protoRuntime.internal.d.ts","sourceRoot":"","sources":["../src/protoRuntime.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,KAAK,CAAC,MAAM,mBAAmB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;aAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;gBAA/B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAE3D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;IAI9E,KAAK,CAAC,EAAE,EAAE,GAAG,EACX,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GACzD,OAAO,CAAC,GAAG,CAAC;CAGhB;AAED;;;;GAIG;AACH,qBAAa,6BAA6B,CAAC,GAAG,CAAE,YAAW,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC;aAEvE,cAAc,EAAE,CAC9B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KACzC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;gBAFV,cAAc,EAAE,CAC9B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KACzC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;IAG5B,MAAM,CAAC,KAAK,IAAI,6BAA6B,CAAC,cAAc,CAAC;IAI7D,gBAAgB,CAAC,IAAI,EACnB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GACnC,6BAA6B,CAAC,IAAI,CAAC;CAiBvC"}
1
+ {"version":3,"file":"protoRuntime.internal.d.ts","sourceRoot":"","sources":["../src/protoRuntime.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAQ,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,KAAK,CAAC,MAAM,mBAAmB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;aAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;gBAA/B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAE3D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;IAI9E,KAAK,CAAC,EAAE,EAAE,GAAG,EACX,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC,GACtF,OAAO,CAAC,GAAG,CAAC;CA0BhB;AAED;;;;GAIG;AACH,qBAAa,6BAA6B,CAAC,GAAG,CAAE,YAAW,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC;aAEvE,cAAc,EAAE,CAC9B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KACzC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;gBAFV,cAAc,EAAE,CAC9B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KACzC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;IAG5B,MAAM,CAAC,KAAK,IAAI,6BAA6B,CAAC,cAAc,CAAC;IAI7D,gBAAgB,CAAC,IAAI,EACnB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,GAChE,6BAA6B,CAAC,IAAI,CAAC;CAiBvC"}
@@ -1,4 +1,6 @@
1
- import { Effect, Runtime } from "effect";
1
+ import { Cause, Effect, Exit, Runtime } from "effect";
2
+ import { Code, ConnectError } from "@connectrpc/connect";
3
+ import * as GrpcException from "./grpcException.js";
2
4
  /**
3
5
  * @internal
4
6
  * Live implementation of the Executor interface using Effect's ManagedRuntime.
@@ -13,7 +15,19 @@ export class ServerExecutorLive {
13
15
  return new ServerExecutorLive(runtime);
14
16
  }
15
17
  unary(req, ctx, prog) {
16
- return Runtime.runPromise(this.runtime, prog(req, ctx), { signal: ctx.signal });
18
+ return Runtime.runPromiseExit(this.runtime, prog(req, ctx), { signal: ctx.signal }).then(Exit.match({
19
+ onFailure: (cause) => {
20
+ throw Cause.match(cause, {
21
+ onEmpty: new ConnectError("Unknown error", Code.Unknown),
22
+ onFail: (error) => GrpcException.toConnectError(error),
23
+ onDie: (defect) => new ConnectError("Internal server error", Code.Internal, undefined, undefined, defect),
24
+ onInterrupt: () => new ConnectError("Request was canceled", Code.Aborted),
25
+ onSequential: (left, right) => new ConnectError(`${left.rawMessage}; ${right.rawMessage}`, Code.Internal),
26
+ onParallel: (left, right) => new ConnectError(`${left.rawMessage} | ${right.rawMessage}`, Code.Internal),
27
+ });
28
+ },
29
+ onSuccess: (value) => value,
30
+ }));
17
31
  }
18
32
  }
19
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"protoRuntime.internal.js","sourceRoot":"","sources":["../src/protoRuntime.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMzC;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACD;IAA5B,YAA4B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAE/D,MAAM,CAAC,IAAI,CAAC,OAA+B;QACzC,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CACH,GAAO,EACP,GAAmB,EACnB,IAA0D;QAE1D,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IAEtB;IADlB,YACkB,cAEU;QAFV,mBAAc,GAAd,cAAc,CAEJ;IACzB,CAAC;IAEJ,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,6BAA6B,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;IAED,gBAAgB,CACd,CAAoC;QAEpC,OAAO,IAAI,6BAA6B,CAAO,CAAC,UAAU,EAAE,EAAE;YAC5D,MAAM,QAAQ,GAA0B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAExE,OAAO;gBACL,KAAK,CACH,GAAO,EACP,GAAmB,EACnB,IAAgD;oBAEhD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;wBAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;gBACL,CAAC;aACwB,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"protoRuntime.internal.js","sourceRoot":"","sources":["../src/protoRuntime.internal.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Effect, Runtime } from "effect";
2
+ import * as GrpcException from "./grpcException.js";
2
3
  import * as internal from "./protoRuntime.internal.js";
3
4
  export const ServerExecutor = internal.ServerExecutorLive.make;
4
5
  export const ServerExecutorTransformer = internal.ServerExecutorTransformerLive.empty;
@@ -1 +1 @@
1
- {"version":3,"file":"protoRuntime.js","sourceRoot":"","sources":["../src/protoRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMzC,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAC;AAgFvD,MAAM,CAAC,MAAM,cAAc,GAEvB,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAOrC,MAAM,CAAC,MAAM,yBAAyB,GAElC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,CAAC"}
1
+ {"version":3,"file":"protoRuntime.js","sourceRoot":"","sources":["../src/protoRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMzC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAC;AAgFvD,MAAM,CAAC,MAAM,cAAc,GAEvB,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC;AASrC,MAAM,CAAC,MAAM,yBAAyB,GAElC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,CAAC"}
@@ -66,6 +66,7 @@ function generateEffectService(f, service) {
66
66
  const importLayer = f.import("Layer", "effect");
67
67
  const importHandlerContext = f.import("HandlerContext", "@connectrpc/connect", true);
68
68
  const importEffectGrpcService = f.import("EffectGrpcServer", packageJson.name);
69
+ const importGrpcException = f.import("GrpcException", packageJson.name);
69
70
  const importService = f.importSchema(service);
70
71
  const serviceId = service.typeName;
71
72
  const serviceIdSymbol = safeIdentifier(service.name + "Id");
@@ -323,7 +324,7 @@ function generateEffectService(f, service) {
323
324
  case "unary":
324
325
  f.print();
325
326
  f.print(f.jsDoc(method, " "));
326
- f.print(" ", method.localName, "(request: ", inputType, ", ctx: Ctx): ", importEffect, ".Effect<", importMessageInitShape, "<typeof ", outputDesc, ">>;");
327
+ f.print(" ", method.localName, "(request: ", inputType, ", ctx: Ctx): ", importEffect, ".Effect<", importMessageInitShape, "<typeof ", outputDesc, ">, ", importGrpcException, ".GrpcException>;");
327
328
  return;
328
329
  default:
329
330
  f.print("// Method[", method.localName, "] wasn't generated: methodKind is not yet supported [", method.methodKind, "]");
@@ -1 +1 @@
1
- {"version":3,"file":"protocGenPlugin.js","sourceRoot":"","sources":["../src/protocGenPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocGenPlugin.js","sourceRoot":"","sources":["../src/protocGenPlugin.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Effect, Scope, Types } from "effect";
2
2
  import type { GenService, GenServiceMethods } from "@bufbuild/protobuf/codegenv2";
3
3
  import type { HandlerContext, ServiceImpl } from "@connectrpc/connect";
4
+ import * as GrpcException from "./grpcException.js";
4
5
  import * as ProtoRuntime from "./protoRuntime.js";
5
6
  import * as internal from "./server.internal.js";
6
7
  /**
@@ -32,7 +33,10 @@ import * as internal from "./server.internal.js";
32
33
  */
33
34
  export interface GrpcServer<in Services> {
34
35
  readonly _Services: Types.Contravariant<Services>;
35
- run(): Effect.Effect<never, never, Scope.Scope>;
36
+ run(options: {
37
+ host: string;
38
+ port: number;
39
+ }): Effect.Effect<never, never, Scope.Scope>;
36
40
  }
37
41
  /**
38
42
  * Utility type that concatenates service tags when adding a new service to an existing collection.
@@ -112,9 +116,9 @@ export type UniqueTag<S extends GrpcService<any, any, any>, Services> = S extend
112
116
  * ```
113
117
  */
114
118
  export interface GrpcServerBuilder<Ctx, Services> {
115
- readonly transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx>;
119
+ readonly transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx, GrpcException.GrpcException>;
116
120
  readonly services: Record<string & Services, GrpcService<any, any, Ctx>>;
117
- withContextTransformer<This extends GrpcServerBuilder<Ctx, Services>, Ctx1>(this: [Services] extends [never] ? This : never, f: (ctx: Ctx) => Effect.Effect<Ctx1>): GrpcServerBuilder<Ctx1, never>;
121
+ withContextTransformer<This extends GrpcServerBuilder<Ctx, Services>, Ctx1>(this: [Services] extends [never] ? This : never, f: (ctx: Ctx) => Effect.Effect<Ctx1, GrpcException.GrpcException>): GrpcServerBuilder<Ctx1, never>;
118
122
  withService<S extends GrpcService<any, any, Ctx>>(service: UniqueTag<S, Services>): GrpcServerBuilder<Ctx, ConcatServiceTags<S, Services>>;
119
123
  build<This extends GrpcServerBuilder<Ctx, Services>>(this: [Services] extends [never] ? never : This): GrpcServer<Services>;
120
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Effect } from "effect";
2
2
  import type { GenService, GenServiceMethods } from "@bufbuild/protobuf/codegenv2";
3
3
  import type { HandlerContext, ServiceImpl } from "@connectrpc/connect";
4
+ import * as GrpcException from "./grpcException.js";
4
5
  import * as ProtoRuntime from "./protoRuntime.js";
5
6
  import type * as T from "./server.js";
6
7
  /**
@@ -19,11 +20,11 @@ export declare function makeGrpcService<Tag, Proto extends GenService<RuntimeSha
19
20
  * Provides the fluent API for building gRPC servers with context transformation.
20
21
  */
21
22
  export declare class ConnectEsGprcServerBuilder<Ctx, Services> implements T.GrpcServerBuilder<Ctx, Services> {
22
- readonly transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx>;
23
+ readonly transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx, GrpcException.GrpcException>;
23
24
  readonly services: Record<string, T.GrpcService<any, any, Ctx>>;
24
- constructor(transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx>, services: Record<string, T.GrpcService<any, any, Ctx>>);
25
+ constructor(transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx, GrpcException.GrpcException>, services: Record<string, T.GrpcService<any, any, Ctx>>);
25
26
  static get empty(): T.GrpcServerBuilder<HandlerContext, never>;
26
- withContextTransformer<This extends T.GrpcServerBuilder<Ctx, Services>, Ctx1>(this: This, f: (ctx: Ctx) => Effect.Effect<Ctx1>): T.GrpcServerBuilder<Ctx1, never>;
27
+ withContextTransformer<This extends T.GrpcServerBuilder<Ctx, Services>, Ctx1>(this: This, f: (ctx: Ctx) => Effect.Effect<Ctx1, GrpcException.GrpcException>): T.GrpcServerBuilder<Ctx1, never>;
27
28
  withService<S extends T.GrpcService<any, any, Ctx>>(service: T.UniqueTag<S, Services>): T.GrpcServerBuilder<Ctx, T.ConcatServiceTags<S, Services>>;
28
29
  build<This extends T.GrpcServerBuilder<Ctx, Services>>(this: This): T.GrpcServer<Services>;
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.internal.d.ts","sourceRoot":"","sources":["../src/server.internal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAgB,MAAM,QAAQ,CAAC;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAGV,cAAc,EACd,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,KAAK,CAAC,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA+C,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EACH,KAAK,SAAS,UAAU,CAAC,YAAY,CAAC,EACtC,YAAY,SAAS,iBAAiB,EACtC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,IACnB,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,KAQpF,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAEtC;AAkHD;;;;GAIG;AACH,qBAAa,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CACnD,YAAW,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC;aAG3B,YAAY,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBADtD,YAAY,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAGxE,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAE7D;IAED,sBAAsB,CAAC,IAAI,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAC1E,IAAI,EAAE,IAAI,EACV,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GACnC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;IAOnC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChD,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAO7D,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;CAO3F"}
1
+ {"version":3,"file":"server.internal.d.ts","sourceRoot":"","sources":["../src/server.internal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAgB,MAAM,QAAQ,CAAC;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAGV,cAAc,EACd,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,KAAK,CAAC,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA+C,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EACH,KAAK,SAAS,UAAU,CAAC,YAAY,CAAC,EACtC,YAAY,SAAS,iBAAiB,EACtC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,IACnB,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,KAQpF,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAEtC;AA+GD;;;;GAIG;AACH,qBAAa,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CACnD,YAAW,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC;aAG3B,YAAY,EAAE,CAC5B,GAAG,EAAE,cAAc,KAChB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC;aACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAHtD,YAAY,EAAE,CAC5B,GAAG,EAAE,cAAc,KAChB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC,EACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAGxE,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAE7D;IAED,sBAAsB,CAAC,IAAI,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAC1E,IAAI,EAAE,IAAI,EACV,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,GAChE,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;IAOnC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChD,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAO7D,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;CAO3F"}
@@ -3,6 +3,7 @@ import { Effect, Scope, Types } from "effect";
3
3
  import http2 from "node:http2";
4
4
  import { createContextValues } from "@connectrpc/connect";
5
5
  import { connectNodeAdapter } from "@connectrpc/connect-node";
6
+ import * as GrpcException from "./grpcException.js";
6
7
  import * as ProtoRuntime from "./protoRuntime.js";
7
8
  /**
8
9
  * @internal
@@ -37,11 +38,9 @@ class EffectGrpcServerLive {
37
38
  this.transformation = transformation;
38
39
  }
39
40
  _Services = (a) => a;
40
- run() {
41
+ run(options) {
41
42
  const routes = this.routes.bind(this);
42
43
  const makeExecutor = this.makeExecutor.bind(this);
43
- const HOST = "localhost";
44
- const PORT = 8000;
45
44
  return Effect.gen(function* () {
46
45
  const executor = yield* makeExecutor();
47
46
  const handler = yield* Effect.sync(() => connectNodeAdapter({
@@ -53,7 +52,7 @@ class EffectGrpcServerLive {
53
52
  return createContextValues();
54
53
  },
55
54
  }));
56
- const startServer = Effect.async((resume) => {
55
+ const startServer = Effect.async((resume, signal) => {
57
56
  const server = http2
58
57
  .createServer(handler)
59
58
  .addListener("connect", (req, socket, head) => {
@@ -71,8 +70,8 @@ class EffectGrpcServerLive {
71
70
  .addListener("dropRequest", (req, socket) => {
72
71
  console.warn("Dropped request", req.url, socket);
73
72
  })
74
- .listen({ port: PORT, host: HOST }, () => {
75
- resume(Effect.logInfo(`gRPC server listening on http://${HOST}:${PORT}`).pipe(Effect.as(server)));
73
+ .listen({ ...options, signal }, () => {
74
+ resume(Effect.logInfo(`gRPC server listening on http://${options.host}:${options.port}`).pipe(Effect.as(server)));
76
75
  });
77
76
  });
78
77
  const stopServer = (server) => Effect.async((resume) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.internal.js","sourceRoot":"","sources":["../src/server.internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.internal.js","sourceRoot":"","sources":["../src/server.internal.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -1,5 +1,6 @@
1
1
  // packages/effect-grpc/src/server.ts
2
2
  import { Effect, Scope, Types } from "effect";
3
+ import * as GrpcException from "./grpcException.js";
3
4
  import * as ProtoRuntime from "./protoRuntime.js";
4
5
  import * as internal from "./server.internal.js";
5
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAK9C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AA2IjD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAE1B,GAAG,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC;AAgDpD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,WAAW,GAOpB,QAAQ,CAAC,eAAe,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAK9C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AA2IjD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAE1B,GAAG,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC;AAgDpD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,WAAW,GAOpB,QAAQ,CAAC,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dr_nikson/effect-grpc",
3
- "version": "3.0.0-mvp-87283f517fd15c8199f5ba251bf74e2503cd0baf",
3
+ "version": "3.0.0-mvp-e2b78b1c4be4bb339577d68dfce008ef1b56218c",
4
4
  "description": "gRPC and Protobuf capabilities for the Effect ecosystem",
5
5
  "private": false,
6
6
  "type": "module",