@orpc/server 0.0.0-next.f356b86 → 0.0.0-next.f437dcb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +5 -3
  2. package/dist/adapters/aws-lambda/index.d.mts +7 -6
  3. package/dist/adapters/aws-lambda/index.d.ts +7 -6
  4. package/dist/adapters/aws-lambda/index.mjs +5 -4
  5. package/dist/adapters/bun-ws/index.d.mts +10 -9
  6. package/dist/adapters/bun-ws/index.d.ts +10 -9
  7. package/dist/adapters/bun-ws/index.mjs +13 -13
  8. package/dist/adapters/crossws/index.d.mts +7 -6
  9. package/dist/adapters/crossws/index.d.ts +7 -6
  10. package/dist/adapters/crossws/index.mjs +5 -7
  11. package/dist/adapters/fetch/index.d.mts +54 -8
  12. package/dist/adapters/fetch/index.d.ts +54 -8
  13. package/dist/adapters/fetch/index.mjs +73 -3
  14. package/dist/adapters/message-port/index.d.mts +10 -9
  15. package/dist/adapters/message-port/index.d.ts +10 -9
  16. package/dist/adapters/message-port/index.mjs +8 -10
  17. package/dist/adapters/node/index.d.mts +30 -8
  18. package/dist/adapters/node/index.d.ts +30 -8
  19. package/dist/adapters/node/index.mjs +69 -12
  20. package/dist/adapters/standard/index.d.mts +8 -14
  21. package/dist/adapters/standard/index.d.ts +8 -14
  22. package/dist/adapters/standard/index.mjs +2 -2
  23. package/dist/adapters/standard-peer/index.d.mts +12 -8
  24. package/dist/adapters/standard-peer/index.d.ts +12 -8
  25. package/dist/adapters/standard-peer/index.mjs +1 -1
  26. package/dist/adapters/websocket/index.d.mts +14 -13
  27. package/dist/adapters/websocket/index.d.ts +14 -13
  28. package/dist/adapters/websocket/index.mjs +8 -10
  29. package/dist/adapters/ws/index.d.mts +10 -9
  30. package/dist/adapters/ws/index.d.ts +10 -9
  31. package/dist/adapters/ws/index.mjs +8 -10
  32. package/dist/helpers/index.d.mts +134 -0
  33. package/dist/helpers/index.d.ts +134 -0
  34. package/dist/helpers/index.mjs +188 -0
  35. package/dist/hibernation/index.d.mts +11 -11
  36. package/dist/hibernation/index.d.ts +11 -11
  37. package/dist/hibernation/index.mjs +8 -8
  38. package/dist/index.d.mts +8 -39
  39. package/dist/index.d.ts +8 -39
  40. package/dist/index.mjs +7 -6
  41. package/dist/plugins/index.d.mts +17 -4
  42. package/dist/plugins/index.d.ts +17 -4
  43. package/dist/plugins/index.mjs +83 -57
  44. package/dist/shared/{server.CB8Snncu.mjs → server.2SSWGLDL.mjs} +74 -41
  45. package/dist/shared/{server.CeW2jMCj.d.ts → server.B7b2w3_i.d.ts} +2 -2
  46. package/dist/shared/{server.B3dVpAsJ.d.mts → server.BEFBl-Cb.d.mts} +2 -2
  47. package/dist/shared/server.BU4WI18A.d.mts +32 -0
  48. package/dist/shared/{server.BE3B4vij.d.ts → server.Bmh5xd4n.d.ts} +3 -3
  49. package/dist/shared/{server.6ohwBdwx.d.mts → server.CYNGeoCm.d.mts} +6 -4
  50. package/dist/shared/{server.6ohwBdwx.d.ts → server.CYNGeoCm.d.ts} +6 -4
  51. package/dist/shared/server.D0H-iaY3.d.ts +32 -0
  52. package/dist/shared/server.DhJj-1X9.d.mts +42 -0
  53. package/dist/shared/{server.DLJzqnSX.mjs → server.Dp6pyBjF.mjs} +112 -56
  54. package/dist/shared/server.UVMTOWrk.mjs +26 -0
  55. package/dist/shared/{server.BtQsqpPB.d.mts → server.gqRxT-yN.d.mts} +3 -3
  56. package/dist/shared/server.jMTkVNIb.d.ts +42 -0
  57. package/package.json +18 -11
  58. package/dist/shared/server.B6GspgNq.d.ts +0 -12
  59. package/dist/shared/server.CKafa5G2.d.mts +0 -12
  60. package/dist/shared/server.DxNFsvpM.mjs +0 -20
