@orpc/server 0.0.0-next.ad0709a → 0.0.0-next.b0f324e
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 +118 -0
- package/dist/adapters/fetch/index.d.mts +27 -0
- package/dist/adapters/fetch/index.d.ts +27 -0
- package/dist/adapters/fetch/index.mjs +9 -0
- package/dist/adapters/hono/index.d.mts +20 -0
- package/dist/adapters/hono/index.d.ts +20 -0
- package/dist/adapters/hono/index.mjs +32 -0
- package/dist/adapters/next/index.d.mts +27 -0
- package/dist/adapters/next/index.d.ts +27 -0
- package/dist/adapters/next/index.mjs +29 -0
- package/dist/adapters/node/index.d.mts +35 -0
- package/dist/adapters/node/index.d.ts +35 -0
- package/dist/adapters/node/index.mjs +28 -0
- package/dist/adapters/standard/index.d.mts +29 -0
- package/dist/adapters/standard/index.d.ts +29 -0
- package/dist/adapters/standard/index.mjs +7 -0
- package/dist/index.d.mts +253 -0
- package/dist/index.d.ts +253 -0
- package/dist/{index.js → index.mjs} +41 -112
- package/dist/plugins/index.d.mts +31 -0
- package/dist/plugins/index.d.ts +31 -0
- package/dist/plugins/index.mjs +103 -0
- package/dist/shared/server.BBGuTxHE.mjs +163 -0
- package/dist/shared/server.BqEaivV1.d.ts +9 -0
- package/dist/shared/server.CHpDfeOK.d.mts +77 -0
- package/dist/shared/server.CI7U5gRZ.d.mts +152 -0
- package/dist/shared/server.CI7U5gRZ.d.ts +152 -0
- package/dist/shared/server.CUE4Aija.mjs +24 -0
- package/dist/shared/server.DSZ2XY8G.d.ts +77 -0
- package/dist/shared/server.MnOqRlBp.d.mts +9 -0
- package/dist/shared/server.Q6ZmnTgO.mjs +12 -0
- package/dist/{chunk-NOA3GBJQ.js → shared/server.V6zT5iYQ.mjs} +96 -97
- package/package.json +31 -28
- package/dist/chunk-6RSW63UJ.js +0 -136
- package/dist/chunk-JHLUGXCM.js +0 -294
- package/dist/fetch.js +0 -17
- package/dist/hono.js +0 -31
- package/dist/next.js +0 -38
- package/dist/node.js +0 -173
- package/dist/src/adapters/fetch/index.d.ts +0 -4
- package/dist/src/adapters/fetch/rpc-handler.d.ts +0 -10
- package/dist/src/adapters/fetch/types.d.ts +0 -13
- package/dist/src/adapters/fetch/utils.d.ts +0 -6
- package/dist/src/adapters/hono/index.d.ts +0 -3
- package/dist/src/adapters/hono/middleware.d.ts +0 -13
- package/dist/src/adapters/next/index.d.ts +0 -3
- package/dist/src/adapters/next/serve.d.ts +0 -20
- package/dist/src/adapters/node/index.d.ts +0 -4
- package/dist/src/adapters/node/rpc-handler.d.ts +0 -10
- package/dist/src/adapters/node/types.d.ts +0 -21
- package/dist/src/adapters/node/utils.d.ts +0 -5
- package/dist/src/adapters/standard/handler.d.ts +0 -33
- package/dist/src/adapters/standard/index.d.ts +0 -7
- package/dist/src/adapters/standard/rpc-codec.d.ts +0 -15
- package/dist/src/adapters/standard/rpc-handler.d.ts +0 -8
- package/dist/src/adapters/standard/rpc-matcher.d.ts +0 -10
- package/dist/src/adapters/standard/rpc-serializer.d.ts +0 -16
- package/dist/src/adapters/standard/types.d.ts +0 -44
- package/dist/src/builder-variants.d.ts +0 -74
- package/dist/src/builder.d.ts +0 -57
- package/dist/src/config.d.ts +0 -6
- package/dist/src/context.d.ts +0 -9
- package/dist/src/hidden.d.ts +0 -8
- package/dist/src/implementer-procedure.d.ts +0 -30
- package/dist/src/implementer-variants.d.ts +0 -17
- package/dist/src/implementer.d.ts +0 -28
- package/dist/src/index.d.ts +0 -23
- package/dist/src/lazy-utils.d.ts +0 -6
- package/dist/src/lazy.d.ts +0 -22
- package/dist/src/middleware-decorated.d.ts +0 -10
- package/dist/src/middleware-utils.d.ts +0 -5
- package/dist/src/middleware.d.ts +0 -37
- package/dist/src/procedure-client.d.ts +0 -20
- package/dist/src/procedure-decorated.d.ts +0 -21
- package/dist/src/procedure-utils.d.ts +0 -17
- package/dist/src/procedure.d.ts +0 -29
- package/dist/src/router-accessible-lazy.d.ts +0 -8
- package/dist/src/router-client.d.ts +0 -22
- package/dist/src/router.d.ts +0 -29
- package/dist/src/utils.d.ts +0 -24
- package/dist/standard.js +0 -16
@@ -1,5 +1,8 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
import { fallbackORPCErrorStatus, ORPCError } from '@orpc/client';
|
2
|
+
import { isContractProcedure, ValidationError, mergePrefix, mergeErrorMap, adaptRoute } from '@orpc/contract';
|
3
|
+
import { value, intercept, toError } from '@orpc/shared';
|
4
|
+
|
5
|
+
const LAZY_LOADER_SYMBOL = Symbol("ORPC_LAZY_LOADER");
|
3
6
|
function lazy(loader) {
|
4
7
|
return {
|
5
8
|
[LAZY_LOADER_SYMBOL]: loader
|
@@ -12,14 +15,12 @@ function unlazy(lazied) {
|
|
12
15
|
return isLazy(lazied) ? lazied[LAZY_LOADER_SYMBOL]() : Promise.resolve({ default: lazied });
|
13
16
|
}
|
14
17
|
|
15
|
-
|
16
|
-
import { isContractProcedure } from "@orpc/contract";
|
17
|
-
var Procedure = class {
|
18
|
+
class Procedure {
|
18
19
|
"~orpc";
|
19
20
|
constructor(def) {
|
20
21
|
this["~orpc"] = def;
|
21
22
|
}
|
22
|
-
}
|
23
|
+
}
|
23
24
|
function isProcedure(item) {
|
24
25
|
if (item instanceof Procedure) {
|
25
26
|
return true;
|
@@ -27,7 +28,6 @@ function isProcedure(item) {
|
|
27
28
|
return isContractProcedure(item) && "middlewares" in item["~orpc"] && "inputValidationIndex" in item["~orpc"] && "outputValidationIndex" in item["~orpc"] && "handler" in item["~orpc"];
|
28
29
|
}
|
29
30
|
|
30
|
-
// src/lazy-utils.ts
|
31
31
|
function flatLazy(lazied) {
|
32
32
|
const flattenLoader = async () => {
|
33
33
|
let current = await unlazy(lazied);
|
@@ -56,37 +56,87 @@ function createLazyProcedureFormAnyLazy(lazied) {
|
|
56
56
|
return lazyProcedure;
|
57
57
|
}
|
58
58
|
|
59
|
-
|
59
|
+
function dedupeMiddlewares(compare, middlewares) {
|
60
|
+
let min = 0;
|
61
|
+
for (let i = 0; i < middlewares.length; i++) {
|
62
|
+
const index = compare.indexOf(middlewares[i], min);
|
63
|
+
if (index === -1) {
|
64
|
+
return middlewares.slice(i);
|
65
|
+
}
|
66
|
+
min = index + 1;
|
67
|
+
}
|
68
|
+
return [];
|
69
|
+
}
|
70
|
+
function mergeMiddlewares(first, second) {
|
71
|
+
return [...first, ...dedupeMiddlewares(first, second)];
|
72
|
+
}
|
73
|
+
function addMiddleware(middlewares, addition) {
|
74
|
+
return [...middlewares, addition];
|
75
|
+
}
|
76
|
+
|
77
|
+
function createORPCErrorConstructorMap(errors) {
|
78
|
+
const proxy = new Proxy(errors, {
|
79
|
+
get(target, code) {
|
80
|
+
if (typeof code !== "string") {
|
81
|
+
return Reflect.get(target, code);
|
82
|
+
}
|
83
|
+
const item = (...[options]) => {
|
84
|
+
const config = errors[code];
|
85
|
+
return new ORPCError(code, {
|
86
|
+
defined: Boolean(config),
|
87
|
+
status: config?.status,
|
88
|
+
message: options?.message ?? config?.message,
|
89
|
+
data: options?.data,
|
90
|
+
cause: options?.cause
|
91
|
+
});
|
92
|
+
};
|
93
|
+
return item;
|
94
|
+
}
|
95
|
+
});
|
96
|
+
return proxy;
|
97
|
+
}
|
98
|
+
async function validateORPCError(map, error) {
|
99
|
+
const { code, status, message, data, cause, defined } = error;
|
100
|
+
const config = map?.[error.code];
|
101
|
+
if (!config || fallbackORPCErrorStatus(error.code, config.status) !== error.status) {
|
102
|
+
return defined ? new ORPCError(code, { defined: false, status, message, data, cause }) : error;
|
103
|
+
}
|
104
|
+
if (!config.data) {
|
105
|
+
return defined ? error : new ORPCError(code, { defined: true, status, message, data, cause });
|
106
|
+
}
|
107
|
+
const validated = await config.data["~standard"].validate(error.data);
|
108
|
+
if (validated.issues) {
|
109
|
+
return defined ? new ORPCError(code, { defined: false, status, message, data, cause }) : error;
|
110
|
+
}
|
111
|
+
return new ORPCError(code, { defined: true, status, message, data: validated.value, cause });
|
112
|
+
}
|
113
|
+
|
60
114
|
function middlewareOutputFn(output) {
|
61
115
|
return { output, context: {} };
|
62
116
|
}
|
63
117
|
|
64
|
-
// src/procedure-client.ts
|
65
|
-
import { createORPCErrorConstructorMap, ORPCError, validateORPCError, ValidationError } from "@orpc/contract";
|
66
|
-
import { executeWithHooks, toError, value } from "@orpc/shared";
|
67
118
|
function createProcedureClient(lazyableProcedure, ...[options]) {
|
68
119
|
return async (...[input, callerOptions]) => {
|
69
120
|
const path = options?.path ?? [];
|
70
121
|
const { default: procedure } = await unlazy(lazyableProcedure);
|
71
|
-
const
|
122
|
+
const clientContext = callerOptions?.context ?? {};
|
123
|
+
const context = await value(options?.context ?? {}, clientContext);
|
72
124
|
const errors = createORPCErrorConstructorMap(procedure["~orpc"].errorMap);
|
73
|
-
const executeOptions = {
|
74
|
-
input,
|
75
|
-
context,
|
76
|
-
errors,
|
77
|
-
path,
|
78
|
-
procedure,
|
79
|
-
signal: callerOptions?.signal
|
80
|
-
};
|
81
125
|
try {
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
126
|
+
return await intercept(
|
127
|
+
options?.interceptors ?? [],
|
128
|
+
{
|
129
|
+
context,
|
130
|
+
input,
|
131
|
+
// input only optional when it undefinable so we can safely cast it
|
132
|
+
errors,
|
133
|
+
path,
|
134
|
+
procedure,
|
135
|
+
signal: callerOptions?.signal,
|
136
|
+
lastEventId: callerOptions?.lastEventId
|
137
|
+
},
|
138
|
+
(interceptorOptions) => executeProcedureInternal(interceptorOptions.procedure, interceptorOptions)
|
139
|
+
);
|
90
140
|
} catch (e) {
|
91
141
|
if (!(e instanceof ORPCError)) {
|
92
142
|
throw toError(e);
|
@@ -155,8 +205,7 @@ async function executeProcedureInternal(procedure, options) {
|
|
155
205
|
return (await next({})).output;
|
156
206
|
}
|
157
207
|
|
158
|
-
|
159
|
-
var ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_ROUTER_CONTRACT");
|
208
|
+
const ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_ROUTER_CONTRACT");
|
160
209
|
function setRouterContract(obj, contract) {
|
161
210
|
return new Proxy(obj, {
|
162
211
|
get(target, key) {
|
@@ -170,7 +219,7 @@ function setRouterContract(obj, contract) {
|
|
170
219
|
function getRouterContract(obj) {
|
171
220
|
return obj[ROUTER_CONTRACT_SYMBOL];
|
172
221
|
}
|
173
|
-
|
222
|
+
const LAZY_ROUTER_PREFIX_SYMBOL = Symbol("ORPC_LAZY_ROUTER_PREFIX");
|
174
223
|
function deepSetLazyRouterPrefix(router, prefix) {
|
175
224
|
return new Proxy(router, {
|
176
225
|
get(target, key) {
|
@@ -189,29 +238,20 @@ function getLazyRouterPrefix(obj) {
|
|
189
238
|
return obj[LAZY_ROUTER_PREFIX_SYMBOL];
|
190
239
|
}
|
191
240
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
return middlewares.slice(i);
|
241
|
+
function createAccessibleLazyRouter(lazied) {
|
242
|
+
const flattenLazy = flatLazy(lazied);
|
243
|
+
const recursive = new Proxy(flattenLazy, {
|
244
|
+
get(target, key) {
|
245
|
+
if (typeof key !== "string") {
|
246
|
+
return Reflect.get(target, key);
|
247
|
+
}
|
248
|
+
const next = getRouterChild(flattenLazy, key);
|
249
|
+
return createAccessibleLazyRouter(next);
|
202
250
|
}
|
203
|
-
|
204
|
-
|
205
|
-
return [];
|
206
|
-
}
|
207
|
-
function mergeMiddlewares(first, second) {
|
208
|
-
return [...first, ...dedupeMiddlewares(first, second)];
|
209
|
-
}
|
210
|
-
function addMiddleware(middlewares, addition) {
|
211
|
-
return [...middlewares, addition];
|
251
|
+
});
|
252
|
+
return recursive;
|
212
253
|
}
|
213
254
|
|
214
|
-
// src/router.ts
|
215
255
|
function adaptRouter(router, options) {
|
216
256
|
if (isLazy(router)) {
|
217
257
|
const adapted2 = lazy(async () => {
|
@@ -275,23 +315,6 @@ function getRouterChild(router, ...path) {
|
|
275
315
|
return current;
|
276
316
|
}
|
277
317
|
|
278
|
-
// src/router-accessible-lazy.ts
|
279
|
-
function createAccessibleLazyRouter(lazied) {
|
280
|
-
const flattenLazy = flatLazy(lazied);
|
281
|
-
const recursive = new Proxy(flattenLazy, {
|
282
|
-
get(target, key) {
|
283
|
-
if (typeof key !== "string") {
|
284
|
-
return Reflect.get(target, key);
|
285
|
-
}
|
286
|
-
const next = getRouterChild(flattenLazy, key);
|
287
|
-
return createAccessibleLazyRouter(next);
|
288
|
-
}
|
289
|
-
});
|
290
|
-
return recursive;
|
291
|
-
}
|
292
|
-
|
293
|
-
// src/utils.ts
|
294
|
-
import { isContractProcedure as isContractProcedure2 } from "@orpc/contract";
|
295
318
|
function eachContractProcedure(options, callback, laziedOptions = []) {
|
296
319
|
const hiddenContract = getRouterContract(options.router);
|
297
320
|
if (hiddenContract) {
|
@@ -309,7 +332,7 @@ function eachContractProcedure(options, callback, laziedOptions = []) {
|
|
309
332
|
lazied: options.router,
|
310
333
|
path: options.path
|
311
334
|
});
|
312
|
-
} else if (
|
335
|
+
} else if (isContractProcedure(options.router)) {
|
313
336
|
callback({
|
314
337
|
contract: options.router,
|
315
338
|
path: options.path
|
@@ -332,10 +355,10 @@ async function eachAllContractProcedure(options, callback) {
|
|
332
355
|
const pending = [options];
|
333
356
|
for (const item of pending) {
|
334
357
|
const lazies = eachContractProcedure(item, callback);
|
335
|
-
for (const
|
336
|
-
const { default: router } = await unlazy(
|
358
|
+
for (const lazy of lazies) {
|
359
|
+
const { default: router } = await unlazy(lazy.lazied);
|
337
360
|
pending.push({
|
338
|
-
path:
|
361
|
+
path: lazy.path,
|
339
362
|
router
|
340
363
|
});
|
341
364
|
}
|
@@ -353,28 +376,4 @@ function createContractedProcedure(contract, procedure) {
|
|
353
376
|
});
|
354
377
|
}
|
355
378
|
|
356
|
-
export {
|
357
|
-
LAZY_LOADER_SYMBOL,
|
358
|
-
lazy,
|
359
|
-
isLazy,
|
360
|
-
unlazy,
|
361
|
-
Procedure,
|
362
|
-
isProcedure,
|
363
|
-
flatLazy,
|
364
|
-
createLazyProcedureFormAnyLazy,
|
365
|
-
addMiddleware,
|
366
|
-
middlewareOutputFn,
|
367
|
-
createProcedureClient,
|
368
|
-
setRouterContract,
|
369
|
-
getRouterContract,
|
370
|
-
deepSetLazyRouterPrefix,
|
371
|
-
getLazyRouterPrefix,
|
372
|
-
createAccessibleLazyRouter,
|
373
|
-
adaptRouter,
|
374
|
-
getRouterChild,
|
375
|
-
eachContractProcedure,
|
376
|
-
eachAllContractProcedure,
|
377
|
-
convertPathToHttpPath,
|
378
|
-
createContractedProcedure
|
379
|
-
};
|
380
|
-
//# sourceMappingURL=chunk-NOA3GBJQ.js.map
|
379
|
+
export { LAZY_LOADER_SYMBOL as L, Procedure as P, convertPathToHttpPath as a, createContractedProcedure as b, createProcedureClient as c, addMiddleware as d, eachContractProcedure as e, adaptRouter as f, getRouterChild as g, flatLazy as h, isProcedure as i, isLazy as j, createLazyProcedureFormAnyLazy as k, lazy as l, getRouterContract as m, deepSetLazyRouterPrefix as n, getLazyRouterPrefix as o, middlewareOutputFn as p, createAccessibleLazyRouter as q, eachAllContractProcedure as r, setRouterContract as s, unlazy as u };
|
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.
|
4
|
+
"version": "0.0.0-next.b0f324e",
|
5
5
|
"license": "MIT",
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
7
7
|
"repository": {
|
@@ -15,42 +15,42 @@
|
|
15
15
|
],
|
16
16
|
"exports": {
|
17
17
|
".": {
|
18
|
-
"types": "./dist/
|
19
|
-
"import": "./dist/index.
|
20
|
-
"default": "./dist/index.
|
18
|
+
"types": "./dist/index.d.mts",
|
19
|
+
"import": "./dist/index.mjs",
|
20
|
+
"default": "./dist/index.mjs"
|
21
|
+
},
|
22
|
+
"./plugins": {
|
23
|
+
"types": "./dist/plugins/index.d.mts",
|
24
|
+
"import": "./dist/plugins/index.mjs",
|
25
|
+
"default": "./dist/plugins/index.mjs"
|
21
26
|
},
|
22
27
|
"./standard": {
|
23
|
-
"types": "./dist/
|
24
|
-
"import": "./dist/standard.
|
25
|
-
"default": "./dist/standard.
|
28
|
+
"types": "./dist/adapters/standard/index.d.mts",
|
29
|
+
"import": "./dist/adapters/standard/index.mjs",
|
30
|
+
"default": "./dist/adapters/standard/index.mjs"
|
26
31
|
},
|
27
32
|
"./fetch": {
|
28
|
-
"types": "./dist/
|
29
|
-
"import": "./dist/fetch.
|
30
|
-
"default": "./dist/fetch.
|
33
|
+
"types": "./dist/adapters/fetch/index.d.mts",
|
34
|
+
"import": "./dist/adapters/fetch/index.mjs",
|
35
|
+
"default": "./dist/adapters/fetch/index.mjs"
|
31
36
|
},
|
32
37
|
"./hono": {
|
33
|
-
"types": "./dist/
|
34
|
-
"import": "./dist/hono.
|
35
|
-
"default": "./dist/hono.
|
38
|
+
"types": "./dist/adapters/hono/index.d.mts",
|
39
|
+
"import": "./dist/adapters/hono/index.mjs",
|
40
|
+
"default": "./dist/adapters/hono/index.mjs"
|
36
41
|
},
|
37
42
|
"./next": {
|
38
|
-
"types": "./dist/
|
39
|
-
"import": "./dist/next.
|
40
|
-
"default": "./dist/next.
|
43
|
+
"types": "./dist/adapters/next/index.d.mts",
|
44
|
+
"import": "./dist/adapters/next/index.mjs",
|
45
|
+
"default": "./dist/adapters/next/index.mjs"
|
41
46
|
},
|
42
47
|
"./node": {
|
43
|
-
"types": "./dist/
|
44
|
-
"import": "./dist/node.
|
45
|
-
"default": "./dist/node.
|
46
|
-
},
|
47
|
-
"./🔒/*": {
|
48
|
-
"types": "./dist/src/*.d.ts"
|
48
|
+
"types": "./dist/adapters/node/index.d.mts",
|
49
|
+
"import": "./dist/adapters/node/index.mjs",
|
50
|
+
"default": "./dist/adapters/node/index.mjs"
|
49
51
|
}
|
50
52
|
},
|
51
53
|
"files": [
|
52
|
-
"!**/*.map",
|
53
|
-
"!**/*.tsbuildinfo",
|
54
54
|
"dist"
|
55
55
|
],
|
56
56
|
"peerDependencies": {
|
@@ -58,15 +58,18 @@
|
|
58
58
|
"next": ">=14.0.0"
|
59
59
|
},
|
60
60
|
"dependencies": {
|
61
|
-
"
|
62
|
-
"@orpc/
|
63
|
-
"@orpc/
|
61
|
+
"@orpc/shared": "0.0.0-next.b0f324e",
|
62
|
+
"@orpc/client": "0.0.0-next.b0f324e",
|
63
|
+
"@orpc/standard-server": "0.0.0-next.b0f324e",
|
64
|
+
"@orpc/contract": "0.0.0-next.b0f324e",
|
65
|
+
"@orpc/standard-server-fetch": "0.0.0-next.b0f324e",
|
66
|
+
"@orpc/standard-server-node": "0.0.0-next.b0f324e"
|
64
67
|
},
|
65
68
|
"devDependencies": {
|
66
69
|
"light-my-request": "^6.5.1"
|
67
70
|
},
|
68
71
|
"scripts": {
|
69
|
-
"build": "
|
72
|
+
"build": "unbuild",
|
70
73
|
"build:watch": "pnpm run build --watch",
|
71
74
|
"type:check": "tsc -b"
|
72
75
|
}
|
package/dist/chunk-6RSW63UJ.js
DELETED
@@ -1,136 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
RPCCodec,
|
3
|
-
RPCMatcher,
|
4
|
-
StandardHandler
|
5
|
-
} from "./chunk-JHLUGXCM.js";
|
6
|
-
|
7
|
-
// src/adapters/fetch/utils.ts
|
8
|
-
import { once } from "@orpc/shared";
|
9
|
-
import cd from "content-disposition";
|
10
|
-
function fetchHeadersToStandardHeaders(headers) {
|
11
|
-
const standardHeaders = {};
|
12
|
-
for (const [key, value] of headers) {
|
13
|
-
if (Array.isArray(standardHeaders[key])) {
|
14
|
-
standardHeaders[key].push(value);
|
15
|
-
} else if (standardHeaders[key] !== void 0) {
|
16
|
-
standardHeaders[key] = [standardHeaders[key], value];
|
17
|
-
} else {
|
18
|
-
standardHeaders[key] = value;
|
19
|
-
}
|
20
|
-
}
|
21
|
-
return standardHeaders;
|
22
|
-
}
|
23
|
-
async function fetchReToStandardBody(re) {
|
24
|
-
if (!re.body) {
|
25
|
-
return void 0;
|
26
|
-
}
|
27
|
-
const contentDisposition = re.headers.get("content-disposition");
|
28
|
-
const fileName = contentDisposition ? cd.parse(contentDisposition).parameters.filename : void 0;
|
29
|
-
if (fileName) {
|
30
|
-
const blob2 = await re.blob();
|
31
|
-
return new File([blob2], fileName, {
|
32
|
-
type: blob2.type
|
33
|
-
});
|
34
|
-
}
|
35
|
-
const contentType = re.headers.get("content-type");
|
36
|
-
if (!contentType || contentType.startsWith("application/json")) {
|
37
|
-
const text = await re.text();
|
38
|
-
if (!text) {
|
39
|
-
return void 0;
|
40
|
-
}
|
41
|
-
return JSON.parse(text);
|
42
|
-
}
|
43
|
-
if (contentType.startsWith("multipart/form-data")) {
|
44
|
-
return await re.formData();
|
45
|
-
}
|
46
|
-
if (contentType.startsWith("application/x-www-form-urlencoded")) {
|
47
|
-
return new URLSearchParams(await re.text());
|
48
|
-
}
|
49
|
-
if (contentType.startsWith("text/")) {
|
50
|
-
return await re.text();
|
51
|
-
}
|
52
|
-
const blob = await re.blob();
|
53
|
-
return new File([blob], "blob", {
|
54
|
-
type: blob.type
|
55
|
-
});
|
56
|
-
}
|
57
|
-
function fetchRequestToStandardRequest(request) {
|
58
|
-
const url = new URL(request.url);
|
59
|
-
return {
|
60
|
-
raw: { request },
|
61
|
-
url,
|
62
|
-
signal: request.signal,
|
63
|
-
method: request.method,
|
64
|
-
body: once(() => {
|
65
|
-
return fetchReToStandardBody(request);
|
66
|
-
}),
|
67
|
-
get headers() {
|
68
|
-
const headers = fetchHeadersToStandardHeaders(request.headers);
|
69
|
-
Object.defineProperty(this, "headers", { value: headers, writable: true });
|
70
|
-
return headers;
|
71
|
-
},
|
72
|
-
set headers(value) {
|
73
|
-
Object.defineProperty(this, "headers", { value, writable: true });
|
74
|
-
}
|
75
|
-
};
|
76
|
-
}
|
77
|
-
function standardResponseToFetchHeaders(response) {
|
78
|
-
const fetchHeaders = new Headers();
|
79
|
-
for (const [key, value] of Object.entries(response.headers)) {
|
80
|
-
if (Array.isArray(value)) {
|
81
|
-
for (const v of value) {
|
82
|
-
fetchHeaders.append(key, v);
|
83
|
-
}
|
84
|
-
} else if (value !== void 0) {
|
85
|
-
fetchHeaders.append(key, value);
|
86
|
-
}
|
87
|
-
}
|
88
|
-
if (response.body instanceof Blob && !fetchHeaders.has("content-disposition")) {
|
89
|
-
fetchHeaders.set("content-disposition", cd(response.body instanceof File ? response.body.name : "blob"));
|
90
|
-
} else if (!(response.body instanceof Blob) && !(response.body instanceof URLSearchParams) && !(response.body instanceof FormData) && response.body !== void 0 && !fetchHeaders.has("content-type")) {
|
91
|
-
fetchHeaders.set("content-type", "application/json");
|
92
|
-
}
|
93
|
-
return fetchHeaders;
|
94
|
-
}
|
95
|
-
function standardBodyToFetchBody(body) {
|
96
|
-
if (body instanceof Blob || body instanceof FormData || body instanceof URLSearchParams) {
|
97
|
-
return body;
|
98
|
-
}
|
99
|
-
return JSON.stringify(body);
|
100
|
-
}
|
101
|
-
function standardResponseToFetchResponse(response) {
|
102
|
-
return new Response(standardBodyToFetchBody(response.body), {
|
103
|
-
headers: standardResponseToFetchHeaders(response),
|
104
|
-
status: response.status
|
105
|
-
});
|
106
|
-
}
|
107
|
-
|
108
|
-
// src/adapters/fetch/rpc-handler.ts
|
109
|
-
var RPCHandler = class {
|
110
|
-
standardHandler;
|
111
|
-
constructor(router, options) {
|
112
|
-
const matcher = options?.matcher ?? new RPCMatcher();
|
113
|
-
const codec = options?.codec ?? new RPCCodec();
|
114
|
-
this.standardHandler = new StandardHandler(router, matcher, codec, options);
|
115
|
-
}
|
116
|
-
async handle(request, ...rest) {
|
117
|
-
const standardRequest = fetchRequestToStandardRequest(request);
|
118
|
-
const result = await this.standardHandler.handle(standardRequest, ...rest);
|
119
|
-
if (!result.matched) {
|
120
|
-
return result;
|
121
|
-
}
|
122
|
-
return {
|
123
|
-
matched: true,
|
124
|
-
response: standardResponseToFetchResponse(result.response)
|
125
|
-
};
|
126
|
-
}
|
127
|
-
};
|
128
|
-
|
129
|
-
export {
|
130
|
-
fetchReToStandardBody,
|
131
|
-
fetchRequestToStandardRequest,
|
132
|
-
standardBodyToFetchBody,
|
133
|
-
standardResponseToFetchResponse,
|
134
|
-
RPCHandler
|
135
|
-
};
|
136
|
-
//# sourceMappingURL=chunk-6RSW63UJ.js.map
|