@orpc/server 0.0.0-next.b15d206 → 0.0.0-next.c12be86

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. package/dist/chunk-6A7XHEBH.js +189 -0
  2. package/dist/fetch.js +273 -630
  3. package/dist/index.js +404 -280
  4. package/dist/src/builder.d.ts +27 -41
  5. package/dist/src/fetch/composite-handler.d.ts +8 -0
  6. package/dist/src/fetch/index.d.ts +7 -0
  7. package/dist/src/fetch/orpc-handler.d.ts +20 -0
  8. package/dist/src/fetch/orpc-payload-codec.d.ts +16 -0
  9. package/dist/src/fetch/orpc-procedure-matcher.d.ts +12 -0
  10. package/dist/src/fetch/super-json.d.ts +12 -0
  11. package/dist/src/fetch/types.d.ts +16 -0
  12. package/dist/src/hidden.d.ts +6 -0
  13. package/dist/src/implementer-chainable.d.ts +10 -0
  14. package/dist/src/index.d.ts +11 -3
  15. package/dist/src/lazy-decorated.d.ts +10 -0
  16. package/dist/src/lazy-utils.d.ts +4 -0
  17. package/dist/src/lazy.d.ts +18 -0
  18. package/dist/src/middleware-decorated.d.ts +8 -0
  19. package/dist/src/middleware.d.ts +3 -6
  20. package/dist/src/procedure-builder.d.ts +15 -24
  21. package/dist/src/procedure-client.d.ts +34 -0
  22. package/dist/src/procedure-decorated.d.ts +14 -0
  23. package/dist/src/procedure-implementer.d.ts +13 -13
  24. package/dist/src/procedure.d.ts +18 -24
  25. package/dist/src/router-builder.d.ts +24 -17
  26. package/dist/src/router-client.d.ts +25 -0
  27. package/dist/src/router-implementer.d.ts +18 -17
  28. package/dist/src/router.d.ts +11 -15
  29. package/dist/src/types.d.ts +8 -4
  30. package/package.json +13 -21
  31. package/dist/chunk-TDFYNRZV.js +0 -190
  32. package/dist/chunk-TDFYNRZV.js.map +0 -1
  33. package/dist/fetch.js.map +0 -1
  34. package/dist/index.js.map +0 -1
  35. package/dist/src/adapters/fetch.d.ts +0 -42
  36. package/dist/src/adapters/fetch.d.ts.map +0 -1
  37. package/dist/src/builder.d.ts.map +0 -1
  38. package/dist/src/index.d.ts.map +0 -1
  39. package/dist/src/middleware.d.ts.map +0 -1
  40. package/dist/src/procedure-builder.d.ts.map +0 -1
  41. package/dist/src/procedure-caller.d.ts +0 -19
  42. package/dist/src/procedure-caller.d.ts.map +0 -1
  43. package/dist/src/procedure-implementer.d.ts.map +0 -1
  44. package/dist/src/procedure.d.ts.map +0 -1
  45. package/dist/src/router-builder.d.ts.map +0 -1
  46. package/dist/src/router-caller.d.ts +0 -22
  47. package/dist/src/router-caller.d.ts.map +0 -1
  48. package/dist/src/router-implementer.d.ts.map +0 -1
  49. package/dist/src/router.d.ts.map +0 -1
  50. package/dist/src/types.d.ts.map +0 -1
  51. package/dist/src/utils.d.ts.map +0 -1
  52. package/dist/tsconfig.tsbuildinfo +0 -1
  53. package/src/adapters/fetch.test.ts +0 -629
  54. package/src/adapters/fetch.ts +0 -290
  55. package/src/builder.test.ts +0 -371
  56. package/src/builder.ts +0 -238
  57. package/src/index.ts +0 -16
  58. package/src/middleware.test.ts +0 -260
  59. package/src/middleware.ts +0 -136
  60. package/src/procedure-builder.test.ts +0 -223
  61. package/src/procedure-builder.ts +0 -158
  62. package/src/procedure-caller.test.ts +0 -171
  63. package/src/procedure-caller.ts +0 -138
  64. package/src/procedure-implementer.test.ts +0 -220
  65. package/src/procedure-implementer.ts +0 -102
  66. package/src/procedure.test.ts +0 -317
  67. package/src/procedure.ts +0 -237
  68. package/src/router-builder.test.ts +0 -106
  69. package/src/router-builder.ts +0 -122
  70. package/src/router-caller.test.ts +0 -126
  71. package/src/router-caller.ts +0 -64
  72. package/src/router-implementer.test.ts +0 -116
  73. package/src/router-implementer.ts +0 -113
  74. package/src/router.test-d.ts +0 -48
  75. package/src/router.test.ts +0 -142
  76. package/src/router.ts +0 -91
  77. package/src/types.test.ts +0 -18
  78. package/src/types.ts +0 -13
  79. package/src/utils.test.ts +0 -16
  80. package/src/utils.ts +0 -16
