@orpc/server 0.0.0-next.cba521d → 0.0.0-next.cbe59c9
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 +128 -0
- package/dist/adapters/bun-ws/index.d.mts +35 -0
- package/dist/adapters/bun-ws/index.d.ts +35 -0
- package/dist/adapters/bun-ws/index.mjs +51 -0
- package/dist/adapters/crossws/index.d.mts +30 -0
- package/dist/adapters/crossws/index.d.ts +30 -0
- package/dist/adapters/crossws/index.mjs +51 -0
- package/dist/adapters/fetch/index.d.mts +78 -0
- package/dist/adapters/fetch/index.d.ts +78 -0
- package/dist/adapters/fetch/index.mjs +110 -0
- package/dist/adapters/node/index.d.mts +77 -0
- package/dist/adapters/node/index.d.ts +77 -0
- package/dist/adapters/node/index.mjs +95 -0
- package/dist/adapters/standard/index.d.mts +26 -0
- package/dist/adapters/standard/index.d.ts +26 -0
- package/dist/adapters/standard/index.mjs +7 -0
- package/dist/adapters/websocket/index.d.mts +27 -0
- package/dist/adapters/websocket/index.d.ts +27 -0
- package/dist/adapters/websocket/index.mjs +38 -0
- package/dist/adapters/ws/index.d.mts +28 -0
- package/dist/adapters/ws/index.d.ts +28 -0
- package/dist/adapters/ws/index.mjs +38 -0
- package/dist/index.d.mts +829 -0
- package/dist/index.d.ts +829 -0
- package/dist/index.mjs +474 -0
- package/dist/plugins/index.d.mts +156 -0
- package/dist/plugins/index.d.ts +156 -0
- package/dist/plugins/index.mjs +251 -0
- package/dist/shared/server.4FnxLwwr.mjs +186 -0
- package/dist/shared/server.BRoxSiSC.d.mts +12 -0
- package/dist/shared/server.BVwwTHyO.mjs +9 -0
- package/dist/shared/server.BW-nUGgA.mjs +36 -0
- package/dist/shared/server.BjiJH9Vo.d.ts +10 -0
- package/dist/shared/server.Cy1vfSiG.d.ts +12 -0
- package/dist/shared/server.DG7Tamti.mjs +367 -0
- package/dist/shared/server.DPWk5pjW.d.mts +192 -0
- package/dist/shared/server.DPWk5pjW.d.ts +192 -0
- package/dist/shared/server.QUe9N8P4.d.mts +10 -0
- package/dist/shared/server.YZzrREz9.d.ts +74 -0
- package/dist/shared/server.eWLxY3lq.d.mts +74 -0
- package/package.json +63 -28
- package/dist/chunk-3EVCPLVI.js +0 -301
- package/dist/chunk-OUPZ7QGV.js +0 -245
- package/dist/chunk-WUOGVGWG.js +0 -1
- package/dist/fetch.js +0 -15
- package/dist/hono.js +0 -30
- package/dist/index.js +0 -562
- package/dist/next.js +0 -36
- package/dist/node.js +0 -87
- package/dist/src/adapters/fetch/index.d.ts +0 -6
- package/dist/src/adapters/fetch/orpc-handler.d.ts +0 -20
- package/dist/src/adapters/fetch/orpc-payload-codec.d.ts +0 -16
- package/dist/src/adapters/fetch/orpc-procedure-matcher.d.ts +0 -12
- package/dist/src/adapters/fetch/super-json.d.ts +0 -12
- package/dist/src/adapters/fetch/types.d.ts +0 -21
- package/dist/src/adapters/hono/index.d.ts +0 -3
- package/dist/src/adapters/hono/middleware.d.ts +0 -12
- package/dist/src/adapters/next/index.d.ts +0 -3
- package/dist/src/adapters/next/serve.d.ts +0 -19
- package/dist/src/adapters/node/index.d.ts +0 -5
- package/dist/src/adapters/node/orpc-handler.d.ts +0 -12
- package/dist/src/adapters/node/request-listener.d.ts +0 -28
- package/dist/src/adapters/node/types.d.ts +0 -22
- package/dist/src/builder.d.ts +0 -36
- package/dist/src/error.d.ts +0 -10
- package/dist/src/hidden.d.ts +0 -6
- package/dist/src/implementer-chainable.d.ts +0 -10
- package/dist/src/index.d.ts +0 -25
- package/dist/src/lazy-decorated.d.ts +0 -7
- package/dist/src/lazy-utils.d.ts +0 -4
- package/dist/src/lazy.d.ts +0 -18
- package/dist/src/middleware-decorated.d.ts +0 -9
- package/dist/src/middleware.d.ts +0 -36
- package/dist/src/procedure-builder.d.ts +0 -24
- package/dist/src/procedure-client.d.ts +0 -22
- package/dist/src/procedure-decorated.d.ts +0 -26
- package/dist/src/procedure-implementer.d.ts +0 -20
- package/dist/src/procedure-utils.d.ts +0 -17
- package/dist/src/procedure.d.ts +0 -44
- package/dist/src/router-builder.d.ts +0 -29
- package/dist/src/router-client.d.ts +0 -26
- package/dist/src/router-implementer.d.ts +0 -21
- package/dist/src/router.d.ts +0 -16
- package/dist/src/types.d.ts +0 -14
- package/dist/src/utils.d.ts +0 -3
package/dist/index.js
DELETED
@@ -1,562 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
LAZY_LOADER_SYMBOL,
|
3
|
-
Procedure,
|
4
|
-
createORPCErrorConstructorMap,
|
5
|
-
createProcedureClient,
|
6
|
-
flatLazy,
|
7
|
-
getRouterChild,
|
8
|
-
isLazy,
|
9
|
-
isProcedure,
|
10
|
-
lazy,
|
11
|
-
mergeContext,
|
12
|
-
middlewareOutputFn,
|
13
|
-
unlazy
|
14
|
-
} from "./chunk-OUPZ7QGV.js";
|
15
|
-
|
16
|
-
// src/builder.ts
|
17
|
-
import { ContractProcedure } from "@orpc/contract";
|
18
|
-
|
19
|
-
// src/implementer-chainable.ts
|
20
|
-
import { isContractProcedure } from "@orpc/contract";
|
21
|
-
import { createCallableObject as createCallableObject2 } from "@orpc/shared";
|
22
|
-
|
23
|
-
// src/middleware-decorated.ts
|
24
|
-
function decorateMiddleware(middleware) {
|
25
|
-
const decorated = middleware;
|
26
|
-
decorated.mapInput = (mapInput) => {
|
27
|
-
const mapped = decorateMiddleware(
|
28
|
-
(options, input, ...rest) => middleware(options, mapInput(input), ...rest)
|
29
|
-
);
|
30
|
-
return mapped;
|
31
|
-
};
|
32
|
-
decorated.concat = (concatMiddleware, mapInput) => {
|
33
|
-
const mapped = mapInput ? decorateMiddleware(concatMiddleware).mapInput(mapInput) : concatMiddleware;
|
34
|
-
const concatted = decorateMiddleware((options, input, output, ...rest) => {
|
35
|
-
const next = async (nextOptions) => {
|
36
|
-
return mapped({ ...options, context: mergeContext(nextOptions.context, options.context) }, input, output, ...rest);
|
37
|
-
};
|
38
|
-
const merged = middleware({ ...options, next }, input, output, ...rest);
|
39
|
-
return merged;
|
40
|
-
});
|
41
|
-
return concatted;
|
42
|
-
};
|
43
|
-
return decorated;
|
44
|
-
}
|
45
|
-
|
46
|
-
// src/procedure-decorated.ts
|
47
|
-
import { DecoratedContractProcedure } from "@orpc/contract";
|
48
|
-
import { createCallableObject } from "@orpc/shared";
|
49
|
-
var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
|
50
|
-
static decorate(procedure) {
|
51
|
-
if (procedure instanceof _DecoratedProcedure) {
|
52
|
-
return procedure;
|
53
|
-
}
|
54
|
-
return new _DecoratedProcedure(procedure["~orpc"]);
|
55
|
-
}
|
56
|
-
prefix(prefix) {
|
57
|
-
return new _DecoratedProcedure({
|
58
|
-
...this["~orpc"],
|
59
|
-
contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).prefix(prefix)
|
60
|
-
});
|
61
|
-
}
|
62
|
-
route(route) {
|
63
|
-
return new _DecoratedProcedure({
|
64
|
-
...this["~orpc"],
|
65
|
-
contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).route(route)
|
66
|
-
});
|
67
|
-
}
|
68
|
-
use(middleware, mapInput) {
|
69
|
-
const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
70
|
-
return new _DecoratedProcedure({
|
71
|
-
...this["~orpc"],
|
72
|
-
postMiddlewares: [...this["~orpc"].postMiddlewares, middleware_]
|
73
|
-
});
|
74
|
-
}
|
75
|
-
unshiftTag(...tags) {
|
76
|
-
return new _DecoratedProcedure({
|
77
|
-
...this["~orpc"],
|
78
|
-
contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).unshiftTag(...tags)
|
79
|
-
});
|
80
|
-
}
|
81
|
-
unshiftMiddleware(...middlewares) {
|
82
|
-
const castedMiddlewares = middlewares;
|
83
|
-
if (this["~orpc"].preMiddlewares.length) {
|
84
|
-
let min = 0;
|
85
|
-
for (let i = 0; i < this["~orpc"].preMiddlewares.length; i++) {
|
86
|
-
const index = castedMiddlewares.indexOf(this["~orpc"].preMiddlewares[i], min);
|
87
|
-
if (index === -1) {
|
88
|
-
castedMiddlewares.push(...this["~orpc"].preMiddlewares.slice(i));
|
89
|
-
break;
|
90
|
-
}
|
91
|
-
min = index + 1;
|
92
|
-
}
|
93
|
-
}
|
94
|
-
return new _DecoratedProcedure({
|
95
|
-
...this["~orpc"],
|
96
|
-
preMiddlewares: castedMiddlewares
|
97
|
-
});
|
98
|
-
}
|
99
|
-
/**
|
100
|
-
* Make this procedure callable (works like a function while still being a procedure).
|
101
|
-
* **Note**: this only takes effect when this method is called at the end of the chain.
|
102
|
-
*/
|
103
|
-
callable(...rest) {
|
104
|
-
return createCallableObject(this, createProcedureClient(this, ...rest));
|
105
|
-
}
|
106
|
-
/**
|
107
|
-
* Make this procedure compatible with server action (the same as .callable, but the type is compatible with server action).
|
108
|
-
* **Note**: this only takes effect when this method is called at the end of the chain.
|
109
|
-
*/
|
110
|
-
actionable(...rest) {
|
111
|
-
return this.callable(...rest);
|
112
|
-
}
|
113
|
-
};
|
114
|
-
|
115
|
-
// src/procedure-implementer.ts
|
116
|
-
var ProcedureImplementer = class _ProcedureImplementer {
|
117
|
-
"~type" = "ProcedureImplementer";
|
118
|
-
"~orpc";
|
119
|
-
constructor(def) {
|
120
|
-
this["~orpc"] = def;
|
121
|
-
}
|
122
|
-
use(middleware, mapInput) {
|
123
|
-
const mappedMiddleware = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
|
124
|
-
return new _ProcedureImplementer({
|
125
|
-
...this["~orpc"],
|
126
|
-
postMiddlewares: [...this["~orpc"].postMiddlewares, mappedMiddleware]
|
127
|
-
});
|
128
|
-
}
|
129
|
-
handler(handler) {
|
130
|
-
return new DecoratedProcedure({
|
131
|
-
postMiddlewares: this["~orpc"].postMiddlewares,
|
132
|
-
preMiddlewares: this["~orpc"].preMiddlewares,
|
133
|
-
contract: this["~orpc"].contract,
|
134
|
-
handler
|
135
|
-
});
|
136
|
-
}
|
137
|
-
};
|
138
|
-
|
139
|
-
// src/hidden.ts
|
140
|
-
var ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_ROUTER_CONTRACT");
|
141
|
-
function setRouterContract(obj, contract) {
|
142
|
-
return new Proxy(obj, {
|
143
|
-
get(target, key) {
|
144
|
-
if (key === ROUTER_CONTRACT_SYMBOL) {
|
145
|
-
return contract;
|
146
|
-
}
|
147
|
-
return Reflect.get(target, key);
|
148
|
-
}
|
149
|
-
});
|
150
|
-
}
|
151
|
-
function getRouterContract(obj) {
|
152
|
-
return obj[ROUTER_CONTRACT_SYMBOL];
|
153
|
-
}
|
154
|
-
var LAZY_ROUTER_PREFIX_SYMBOL = Symbol("ORPC_LAZY_ROUTER_PREFIX");
|
155
|
-
function deepSetLazyRouterPrefix(router, prefix) {
|
156
|
-
return new Proxy(router, {
|
157
|
-
get(target, key) {
|
158
|
-
if (key !== LAZY_ROUTER_PREFIX_SYMBOL) {
|
159
|
-
const val = Reflect.get(target, key);
|
160
|
-
if (val && (typeof val === "object" || typeof val === "function")) {
|
161
|
-
return deepSetLazyRouterPrefix(val, prefix);
|
162
|
-
}
|
163
|
-
return val;
|
164
|
-
}
|
165
|
-
return prefix;
|
166
|
-
}
|
167
|
-
});
|
168
|
-
}
|
169
|
-
function getLazyRouterPrefix(obj) {
|
170
|
-
return obj[LAZY_ROUTER_PREFIX_SYMBOL];
|
171
|
-
}
|
172
|
-
|
173
|
-
// src/lazy-decorated.ts
|
174
|
-
function decorateLazy(lazied) {
|
175
|
-
const flattenLazy = flatLazy(lazied);
|
176
|
-
const recursive = new Proxy(flattenLazy, {
|
177
|
-
get(target, key) {
|
178
|
-
if (typeof key !== "string") {
|
179
|
-
return Reflect.get(target, key);
|
180
|
-
}
|
181
|
-
const next = getRouterChild(flattenLazy, key);
|
182
|
-
return decorateLazy(next);
|
183
|
-
}
|
184
|
-
});
|
185
|
-
return recursive;
|
186
|
-
}
|
187
|
-
|
188
|
-
// src/router-builder.ts
|
189
|
-
var RouterBuilder = class _RouterBuilder {
|
190
|
-
"~type" = "RouterBuilder";
|
191
|
-
"~orpc";
|
192
|
-
constructor(def) {
|
193
|
-
this["~orpc"] = def;
|
194
|
-
if (def.prefix && def.prefix.includes("{")) {
|
195
|
-
throw new Error(`
|
196
|
-
Dynamic routing in prefix not supported yet.
|
197
|
-
Please remove "{" from "${def.prefix}".
|
198
|
-
`);
|
199
|
-
}
|
200
|
-
}
|
201
|
-
prefix(prefix) {
|
202
|
-
return new _RouterBuilder({
|
203
|
-
...this["~orpc"],
|
204
|
-
prefix: `${this["~orpc"].prefix ?? ""}${prefix}`
|
205
|
-
});
|
206
|
-
}
|
207
|
-
tag(...tags) {
|
208
|
-
return new _RouterBuilder({
|
209
|
-
...this["~orpc"],
|
210
|
-
tags: [...this["~orpc"].tags ?? [], ...tags]
|
211
|
-
});
|
212
|
-
}
|
213
|
-
use(middleware) {
|
214
|
-
return new _RouterBuilder({
|
215
|
-
...this["~orpc"],
|
216
|
-
middlewares: [...this["~orpc"].middlewares, middleware]
|
217
|
-
});
|
218
|
-
}
|
219
|
-
router(router) {
|
220
|
-
const adapted = adapt(router, this["~orpc"]);
|
221
|
-
return adapted;
|
222
|
-
}
|
223
|
-
lazy(loader) {
|
224
|
-
const adapted = adapt(flatLazy(lazy(loader)), this["~orpc"]);
|
225
|
-
return adapted;
|
226
|
-
}
|
227
|
-
};
|
228
|
-
function adapt(item, options) {
|
229
|
-
if (isLazy(item)) {
|
230
|
-
const adaptedLazy = decorateLazy(lazy(async () => {
|
231
|
-
const routerOrProcedure = (await unlazy(item)).default;
|
232
|
-
const adapted2 = adapt(routerOrProcedure, options);
|
233
|
-
return { default: adapted2 };
|
234
|
-
}));
|
235
|
-
const lazyPrefix = getLazyRouterPrefix(item);
|
236
|
-
if (options.prefix || lazyPrefix) {
|
237
|
-
const prefixed = deepSetLazyRouterPrefix(adaptedLazy, `${options.prefix ?? ""}${lazyPrefix ?? ""}`);
|
238
|
-
return prefixed;
|
239
|
-
}
|
240
|
-
return adaptedLazy;
|
241
|
-
}
|
242
|
-
if (isProcedure(item)) {
|
243
|
-
let decorated = DecoratedProcedure.decorate(item);
|
244
|
-
if (options.tags?.length) {
|
245
|
-
decorated = decorated.unshiftTag(...options.tags);
|
246
|
-
}
|
247
|
-
if (options.prefix) {
|
248
|
-
decorated = decorated.prefix(options.prefix);
|
249
|
-
}
|
250
|
-
if (options.middlewares?.length) {
|
251
|
-
decorated = decorated.unshiftMiddleware(...options.middlewares);
|
252
|
-
}
|
253
|
-
return decorated;
|
254
|
-
}
|
255
|
-
const adapted = {};
|
256
|
-
for (const key in item) {
|
257
|
-
adapted[key] = adapt(item[key], options);
|
258
|
-
}
|
259
|
-
return adapted;
|
260
|
-
}
|
261
|
-
|
262
|
-
// src/router-implementer.ts
|
263
|
-
var RouterImplementer = class _RouterImplementer {
|
264
|
-
"~type" = "RouterImplementer";
|
265
|
-
"~orpc";
|
266
|
-
constructor(def) {
|
267
|
-
this["~orpc"] = def;
|
268
|
-
}
|
269
|
-
use(middleware) {
|
270
|
-
return new _RouterImplementer({
|
271
|
-
...this["~orpc"],
|
272
|
-
middlewares: [...this["~orpc"].middlewares ?? [], middleware]
|
273
|
-
});
|
274
|
-
}
|
275
|
-
router(router) {
|
276
|
-
const adapted = new RouterBuilder(this["~orpc"]).router(router);
|
277
|
-
const contracted = setRouterContract(adapted, this["~orpc"].contract);
|
278
|
-
return contracted;
|
279
|
-
}
|
280
|
-
lazy(loader) {
|
281
|
-
const adapted = new RouterBuilder(this["~orpc"]).lazy(loader);
|
282
|
-
const contracted = setRouterContract(adapted, this["~orpc"].contract);
|
283
|
-
return contracted;
|
284
|
-
}
|
285
|
-
};
|
286
|
-
|
287
|
-
// src/implementer-chainable.ts
|
288
|
-
function createChainableImplementer(contract, middlewares = []) {
|
289
|
-
if (isContractProcedure(contract)) {
|
290
|
-
const implementer = new ProcedureImplementer({
|
291
|
-
contract,
|
292
|
-
preMiddlewares: middlewares,
|
293
|
-
postMiddlewares: []
|
294
|
-
});
|
295
|
-
return implementer;
|
296
|
-
}
|
297
|
-
const chainable = {};
|
298
|
-
for (const key in contract) {
|
299
|
-
chainable[key] = createChainableImplementer(contract[key], middlewares);
|
300
|
-
}
|
301
|
-
const routerImplementer = new RouterImplementer({ contract, middlewares });
|
302
|
-
const merged = new Proxy(chainable, {
|
303
|
-
get(target, key) {
|
304
|
-
const next = Reflect.get(target, key);
|
305
|
-
const method = Reflect.get(routerImplementer, key);
|
306
|
-
if (typeof key !== "string" || typeof method !== "function") {
|
307
|
-
return next;
|
308
|
-
}
|
309
|
-
if (!next) {
|
310
|
-
return method.bind(routerImplementer);
|
311
|
-
}
|
312
|
-
return createCallableObject2(next, method.bind(routerImplementer));
|
313
|
-
}
|
314
|
-
});
|
315
|
-
return merged;
|
316
|
-
}
|
317
|
-
|
318
|
-
// src/procedure-builder.ts
|
319
|
-
import {
|
320
|
-
DecoratedContractProcedure as DecoratedContractProcedure2
|
321
|
-
} from "@orpc/contract";
|
322
|
-
var ProcedureBuilder = class _ProcedureBuilder {
|
323
|
-
"~type" = "ProcedureBuilder";
|
324
|
-
"~orpc";
|
325
|
-
constructor(def) {
|
326
|
-
this["~orpc"] = def;
|
327
|
-
}
|
328
|
-
route(route) {
|
329
|
-
return new _ProcedureBuilder({
|
330
|
-
...this["~orpc"],
|
331
|
-
contract: DecoratedContractProcedure2.decorate(this["~orpc"].contract).route(route)
|
332
|
-
});
|
333
|
-
}
|
334
|
-
input(schema, example) {
|
335
|
-
return new _ProcedureBuilder({
|
336
|
-
...this["~orpc"],
|
337
|
-
contract: DecoratedContractProcedure2.decorate(this["~orpc"].contract).input(schema, example)
|
338
|
-
});
|
339
|
-
}
|
340
|
-
output(schema, example) {
|
341
|
-
return new _ProcedureBuilder({
|
342
|
-
...this["~orpc"],
|
343
|
-
contract: DecoratedContractProcedure2.decorate(this["~orpc"].contract).output(schema, example)
|
344
|
-
});
|
345
|
-
}
|
346
|
-
errors(errors) {
|
347
|
-
return new _ProcedureBuilder({
|
348
|
-
...this["~orpc"],
|
349
|
-
contract: DecoratedContractProcedure2.decorate(this["~orpc"].contract).errors(errors)
|
350
|
-
});
|
351
|
-
}
|
352
|
-
use(middleware, mapInput) {
|
353
|
-
if (!mapInput) {
|
354
|
-
return new ProcedureImplementer({
|
355
|
-
contract: this["~orpc"].contract,
|
356
|
-
preMiddlewares: this["~orpc"].middlewares,
|
357
|
-
postMiddlewares: []
|
358
|
-
}).use(middleware);
|
359
|
-
}
|
360
|
-
return new ProcedureImplementer({
|
361
|
-
contract: this["~orpc"].contract,
|
362
|
-
preMiddlewares: this["~orpc"].middlewares,
|
363
|
-
postMiddlewares: []
|
364
|
-
}).use(middleware, mapInput);
|
365
|
-
}
|
366
|
-
handler(handler) {
|
367
|
-
return new DecoratedProcedure({
|
368
|
-
preMiddlewares: this["~orpc"].middlewares,
|
369
|
-
postMiddlewares: [],
|
370
|
-
contract: this["~orpc"].contract,
|
371
|
-
handler
|
372
|
-
});
|
373
|
-
}
|
374
|
-
};
|
375
|
-
|
376
|
-
// src/builder.ts
|
377
|
-
var Builder = class _Builder {
|
378
|
-
"~type" = "Builder";
|
379
|
-
"~orpc";
|
380
|
-
constructor(def) {
|
381
|
-
this["~orpc"] = def;
|
382
|
-
}
|
383
|
-
context() {
|
384
|
-
return new _Builder({
|
385
|
-
middlewares: []
|
386
|
-
});
|
387
|
-
}
|
388
|
-
use(middleware) {
|
389
|
-
return new _Builder({
|
390
|
-
...this["~orpc"],
|
391
|
-
middlewares: [...this["~orpc"].middlewares, middleware]
|
392
|
-
});
|
393
|
-
}
|
394
|
-
middleware(middleware) {
|
395
|
-
return decorateMiddleware(middleware);
|
396
|
-
}
|
397
|
-
route(route) {
|
398
|
-
return new ProcedureBuilder({
|
399
|
-
middlewares: this["~orpc"].middlewares,
|
400
|
-
contract: new ContractProcedure({
|
401
|
-
route,
|
402
|
-
InputSchema: void 0,
|
403
|
-
OutputSchema: void 0,
|
404
|
-
errorMap: void 0
|
405
|
-
})
|
406
|
-
});
|
407
|
-
}
|
408
|
-
input(schema, example) {
|
409
|
-
return new ProcedureBuilder({
|
410
|
-
middlewares: this["~orpc"].middlewares,
|
411
|
-
contract: new ContractProcedure({
|
412
|
-
OutputSchema: void 0,
|
413
|
-
InputSchema: schema,
|
414
|
-
inputExample: example,
|
415
|
-
errorMap: void 0
|
416
|
-
})
|
417
|
-
});
|
418
|
-
}
|
419
|
-
output(schema, example) {
|
420
|
-
return new ProcedureBuilder({
|
421
|
-
middlewares: this["~orpc"].middlewares,
|
422
|
-
contract: new ContractProcedure({
|
423
|
-
InputSchema: void 0,
|
424
|
-
OutputSchema: schema,
|
425
|
-
outputExample: example,
|
426
|
-
errorMap: void 0
|
427
|
-
})
|
428
|
-
});
|
429
|
-
}
|
430
|
-
errors(errors) {
|
431
|
-
return new ProcedureBuilder({
|
432
|
-
middlewares: this["~orpc"].middlewares,
|
433
|
-
contract: new ContractProcedure({
|
434
|
-
InputSchema: void 0,
|
435
|
-
OutputSchema: void 0,
|
436
|
-
errorMap: errors
|
437
|
-
})
|
438
|
-
});
|
439
|
-
}
|
440
|
-
handler(handler) {
|
441
|
-
return new DecoratedProcedure({
|
442
|
-
preMiddlewares: this["~orpc"].middlewares,
|
443
|
-
postMiddlewares: [],
|
444
|
-
contract: new ContractProcedure({
|
445
|
-
InputSchema: void 0,
|
446
|
-
OutputSchema: void 0,
|
447
|
-
errorMap: void 0
|
448
|
-
}),
|
449
|
-
handler
|
450
|
-
});
|
451
|
-
}
|
452
|
-
prefix(prefix) {
|
453
|
-
return new RouterBuilder({
|
454
|
-
middlewares: this["~orpc"].middlewares,
|
455
|
-
prefix
|
456
|
-
});
|
457
|
-
}
|
458
|
-
tag(...tags) {
|
459
|
-
return new RouterBuilder({
|
460
|
-
middlewares: this["~orpc"].middlewares,
|
461
|
-
tags
|
462
|
-
});
|
463
|
-
}
|
464
|
-
router(router) {
|
465
|
-
return new RouterBuilder(this["~orpc"]).router(router);
|
466
|
-
}
|
467
|
-
lazy(loader) {
|
468
|
-
return new RouterBuilder(this["~orpc"]).lazy(loader);
|
469
|
-
}
|
470
|
-
contract(contract) {
|
471
|
-
return createChainableImplementer(contract, this["~orpc"].middlewares);
|
472
|
-
}
|
473
|
-
};
|
474
|
-
|
475
|
-
// src/procedure-utils.ts
|
476
|
-
function call(procedure, input, ...rest) {
|
477
|
-
return createProcedureClient(procedure, ...rest)(input);
|
478
|
-
}
|
479
|
-
|
480
|
-
// src/lazy-utils.ts
|
481
|
-
function createLazyProcedureFormAnyLazy(lazied) {
|
482
|
-
const lazyProcedure = lazy(async () => {
|
483
|
-
const { default: maybeProcedure } = await unlazy(flatLazy(lazied));
|
484
|
-
if (!isProcedure(maybeProcedure)) {
|
485
|
-
throw new Error(`
|
486
|
-
Expected a lazy<procedure> but got lazy<unknown>.
|
487
|
-
This should be caught by TypeScript compilation.
|
488
|
-
Please report this issue if this makes you feel uncomfortable.
|
489
|
-
`);
|
490
|
-
}
|
491
|
-
return { default: maybeProcedure };
|
492
|
-
});
|
493
|
-
return lazyProcedure;
|
494
|
-
}
|
495
|
-
|
496
|
-
// src/router-client.ts
|
497
|
-
function createRouterClient(router, ...rest) {
|
498
|
-
if (isProcedure(router)) {
|
499
|
-
const caller = createProcedureClient(router, ...rest);
|
500
|
-
return caller;
|
501
|
-
}
|
502
|
-
const procedureCaller = isLazy(router) ? createProcedureClient(createLazyProcedureFormAnyLazy(router), ...rest) : {};
|
503
|
-
const recursive = new Proxy(procedureCaller, {
|
504
|
-
get(target, key) {
|
505
|
-
if (typeof key !== "string") {
|
506
|
-
return Reflect.get(target, key);
|
507
|
-
}
|
508
|
-
const next = getRouterChild(router, key);
|
509
|
-
if (!next) {
|
510
|
-
return Reflect.get(target, key);
|
511
|
-
}
|
512
|
-
const [options] = rest;
|
513
|
-
return createRouterClient(next, {
|
514
|
-
...options,
|
515
|
-
path: [...options?.path ?? [], key]
|
516
|
-
});
|
517
|
-
}
|
518
|
-
});
|
519
|
-
return recursive;
|
520
|
-
}
|
521
|
-
|
522
|
-
// src/index.ts
|
523
|
-
import { configGlobal, fallbackToGlobalConfig, isDefinedError, ORPCError, safe } from "@orpc/contract";
|
524
|
-
var os = new Builder({
|
525
|
-
middlewares: []
|
526
|
-
});
|
527
|
-
export {
|
528
|
-
Builder,
|
529
|
-
DecoratedProcedure,
|
530
|
-
LAZY_LOADER_SYMBOL,
|
531
|
-
ORPCError,
|
532
|
-
Procedure,
|
533
|
-
ProcedureBuilder,
|
534
|
-
ProcedureImplementer,
|
535
|
-
RouterBuilder,
|
536
|
-
RouterImplementer,
|
537
|
-
call,
|
538
|
-
configGlobal,
|
539
|
-
createChainableImplementer,
|
540
|
-
createORPCErrorConstructorMap,
|
541
|
-
createProcedureClient,
|
542
|
-
createRouterClient,
|
543
|
-
decorateLazy,
|
544
|
-
decorateMiddleware,
|
545
|
-
deepSetLazyRouterPrefix,
|
546
|
-
fallbackToGlobalConfig,
|
547
|
-
flatLazy,
|
548
|
-
getLazyRouterPrefix,
|
549
|
-
getRouterChild,
|
550
|
-
getRouterContract,
|
551
|
-
isDefinedError,
|
552
|
-
isLazy,
|
553
|
-
isProcedure,
|
554
|
-
lazy,
|
555
|
-
mergeContext,
|
556
|
-
middlewareOutputFn,
|
557
|
-
os,
|
558
|
-
safe,
|
559
|
-
setRouterContract,
|
560
|
-
unlazy
|
561
|
-
};
|
562
|
-
//# sourceMappingURL=index.js.map
|
package/dist/next.js
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
import "./chunk-WUOGVGWG.js";
|
2
|
-
import {
|
3
|
-
ORPCPayloadCodec,
|
4
|
-
ORPCProcedureMatcher,
|
5
|
-
RPCHandler,
|
6
|
-
super_json_exports
|
7
|
-
} from "./chunk-3EVCPLVI.js";
|
8
|
-
import "./chunk-OUPZ7QGV.js";
|
9
|
-
|
10
|
-
// src/adapters/next/serve.ts
|
11
|
-
import { value } from "@orpc/shared";
|
12
|
-
function serve(handler, ...[options]) {
|
13
|
-
const main = async (req) => {
|
14
|
-
const context = await value(options?.context, req);
|
15
|
-
const { matched, response } = await handler.handle(req, { ...options, context });
|
16
|
-
if (matched) {
|
17
|
-
return response;
|
18
|
-
}
|
19
|
-
return new Response(`Cannot find a matching procedure for ${req.url}`, { status: 404 });
|
20
|
-
};
|
21
|
-
return {
|
22
|
-
GET: main,
|
23
|
-
POST: main,
|
24
|
-
PUT: main,
|
25
|
-
PATCH: main,
|
26
|
-
DELETE: main
|
27
|
-
};
|
28
|
-
}
|
29
|
-
export {
|
30
|
-
ORPCPayloadCodec,
|
31
|
-
ORPCProcedureMatcher,
|
32
|
-
RPCHandler,
|
33
|
-
super_json_exports as SuperJSON,
|
34
|
-
serve
|
35
|
-
};
|
36
|
-
//# sourceMappingURL=next.js.map
|
package/dist/node.js
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
RPCHandler
|
3
|
-
} from "./chunk-3EVCPLVI.js";
|
4
|
-
import "./chunk-OUPZ7QGV.js";
|
5
|
-
|
6
|
-
// src/adapters/node/request-listener.ts
|
7
|
-
function createRequest(req, res) {
|
8
|
-
const controller = new AbortController();
|
9
|
-
res.on("close", () => {
|
10
|
-
controller.abort();
|
11
|
-
});
|
12
|
-
const method = req.method ?? "GET";
|
13
|
-
const headers = createHeaders(req);
|
14
|
-
const protocol = "encrypted" in req.socket && req.socket.encrypted ? "https:" : "http:";
|
15
|
-
const host = headers.get("Host") ?? "localhost";
|
16
|
-
const url = new URL(req.originalUrl ?? req.url ?? "/", `${protocol}//${host}`);
|
17
|
-
const init = { method, headers, signal: controller.signal };
|
18
|
-
if (method !== "GET" && method !== "HEAD") {
|
19
|
-
init.body = new ReadableStream({
|
20
|
-
start(controller2) {
|
21
|
-
req.on("data", (chunk) => {
|
22
|
-
controller2.enqueue(new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength));
|
23
|
-
});
|
24
|
-
req.on("end", () => {
|
25
|
-
controller2.close();
|
26
|
-
});
|
27
|
-
}
|
28
|
-
});
|
29
|
-
init.duplex = "half";
|
30
|
-
}
|
31
|
-
return new Request(url, init);
|
32
|
-
}
|
33
|
-
function createHeaders(req) {
|
34
|
-
const headers = new Headers();
|
35
|
-
const rawHeaders = req.rawHeaders;
|
36
|
-
for (let i = 0; i < rawHeaders.length; i += 2) {
|
37
|
-
headers.append(rawHeaders[i], rawHeaders[i + 1]);
|
38
|
-
}
|
39
|
-
return headers;
|
40
|
-
}
|
41
|
-
async function sendResponse(res, response) {
|
42
|
-
const headers = {};
|
43
|
-
for (const [key, value] of response.headers) {
|
44
|
-
if (key in headers) {
|
45
|
-
if (Array.isArray(headers[key])) {
|
46
|
-
headers[key].push(value);
|
47
|
-
} else {
|
48
|
-
headers[key] = [headers[key], value];
|
49
|
-
}
|
50
|
-
} else {
|
51
|
-
headers[key] = value;
|
52
|
-
}
|
53
|
-
}
|
54
|
-
res.writeHead(response.status, headers);
|
55
|
-
if (response.body != null && res.req.method !== "HEAD") {
|
56
|
-
for await (const chunk of response.body) {
|
57
|
-
res.write(chunk);
|
58
|
-
}
|
59
|
-
}
|
60
|
-
res.end();
|
61
|
-
}
|
62
|
-
|
63
|
-
// src/adapters/node/orpc-handler.ts
|
64
|
-
var RPCHandler2 = class {
|
65
|
-
orpcFetchHandler;
|
66
|
-
constructor(router, options) {
|
67
|
-
this.orpcFetchHandler = new RPCHandler(router, options);
|
68
|
-
}
|
69
|
-
async handle(req, res, ...[options]) {
|
70
|
-
const request = createRequest(req, res);
|
71
|
-
const castedOptions = options ?? {};
|
72
|
-
const result = await this.orpcFetchHandler.handle(request, castedOptions);
|
73
|
-
if (result.matched === false) {
|
74
|
-
return { matched: false };
|
75
|
-
}
|
76
|
-
await options?.beforeSend?.(result.response, castedOptions.context);
|
77
|
-
await sendResponse(res, result.response);
|
78
|
-
return { matched: true };
|
79
|
-
}
|
80
|
-
};
|
81
|
-
export {
|
82
|
-
RPCHandler2 as RPCHandler,
|
83
|
-
createHeaders,
|
84
|
-
createRequest,
|
85
|
-
sendResponse
|
86
|
-
};
|
87
|
-
//# sourceMappingURL=node.js.map
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import type { Hooks } from '@orpc/shared';
|
2
|
-
import type { Router } from '../../router';
|
3
|
-
import type { Context } from '../../types';
|
4
|
-
import type { FetchHandler, FetchHandleRest, FetchHandleResult } from './types';
|
5
|
-
import { type PublicORPCPayloadCodec } from './orpc-payload-codec';
|
6
|
-
import { type PublicORPCProcedureMatcher } from './orpc-procedure-matcher';
|
7
|
-
export type RPCHandlerOptions<T extends Context> = Hooks<Request, FetchHandleResult, T, {
|
8
|
-
signal?: AbortSignal;
|
9
|
-
}> & {
|
10
|
-
procedureMatcher?: PublicORPCProcedureMatcher;
|
11
|
-
payloadCodec?: PublicORPCPayloadCodec;
|
12
|
-
};
|
13
|
-
export declare class RPCHandler<T extends Context> implements FetchHandler<T> {
|
14
|
-
private readonly options?;
|
15
|
-
private readonly procedureMatcher;
|
16
|
-
private readonly payloadCodec;
|
17
|
-
constructor(router: Router<T, any>, options?: NoInfer<RPCHandlerOptions<T>> | undefined);
|
18
|
-
handle(request: Request, ...[options]: FetchHandleRest<T>): Promise<FetchHandleResult>;
|
19
|
-
}
|
20
|
-
//# sourceMappingURL=orpc-handler.d.ts.map
|