@orpc/server 0.0.0-next.9b3a030 → 0.0.0-next.a2e4a58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-DNG2IB3R.js → chunk-GK2Z6B6W.js} +38 -35
- package/dist/{chunk-V3I7RIRY.js → chunk-SXUFCJBY.js} +5 -6
- package/dist/fetch.js +4 -4
- package/dist/hono.js +4 -4
- package/dist/index.js +672 -174
- package/dist/next.js +4 -4
- package/dist/node.js +6 -6
- package/dist/src/adapters/fetch/orpc-handler.d.ts +3 -3
- package/dist/src/adapters/node/orpc-handler.d.ts +3 -3
- package/dist/src/builder-with-errors-middlewares.d.ts +51 -0
- package/dist/src/builder-with-errors.d.ts +52 -0
- package/dist/src/builder-with-middlewares.d.ts +48 -0
- package/dist/src/builder.d.ts +36 -23
- package/dist/src/config.d.ts +6 -0
- package/dist/src/context.d.ts +11 -0
- package/dist/src/error.d.ts +1 -1
- package/dist/src/hidden.d.ts +2 -2
- package/dist/src/implementer-chainable.d.ts +7 -3
- package/dist/src/index.d.ts +4 -2
- package/dist/src/lazy-decorated.d.ts +3 -6
- package/dist/src/middleware-decorated.d.ts +2 -1
- package/dist/src/middleware.d.ts +1 -0
- package/dist/src/procedure-builder-with-input.d.ts +34 -0
- package/dist/src/procedure-builder-with-output.d.ts +33 -0
- package/dist/src/procedure-builder.d.ts +21 -18
- package/dist/src/procedure-client.d.ts +7 -19
- package/dist/src/procedure-decorated.d.ts +21 -10
- package/dist/src/procedure-implementer.d.ts +7 -4
- package/dist/src/procedure-utils.d.ts +17 -0
- package/dist/src/procedure.d.ts +4 -2
- package/dist/src/router-builder.d.ts +19 -15
- package/dist/src/router-client.d.ts +7 -6
- package/dist/src/router-implementer.d.ts +7 -6
- package/dist/src/router.d.ts +3 -3
- package/package.json +3 -3
@@ -36,9 +36,6 @@ function isProcedure(item) {
|
|
36
36
|
import { ORPCError } from "@orpc/contract";
|
37
37
|
function createORPCErrorConstructorMap(errors) {
|
38
38
|
const constructors = {};
|
39
|
-
if (!errors) {
|
40
|
-
return constructors;
|
41
|
-
}
|
42
39
|
for (const code in errors) {
|
43
40
|
const config = errors[code];
|
44
41
|
if (!config) {
|
@@ -86,38 +83,35 @@ function flatLazy(lazied) {
|
|
86
83
|
return lazy(flattenLoader);
|
87
84
|
}
|
88
85
|
|
86
|
+
// src/middleware.ts
|
87
|
+
function middlewareOutputFn(output) {
|
88
|
+
return { output, context: void 0 };
|
89
|
+
}
|
90
|
+
|
89
91
|
// src/procedure-client.ts
|
90
92
|
import { ORPCError as ORPCError2, validateORPCError, ValidationError } from "@orpc/contract";
|
91
93
|
import { executeWithHooks, toError, value } from "@orpc/shared";
|
92
|
-
function createProcedureClient(options) {
|
94
|
+
function createProcedureClient(lazyableProcedure, ...[options]) {
|
93
95
|
return async (...[input, callerOptions]) => {
|
94
|
-
const path = options
|
95
|
-
const { default: procedure } = await unlazy(
|
96
|
-
const context = await value(options
|
97
|
-
const
|
96
|
+
const path = options?.path ?? [];
|
97
|
+
const { default: procedure } = await unlazy(lazyableProcedure);
|
98
|
+
const context = await value(options?.context, callerOptions?.context);
|
99
|
+
const errors = createORPCErrorConstructorMap(procedure["~orpc"].contract["~orpc"].errorMap);
|
100
|
+
const executeOptions = {
|
101
|
+
input,
|
102
|
+
context,
|
103
|
+
errors,
|
98
104
|
path,
|
99
105
|
procedure,
|
100
106
|
signal: callerOptions?.signal
|
101
107
|
};
|
102
|
-
const executeWithValidation = async () => {
|
103
|
-
const validInput = await validateInput(procedure, input);
|
104
|
-
const output = await executeMiddlewareChain({
|
105
|
-
context,
|
106
|
-
input: validInput,
|
107
|
-
path,
|
108
|
-
procedure,
|
109
|
-
signal: callerOptions?.signal,
|
110
|
-
errors: createORPCErrorConstructorMap(procedure["~orpc"].contract["~orpc"].errorMap)
|
111
|
-
});
|
112
|
-
return validateOutput(procedure, output);
|
113
|
-
};
|
114
108
|
try {
|
115
109
|
const output = await executeWithHooks({
|
116
110
|
hooks: options,
|
117
111
|
input,
|
118
112
|
context,
|
119
|
-
meta,
|
120
|
-
execute:
|
113
|
+
meta: executeOptions,
|
114
|
+
execute: () => executeProcedureInternal(procedure, executeOptions)
|
121
115
|
});
|
122
116
|
return output;
|
123
117
|
} catch (e) {
|
@@ -160,21 +154,29 @@ async function validateOutput(procedure, output) {
|
|
160
154
|
}
|
161
155
|
return result.value;
|
162
156
|
}
|
163
|
-
async function
|
164
|
-
const middlewares =
|
165
|
-
|
166
|
-
|
157
|
+
async function executeProcedureInternal(procedure, options) {
|
158
|
+
const middlewares = procedure["~orpc"].middlewares;
|
159
|
+
const inputValidationIndex = Math.min(Math.max(0, procedure["~orpc"].inputValidationIndex), middlewares.length);
|
160
|
+
const outputValidationIndex = Math.min(Math.max(0, procedure["~orpc"].outputValidationIndex), middlewares.length);
|
161
|
+
let currentIndex = 0;
|
162
|
+
let currentContext = options.context;
|
163
|
+
let currentInput = options.input;
|
167
164
|
const next = async (nextOptions) => {
|
168
|
-
const
|
169
|
-
|
165
|
+
const index = currentIndex;
|
166
|
+
currentIndex += 1;
|
170
167
|
currentContext = mergeContext(currentContext, nextOptions.context);
|
171
|
-
if (
|
172
|
-
|
168
|
+
if (index === inputValidationIndex) {
|
169
|
+
currentInput = await validateInput(procedure, currentInput);
|
170
|
+
}
|
171
|
+
const mid = middlewares[index];
|
172
|
+
const result = mid ? await mid({ ...options, context: currentContext, next }, currentInput, middlewareOutputFn) : { output: await procedure["~orpc"].handler({ ...options, context: currentContext, input: currentInput }), context: currentContext };
|
173
|
+
if (index === outputValidationIndex) {
|
174
|
+
const validatedOutput = await validateOutput(procedure, result.output);
|
175
|
+
return {
|
176
|
+
...result,
|
177
|
+
output: validatedOutput
|
178
|
+
};
|
173
179
|
}
|
174
|
-
const result = {
|
175
|
-
output: await opt.procedure["~orpc"].handler({ ...opt, context: currentContext }),
|
176
|
-
context: currentContext
|
177
|
-
};
|
178
180
|
return result;
|
179
181
|
};
|
180
182
|
return (await next({})).output;
|
@@ -221,7 +223,8 @@ export {
|
|
221
223
|
isLazy,
|
222
224
|
unlazy,
|
223
225
|
flatLazy,
|
226
|
+
middlewareOutputFn,
|
224
227
|
createProcedureClient,
|
225
228
|
getRouterChild
|
226
229
|
};
|
227
|
-
//# sourceMappingURL=chunk-
|
230
|
+
//# sourceMappingURL=chunk-GK2Z6B6W.js.map
|
@@ -4,7 +4,7 @@ import {
|
|
4
4
|
getRouterChild,
|
5
5
|
isProcedure,
|
6
6
|
unlazy
|
7
|
-
} from "./chunk-
|
7
|
+
} from "./chunk-GK2Z6B6W.js";
|
8
8
|
|
9
9
|
// src/adapters/fetch/super-json.ts
|
10
10
|
var super_json_exports = {};
|
@@ -238,7 +238,7 @@ var ORPCProcedureMatcher = class {
|
|
238
238
|
// src/adapters/fetch/orpc-handler.ts
|
239
239
|
import { ORPCError as ORPCError2 } from "@orpc/contract";
|
240
240
|
import { executeWithHooks, trim as trim2 } from "@orpc/shared";
|
241
|
-
var
|
241
|
+
var RPCHandler = class {
|
242
242
|
constructor(router, options) {
|
243
243
|
this.options = options;
|
244
244
|
this.procedureMatcher = options?.procedureMatcher ?? new ORPCProcedureMatcher(router);
|
@@ -256,9 +256,8 @@ var ORPCHandler = class {
|
|
256
256
|
return { matched: false, response: void 0 };
|
257
257
|
}
|
258
258
|
const input = await this.payloadCodec.decode(request);
|
259
|
-
const client = createProcedureClient({
|
259
|
+
const client = createProcedureClient(match.procedure, {
|
260
260
|
context,
|
261
|
-
procedure: match.procedure,
|
262
261
|
path: match.path
|
263
262
|
});
|
264
263
|
const output = await client(input, { signal: request.signal });
|
@@ -297,6 +296,6 @@ export {
|
|
297
296
|
super_json_exports,
|
298
297
|
ORPCPayloadCodec,
|
299
298
|
ORPCProcedureMatcher,
|
300
|
-
|
299
|
+
RPCHandler
|
301
300
|
};
|
302
|
-
//# sourceMappingURL=chunk-
|
301
|
+
//# sourceMappingURL=chunk-SXUFCJBY.js.map
|
package/dist/fetch.js
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
import "./chunk-WUOGVGWG.js";
|
2
2
|
import {
|
3
|
-
ORPCHandler,
|
4
3
|
ORPCPayloadCodec,
|
5
4
|
ORPCProcedureMatcher,
|
5
|
+
RPCHandler,
|
6
6
|
super_json_exports
|
7
|
-
} from "./chunk-
|
8
|
-
import "./chunk-
|
7
|
+
} from "./chunk-SXUFCJBY.js";
|
8
|
+
import "./chunk-GK2Z6B6W.js";
|
9
9
|
export {
|
10
|
-
ORPCHandler,
|
11
10
|
ORPCPayloadCodec,
|
12
11
|
ORPCProcedureMatcher,
|
12
|
+
RPCHandler,
|
13
13
|
super_json_exports as SuperJSON
|
14
14
|
};
|
15
15
|
//# sourceMappingURL=fetch.js.map
|
package/dist/hono.js
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
import "./chunk-WUOGVGWG.js";
|
2
2
|
import {
|
3
|
-
ORPCHandler,
|
4
3
|
ORPCPayloadCodec,
|
5
4
|
ORPCProcedureMatcher,
|
5
|
+
RPCHandler,
|
6
6
|
super_json_exports
|
7
|
-
} from "./chunk-
|
8
|
-
import "./chunk-
|
7
|
+
} from "./chunk-SXUFCJBY.js";
|
8
|
+
import "./chunk-GK2Z6B6W.js";
|
9
9
|
|
10
10
|
// src/adapters/hono/middleware.ts
|
11
11
|
import { value } from "@orpc/shared";
|
@@ -21,9 +21,9 @@ function createMiddleware(handler, ...[options]) {
|
|
21
21
|
};
|
22
22
|
}
|
23
23
|
export {
|
24
|
-
ORPCHandler,
|
25
24
|
ORPCPayloadCodec,
|
26
25
|
ORPCProcedureMatcher,
|
26
|
+
RPCHandler,
|
27
27
|
super_json_exports as SuperJSON,
|
28
28
|
createMiddleware
|
29
29
|
};
|