@@ -0,0 +1,189 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __export = (target, all) => {
3
+ for (var name in all)
4
+ __defProp(target, name, { get: all[name], enumerable: true });
5
+ };
6
+
7
+ // src/utils.ts
8
+ function mergeContext(a, b) {
9
+ if (!a)
10
+ return b;
11
+ if (!b)
12
+ return a;
13
+ return {
14
+ ...a,
15
+ ...b
16
+ };
17
+ }
18
+
19
+ // src/procedure.ts
20
+ import { isContractProcedure } from "@orpc/contract";
21
+ var Procedure = class {
22
+ "~type" = "Procedure";
23
+ "~orpc";
24
+ constructor(def) {
25
+ this["~orpc"] = def;
26
+ }
27
+ };
28
+ function isProcedure(item) {
29
+ if (item instanceof Procedure) {
30
+ return true;
31
+ }
32
+ return (typeof item === "object" || typeof item === "function") && item !== null && "~type" in item && item["~type"] === "Procedure" && "~orpc" in item && typeof item["~orpc"] === "object" && item["~orpc"] !== null && "contract" in item["~orpc"] && isContractProcedure(item["~orpc"].contract) && "handler" in item["~orpc"] && typeof item["~orpc"].handler === "function";
33
+ }
34
+
35
+ // src/lazy.ts
36
+ var LAZY_LOADER_SYMBOL = Symbol("ORPC_LAZY_LOADER");
37
+ function lazy(loader) {
38
+ return {
39
+ [LAZY_LOADER_SYMBOL]: loader
40
+ };
41
+ }
42
+ function isLazy(item) {
43
+ return (typeof item === "object" || typeof item === "function") && item !== null && LAZY_LOADER_SYMBOL in item && typeof item[LAZY_LOADER_SYMBOL] === "function";
44
+ }
45
+ function unlazy(lazied) {
46
+ return isLazy(lazied) ? lazied[LAZY_LOADER_SYMBOL]() : Promise.resolve({ default: lazied });
47
+ }
48
+ function flatLazy(lazied) {
49
+ const flattenLoader = async () => {
50
+ let current = await unlazy(lazied);
51
+ while (true) {
52
+ if (!isLazy(current.default)) {
53
+ break;
54
+ }
55
+ current = await unlazy(current.default);
56
+ }
57
+ return current;
58
+ };
59
+ return lazy(flattenLoader);
60
+ }
61
+
62
+ // src/procedure-client.ts
63
+ import { executeWithHooks, value } from "@orpc/shared";
64
+ import { ORPCError } from "@orpc/shared/error";
65
+ function createProcedureClient(options) {
66
+ return async (...[input, callerOptions]) => {
67
+ const path = options.path ?? [];
68
+ const { default: procedure } = await unlazy(options.procedure);
69
+ const context = await value(options.context);
70
+ const meta = {
71
+ path,
72
+ procedure,
73
+ signal: callerOptions?.signal
74
+ };
75
+ const executeWithValidation = async () => {
76
+ const validInput = await validateInput(procedure, input);
77
+ const output = await executeMiddlewareChain(
78
+ procedure,
79
+ validInput,
80
+ context,
81
+ meta
82
+ );
83
+ return validateOutput(procedure, output);
84
+ };
85
+ return executeWithHooks({
86
+ hooks: options,
87
+ input,
88
+ context,
89
+ meta,
90
+ execute: executeWithValidation
91
+ });
92
+ };
93
+ }
94
+ async function validateInput(procedure, input) {
95
+ const schema = procedure["~orpc"].contract["~orpc"].InputSchema;
96
+ if (!schema)
97
+ return input;
98
+ const result = await schema["~standard"].validate(input);
99
+ if (result.issues) {
100
+ throw new ORPCError({
101
+ message: "Input validation failed",
102
+ code: "BAD_REQUEST",
103
+ issues: result.issues
104
+ });
105
+ }
106
+ return result.value;
107
+ }
108
+ async function validateOutput(procedure, output) {
109
+ const schema = procedure["~orpc"].contract["~orpc"].OutputSchema;
110
+ if (!schema)
111
+ return output;
112
+ const result = await schema["~standard"].validate(output);
113
+ if (result.issues) {
114
+ throw new ORPCError({
115
+ message: "Output validation failed",
116
+ code: "INTERNAL_SERVER_ERROR",
117
+ issues: result.issues
118
+ });
119
+ }
120
+ return result.value;
121
+ }
122
+ async function executeMiddlewareChain(procedure, input, context, meta) {
123
+ const middlewares = procedure["~orpc"].middlewares ?? [];
124
+ let currentMidIndex = 0;
125
+ let currentContext = context;
126
+ const next = async (nextOptions) => {
127
+ const mid = middlewares[currentMidIndex];
128
+ currentMidIndex += 1;
129
+ currentContext = mergeContext(currentContext, nextOptions.context);
130
+ if (mid) {
131
+ return await mid(input, currentContext, {
132
+ ...meta,
133
+ next,
134
+ output: (output) => ({ output, context: void 0 })
135
+ });
136
+ }
137
+ const result = {
138
+ output: await procedure["~orpc"].handler(input, currentContext, meta),
139
+ context: currentContext
140
+ };
141
+ return result;
142
+ };
143
+ return (await next({})).output;
144
+ }
145
+
146
+ // src/router.ts
147
+ function getRouterChild(router, ...path) {
148
+ let current = router;
149
+ for (let i = 0; i < path.length; i++) {
150
+ const segment = path[i];
151
+ if (!current) {
152
+ return void 0;
153
+ }
154
+ if (isProcedure(current)) {
155
+ return void 0;
156
+ }
157
+ if (!isLazy(current)) {
158
+ current = current[segment];
159
+ continue;
160
+ }
161
+ const lazied = current;
162
+ const rest = path.slice(i);
163
+ const newLazy = lazy(async () => {
164
+ const unwrapped = await unlazy(lazied);
165
+ if (!unwrapped.default) {
166
+ return unwrapped;
167
+ }
168
+ const next = getRouterChild(unwrapped.default, ...rest);
169
+ return { default: next };
170
+ });
171
+ return flatLazy(newLazy);
172
+ }
173
+ return current;
174
+ }
175
+
176
+ export {
177
+ __export,
178
+ mergeContext,
179
+ Procedure,
180
+ isProcedure,
181
+ LAZY_LOADER_SYMBOL,
182
+ lazy,
183
+ isLazy,
184
+ unlazy,
185
+ flatLazy,
186
+ createProcedureClient,
187
+ getRouterChild
188
+ };
189
+ //# sourceMappingURL=chunk-6A7XHEBH.js.map