@@ -1,6 +1,7 @@
1
1
  import { isContractProcedure, ValidationError, mergePrefix, mergeErrorMap, enhanceRoute } from '@orpc/contract';
2
- import { value, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
3
- import { fallbackORPCErrorStatus, ORPCError } from '@orpc/client';
2
+ import { resolveMaybeOptionalOptions, toArray, value, runWithSpan, intercept, isAsyncIteratorObject, asyncIteratorWithSpan } from '@orpc/shared';
3
+ import { ORPCError, fallbackORPCErrorStatus, mapEventIterator } from '@orpc/client';
4
+ import { HibernationEventIterator } from '@orpc/standard-server';
4
5
 
5
6
  const LAZY_SYMBOL = Symbol("ORPC_LAZY_SYMBOL");
6
7
  function lazy(loader, meta = {}) {
@@ -71,14 +72,15 @@ function createORPCErrorConstructorMap(errors) {
71
72
  if (typeof code !== "string") {
72
73
  return Reflect.get(target, code);
73
74
  }
74
- const item = (...[options]) => {
75
+ const item = (...rest) => {
76
+ const options = resolveMaybeOptionalOptions(rest);
75
77
  const config = errors[code];
76
78
  return new ORPCError(code, {
77
79
  defined: Boolean(config),
78
80
  status: config?.status,
79
- message: options?.message ?? config?.message,
80
- data: options?.data,
81
- cause: options?.cause
81
+ message: options.message ?? config?.message,
82
+ data: options.data,
83
+ cause: options.cause
82
84
  });
83
85
  };
84
86
  return item;
@@ -106,34 +108,59 @@ function middlewareOutputFn(output) {
106
108
  return { output, context: {} };
107
109
  }
108
110
 
109
- function createProcedureClient(lazyableProcedure, ...[options]) {
111
+ function createProcedureClient(lazyableProcedure, ...rest) {
112
+ const options = resolveMaybeOptionalOptions(rest);
110
113
  return async (...[input, callerOptions]) => {
111
- const path = options?.path ?? [];
114
+ const path = toArray(options.path);
112
115
  const { default: procedure } = await unlazy(lazyableProcedure);
113
116
  const clientContext = callerOptions?.context ?? {};
114
- const context = await value(options?.context ?? {}, clientContext);
117
+ const context = await value(options.context ?? {}, clientContext);
115
118
  const errors = createORPCErrorConstructorMap(procedure["~orpc"].errorMap);
119
+ const validateError = async (e) => {
120
+ if (e instanceof ORPCError) {
121
+ return await validateORPCError(procedure["~orpc"].errorMap, e);
122
+ }
123
+ return e;
124
+ };
116
125
  try {
117
- return await intercept(
118
- options?.interceptors ?? [],
119
- {
120
- context,
121
- input,
122
- // input only optional when it undefinable so we can safely cast it
123
- errors,
124
- path,
125
- procedure,
126
- signal: callerOptions?.signal,
127
- lastEventId: callerOptions?.lastEventId
128
- },
129
- (interceptorOptions) => executeProcedureInternal(interceptorOptions.procedure, interceptorOptions)
126
+ const output = await runWithSpan(
127
+ { name: "call_procedure", signal: callerOptions?.signal },
128
+ (span) => {
129
+ span?.setAttribute("procedure.path", [...path]);
130
+ return intercept(
131
+ toArray(options.interceptors),
132
+ {
133
+ context,
134
+ input,
135
+ // input only optional when it undefinable so we can safely cast it
136
+ errors,
137
+ path,
138
+ procedure,
139
+ signal: callerOptions?.signal,
140
+ lastEventId: callerOptions?.lastEventId
141
+ },
142
+ (interceptorOptions) => executeProcedureInternal(interceptorOptions.procedure, interceptorOptions)
143
+ );
144
+ }
130
145
  );
131
- } catch (e) {
132
- if (!(e instanceof ORPCError)) {
133
- throw e;
146
+ if (isAsyncIteratorObject(output)) {
147
+ if (output instanceof HibernationEventIterator) {
148
+ return output;
149
+ }
150
+ return mapEventIterator(
151
+ asyncIteratorWithSpan(
152
+ { name: "consume_event_iterator_output", signal: callerOptions?.signal },
153
+ output
154
+ ),
155
+ {
156
+ value: (v) => v,
157
+ error: (e) => validateError(e)
158
+ }
159
+ );
134
160
  }
135
- const validated = await validateORPCError(procedure["~orpc"].errorMap, e);
136
- throw validated;
161
+ return output;
162
+ } catch (e) {
163
+ throw await validateError(e);
137
164
  }
138
165
  };
139
166
  }
@@ -142,31 +169,49 @@ async function validateInput(procedure, input) {
142
169
  if (!schema) {
143
170
  return input;
144
171
  }
145
- const result = await schema["~standard"].validate(input);
146
- if (result.issues) {
147
- throw new ORPCError("BAD_REQUEST", {
148
- message: "Input validation failed",
149
- data: {
150
- issues: result.issues
151
- },
152
- cause: new ValidationError({ message: "Input validation failed", issues: result.issues })
153
- });
154
- }
155
- return result.value;
172
+ return runWithSpan(
173
+ { name: "validate_input" },
174
+ async () => {
175
+ const result = await schema["~standard"].validate(input);
176
+ if (result.issues) {
177
+ throw new ORPCError("BAD_REQUEST", {
178
+ message: "Input validation failed",
179
+ data: {
180
+ issues: result.issues
181
+ },
182
+ cause: new ValidationError({
183
+ message: "Input validation failed",
184
+ issues: result.issues,
185
+ data: input
186
+ })
187
+ });
188
+ }
189
+ return result.value;
190
+ }
191
+ );
156
192
  }
157
193
  async function validateOutput(procedure, output) {
158
194
  const schema = procedure["~orpc"].outputSchema;
159
195
  if (!schema) {
160
196
  return output;
161
197
  }
162
- const result = await schema["~standard"].validate(output);
163
- if (result.issues) {
164
- throw new ORPCError("INTERNAL_SERVER_ERROR", {
165
- message: "Output validation failed",
166
- cause: new ValidationError({ message: "Output validation failed", issues: result.issues })
167
- });
168
- }
169
- return result.value;
198
+ return runWithSpan(
199
+ { name: "validate_output" },
200
+ async () => {
201
+ const result = await schema["~standard"].validate(output);
202
+ if (result.issues) {
203
+ throw new ORPCError("INTERNAL_SERVER_ERROR", {
204
+ message: "Output validation failed",
205
+ cause: new ValidationError({
206
+ message: "Output validation failed",
207
+ issues: result.issues,
208
+ data: output
209
+ })
210
+ });
211
+ }
212
+ return result.value;
213
+ }
214
+ );
170
215
  }
171
216
  async function executeProcedureInternal(procedure, options) {
172
217
  const middlewares = procedure["~orpc"].middlewares;
@@ -178,17 +223,28 @@ async function executeProcedureInternal(procedure, options) {
178
223
  currentInput = await validateInput(procedure, currentInput);
179
224
  }
180
225
  const mid = middlewares[index];
181
- const output = mid ? (await mid({
182
- ...options,
183
- context,
184
- next: async (...[nextOptions]) => {
185
- const nextContext = nextOptions?.context ?? {};
186
- return {
187
- output: await next(index + 1, mergeCurrentContext(context, nextContext), currentInput),
188
- context: nextContext
189
- };
226
+ const output = mid ? await runWithSpan(
227
+ { name: `middleware.${mid.name}`, signal: options.signal },
228
+ async (span) => {
229
+ span?.setAttribute("middleware.index", index);
230
+ span?.setAttribute("middleware.name", mid.name);
231
+ const result = await mid({
232
+ ...options,
233
+ context,
234
+ next: async (...[nextOptions]) => {
235
+ const nextContext = nextOptions?.context ?? {};
236
+ return {
237
+ output: await next(index + 1, mergeCurrentContext(context, nextContext), currentInput),
238
+ context: nextContext
239
+ };
240
+ }
241
+ }, currentInput, middlewareOutputFn);
242
+ return result.output;
190
243
  }
191
- }, currentInput, middlewareOutputFn)).output : await procedure["~orpc"].handler({ ...options, context, input: currentInput });
244
+ ) : await runWithSpan(
245
+ { name: "handler", signal: options.signal },
246
+ () => procedure["~orpc"].handler({ ...options, context, input: currentInput })
247
+ );
192
248
  if (index === outputValidationIndex) {
193
249
  return await validateOutput(procedure, output);
194
250
  }
@@ -0,0 +1,26 @@
1
+ import '@orpc/client';
2
+ import '@orpc/shared';
3
+ import '@orpc/standard-server';
4
+ import '@orpc/contract';
5
+ import '@orpc/client/standard';
6
+ import { r as resolveFriendlyStandardHandleOptions } from './server.DZ5BIITo.mjs';
7
+
8
+ async function handleStandardServerPeerMessage(handler, peer, message, options) {
9
+ const [id, request] = await peer.message(message);
10
+ if (!request) {
11
+ return;
12
+ }
13
+ const handle = createServerPeerHandleRequestFn(handler, options);
14
+ await peer.response(id, await handle(request));
15
+ }
16
+ function createServerPeerHandleRequestFn(handler, options) {
17
+ return async (request) => {
18
+ const { response } = await handler.handle(
19
+ { ...request, body: () => Promise.resolve(request.body) },
20
+ resolveFriendlyStandardHandleOptions(options)
21
+ );
22
+ return response ?? { status: 404, headers: {}, body: "No procedure matched" };
23
+ };
24
+ }
25
+
26
+ export { createServerPeerHandleRequestFn as c, handleStandardServerPeerMessage as h };
@@ -2,7 +2,7 @@ import { HTTPPath, ORPCError } from '@orpc/client';
2
2
  import { Meta } from '@orpc/contract';
3
3
  import { Interceptor } from '@orpc/shared';
4
4
  import { StandardResponse, StandardLazyRequest } from '@orpc/standard-server';
5
- import { C as Context, R as Router, a as AnyRouter, A as AnyProcedure, P as ProcedureClientInterceptorOptions } from './server.6ohwBdwx.mjs';
5
+ import { C as Context, R as Router, b as AnyRouter, A as AnyProcedure, d as ProcedureClientInterceptorOptions } from './server.CYNGeoCm.mjs';
6
6
 
7
7
  interface StandardHandlerPlugin<T extends Context> {
8
8
  order?: number;
@@ -70,5 +70,5 @@ declare class StandardHandler<T extends Context> {
70
70
  handle(request: StandardLazyRequest, options: StandardHandleOptions<T>): Promise<StandardHandleResult>;
71
71
  }
72
72
 
73
- export { CompositeStandardHandlerPlugin as C, StandardHandler as a };
74
- export type { StandardHandlerOptions as S, StandardHandleOptions as b, StandardHandlerPlugin as c, StandardCodec as d, StandardParams as e, StandardMatcher as f, StandardMatchResult as g, StandardHandleResult as h, StandardHandlerInterceptorOptions as i };
73
+ export { CompositeStandardHandlerPlugin as C, StandardHandler as f };
74
+ export type { StandardCodec as S, StandardParams as a, StandardHandleOptions as b, StandardHandleResult as c, StandardHandlerInterceptorOptions as d, StandardHandlerOptions as e, StandardHandlerPlugin as g, StandardMatchResult as h, StandardMatcher as i };
@@ -0,0 +1,42 @@
1
+ import { ErrorMap, EnhanceRouteOptions, MergedErrorMap, AnyContractRouter, AnyContractProcedure } from '@orpc/contract';
2
+ import { a as AnyMiddleware, L as Lazyable, b as AnyRouter, C as Context, c as Lazy, A as AnyProcedure, P as Procedure, M as MergedInitialContext } from './server.CYNGeoCm.js';
3
+
4
+ declare function getRouter<T extends Lazyable<AnyRouter | undefined>>(router: T, path: readonly string[]): T extends Lazy<any> ? Lazy<AnyRouter | undefined> : Lazyable<AnyRouter | undefined>;
5
+ type AccessibleLazyRouter<T extends Lazyable<AnyRouter | undefined>> = T extends Lazy<infer U extends AnyRouter | undefined | Lazy<AnyRouter | undefined>> ? AccessibleLazyRouter<U> : T extends AnyProcedure | undefined ? Lazy<T> : Lazy<T> & {
6
+ [K in keyof T]: T[K] extends Lazyable<AnyRouter> ? AccessibleLazyRouter<T[K]> : never;
7
+ };
8
+ declare function createAccessibleLazyRouter<T extends Lazy<AnyRouter | undefined>>(lazied: T): AccessibleLazyRouter<T>;
9
+ type EnhancedRouter<T extends Lazyable<AnyRouter>, TInitialContext extends Context, TCurrentContext extends Context, TErrorMap extends ErrorMap> = T extends Lazy<infer U extends AnyRouter> ? AccessibleLazyRouter<EnhancedRouter<U, TInitialContext, TCurrentContext, TErrorMap>> : T extends Procedure<infer UInitialContext, infer UCurrentContext, infer UInputSchema, infer UOutputSchema, infer UErrorMap, infer UMeta> ? Procedure<MergedInitialContext<TInitialContext, UInitialContext, TCurrentContext>, UCurrentContext, UInputSchema, UOutputSchema, MergedErrorMap<TErrorMap, UErrorMap>, UMeta> : {
10
+ [K in keyof T]: T[K] extends Lazyable<AnyRouter> ? EnhancedRouter<T[K], TInitialContext, TCurrentContext, TErrorMap> : never;
11
+ };
12
+ interface EnhanceRouterOptions<TErrorMap extends ErrorMap> extends EnhanceRouteOptions {
13
+ middlewares: readonly AnyMiddleware[];
14
+ errorMap: TErrorMap;
15
+ dedupeLeadingMiddlewares: boolean;
16
+ }
17
+ declare function enhanceRouter<T extends Lazyable<AnyRouter>, TInitialContext extends Context, TCurrentContext extends Context, TErrorMap extends ErrorMap>(router: T, options: EnhanceRouterOptions<TErrorMap>): EnhancedRouter<T, TInitialContext, TCurrentContext, TErrorMap>;
18
+ interface TraverseContractProceduresOptions {
19
+ router: AnyContractRouter | AnyRouter;
20
+ path: readonly string[];
21
+ }
22
+ interface TraverseContractProcedureCallbackOptions {
23
+ contract: AnyContractProcedure | AnyProcedure;
24
+ path: readonly string[];
25
+ }
26
+ /**
27
+ * @deprecated Use `TraverseContractProcedureCallbackOptions` instead.
28
+ */
29
+ type ContractProcedureCallbackOptions = TraverseContractProcedureCallbackOptions;
30
+ interface LazyTraverseContractProceduresOptions {
31
+ router: Lazy<AnyRouter>;
32
+ path: readonly string[];
33
+ }
34
+ declare function traverseContractProcedures(options: TraverseContractProceduresOptions, callback: (options: TraverseContractProcedureCallbackOptions) => void, lazyOptions?: LazyTraverseContractProceduresOptions[]): LazyTraverseContractProceduresOptions[];
35
+ declare function resolveContractProcedures(options: TraverseContractProceduresOptions, callback: (options: TraverseContractProcedureCallbackOptions) => void): Promise<void>;
36
+ type UnlaziedRouter<T extends AnyRouter> = T extends AnyProcedure ? T : {
37
+ [K in keyof T]: T[K] extends Lazyable<infer U extends AnyRouter> ? UnlaziedRouter<U> : never;
38
+ };
39
+ declare function unlazyRouter<T extends AnyRouter>(router: T): Promise<UnlaziedRouter<T>>;
40
+
41
+ export { createAccessibleLazyRouter as c, enhanceRouter as e, getRouter as g, resolveContractProcedures as r, traverseContractProcedures as t, unlazyRouter as u };
42
+ export type { AccessibleLazyRouter as A, ContractProcedureCallbackOptions as C, EnhanceRouterOptions as E, LazyTraverseContractProceduresOptions as L, TraverseContractProcedureCallbackOptions as T, UnlaziedRouter as U, EnhancedRouter as a, TraverseContractProceduresOptions as b };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/server",
3
3
  "type": "module",
4
- "version": "0.0.0-next.f356b86",
4
+ "version": "0.0.0-next.f437dcb",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -19,6 +19,11 @@
19
19
  "import": "./dist/index.mjs",
20
20
  "default": "./dist/index.mjs"
21
21
  },
22
+ "./helpers": {
23
+ "types": "./dist/helpers/index.d.mts",
24
+ "import": "./dist/helpers/index.mjs",
25
+ "default": "./dist/helpers/index.mjs"
26
+ },
22
27
  "./plugins": {
23
28
  "types": "./dist/plugins/index.d.mts",
24
29
  "import": "./dist/plugins/index.mjs",
@@ -96,20 +101,22 @@
96
101
  }
97
102
  },
98
103
  "dependencies": {
99
- "@orpc/client": "0.0.0-next.f356b86",
100
- "@orpc/standard-server": "0.0.0-next.f356b86",
101
- "@orpc/shared": "0.0.0-next.f356b86",
102
- "@orpc/standard-server-aws-lambda": "0.0.0-next.f356b86",
103
- "@orpc/standard-server-node": "0.0.0-next.f356b86",
104
- "@orpc/standard-server-fetch": "0.0.0-next.f356b86",
105
- "@orpc/contract": "0.0.0-next.f356b86",
106
- "@orpc/standard-server-peer": "0.0.0-next.f356b86"
104
+ "cookie": "^1.0.2",
105
+ "@orpc/client": "0.0.0-next.f437dcb",
106
+ "@orpc/contract": "0.0.0-next.f437dcb",
107
+ "@orpc/interop": "0.0.0-next.f437dcb",
108
+ "@orpc/shared": "0.0.0-next.f437dcb",
109
+ "@orpc/standard-server-aws-lambda": "0.0.0-next.f437dcb",
110
+ "@orpc/standard-server-fetch": "0.0.0-next.f437dcb",
111
+ "@orpc/standard-server": "0.0.0-next.f437dcb",
112
+ "@orpc/standard-server-node": "0.0.0-next.f437dcb",
113
+ "@orpc/standard-server-peer": "0.0.0-next.f437dcb"
107
114
  },
108
115
  "devDependencies": {
109
116
  "@types/ws": "^8.18.1",
110
117
  "crossws": "^0.4.1",
111
- "next": "^15.3.5",
112
- "supertest": "^7.1.3",
118
+ "next": "^15.5.0",
119
+ "supertest": "^7.1.4",
113
120
  "ws": "^8.18.3"
114
121
  },
115
122
  "scripts": {
@@ -1,12 +0,0 @@
1
- import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
2
- import { C as Context, R as Router } from './server.6ohwBdwx.js';
3
- import { S as StandardHandlerOptions, a as StandardHandler } from './server.BE3B4vij.js';
4
-
5
- interface StandardRPCHandlerOptions<T extends Context> extends StandardHandlerOptions<T>, StandardRPCJsonSerializerOptions {
6
- }
7
- declare class StandardRPCHandler<T extends Context> extends StandardHandler<T> {
8
- constructor(router: Router<any, T>, options?: StandardRPCHandlerOptions<T>);
9
- }
10
-
11
- export { StandardRPCHandler as a };
12
- export type { StandardRPCHandlerOptions as S };
@@ -1,12 +0,0 @@
1
- import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
2
- import { C as Context, R as Router } from './server.6ohwBdwx.mjs';
3
- import { S as StandardHandlerOptions, a as StandardHandler } from './server.BtQsqpPB.mjs';
4
-
5
- interface StandardRPCHandlerOptions<T extends Context> extends StandardHandlerOptions<T>, StandardRPCJsonSerializerOptions {
6
- }
7
- declare class StandardRPCHandler<T extends Context> extends StandardHandler<T> {
8
- constructor(router: Router<any, T>, options?: StandardRPCHandlerOptions<T>);
9
- }
10
-
11
- export { StandardRPCHandler as a };
12
- export type { StandardRPCHandlerOptions as S };
@@ -1,20 +0,0 @@
1
- import '@orpc/client';
2
- import '@orpc/shared';
3
- import '@orpc/standard-server';
4
- import '@orpc/contract';
5
- import '@orpc/client/standard';
6
- import { r as resolveFriendlyStandardHandleOptions } from './server.DZ5BIITo.mjs';
7
-
8
- async function experimental_handleStandardServerPeerMessage(handler, peer, message, options) {
9
- const [id, request] = await peer.message(message);
10
- if (!request) {
11
- return;
12
- }
13
- const { response } = await handler.handle(
14
- { ...request, body: () => Promise.resolve(request.body) },
15
- resolveFriendlyStandardHandleOptions(options)
16
- );
17
- await peer.response(id, response ?? { status: 404, headers: {}, body: "No procedure matched" });
18
- }
19
-
20
- export { experimental_handleStandardServerPeerMessage as e };