@orpc/server 0.0.0-next.854b646 → 0.0.0-next.85df466
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/{hono.js → adapters/hono/index.mjs} +11 -21
- 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/{chunk-XFBAK67J.js → plugins/index.mjs} +17 -42
- 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-SV6DBVXJ.js → shared/server.V6zT5iYQ.mjs} +84 -82
- package/package.json +29 -31
- package/dist/chunk-3XSZ4GNO.js +0 -136
- package/dist/chunk-SD2T3J2Z.js +0 -319
- package/dist/fetch.js +0 -18
- package/dist/next.js +0 -39
- package/dist/node.js +0 -175
- package/dist/plugins.js +0 -11
- 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 -51
- 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/plugins/base.d.ts +0 -13
- package/dist/src/plugins/cors.d.ts +0 -19
- package/dist/src/plugins/index.d.ts +0 -4
- package/dist/src/plugins/response-headers.d.ts +0 -10
- package/dist/src/procedure-client.d.ts +0 -31
- 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 -11
- package/dist/src/router.d.ts +0 -29
- package/dist/src/utils.d.ts +0 -24
- package/dist/standard.js +0 -17
@@ -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,19 +56,71 @@ 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 { intercept, 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
125
|
try {
|
74
126
|
return await intercept(
|
@@ -80,7 +132,8 @@ function createProcedureClient(lazyableProcedure, ...[options]) {
|
|
80
132
|
errors,
|
81
133
|
path,
|
82
134
|
procedure,
|
83
|
-
signal: callerOptions?.signal
|
135
|
+
signal: callerOptions?.signal,
|
136
|
+
lastEventId: callerOptions?.lastEventId
|
84
137
|
},
|
85
138
|
(interceptorOptions) => executeProcedureInternal(interceptorOptions.procedure, interceptorOptions)
|
86
139
|
);
|
@@ -152,8 +205,7 @@ async function executeProcedureInternal(procedure, options) {
|
|
152
205
|
return (await next({})).output;
|
153
206
|
}
|
154
207
|
|
155
|
-
|
156
|
-
var ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_ROUTER_CONTRACT");
|
208
|
+
const ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_ROUTER_CONTRACT");
|
157
209
|
function setRouterContract(obj, contract) {
|
158
210
|
return new Proxy(obj, {
|
159
211
|
get(target, key) {
|
@@ -167,7 +219,7 @@ function setRouterContract(obj, contract) {
|
|
167
219
|
function getRouterContract(obj) {
|
168
220
|
return obj[ROUTER_CONTRACT_SYMBOL];
|
169
221
|
}
|
170
|
-
|
222
|
+
const LAZY_ROUTER_PREFIX_SYMBOL = Symbol("ORPC_LAZY_ROUTER_PREFIX");
|
171
223
|
function deepSetLazyRouterPrefix(router, prefix) {
|
172
224
|
return new Proxy(router, {
|
173
225
|
get(target, key) {
|
@@ -186,29 +238,20 @@ function getLazyRouterPrefix(obj) {
|
|
186
238
|
return obj[LAZY_ROUTER_PREFIX_SYMBOL];
|
187
239
|
}
|
188
240
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
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);
|
199
250
|
}
|
200
|
-
|
201
|
-
|
202
|
-
return [];
|
203
|
-
}
|
204
|
-
function mergeMiddlewares(first, second) {
|
205
|
-
return [...first, ...dedupeMiddlewares(first, second)];
|
206
|
-
}
|
207
|
-
function addMiddleware(middlewares, addition) {
|
208
|
-
return [...middlewares, addition];
|
251
|
+
});
|
252
|
+
return recursive;
|
209
253
|
}
|
210
254
|
|
211
|
-
// src/router.ts
|
212
255
|
function adaptRouter(router, options) {
|
213
256
|
if (isLazy(router)) {
|
214
257
|
const adapted2 = lazy(async () => {
|
@@ -272,23 +315,6 @@ function getRouterChild(router, ...path) {
|
|
272
315
|
return current;
|
273
316
|
}
|
274
317
|
|
275
|
-
// src/router-accessible-lazy.ts
|
276
|
-
function createAccessibleLazyRouter(lazied) {
|
277
|
-
const flattenLazy = flatLazy(lazied);
|
278
|
-
const recursive = new Proxy(flattenLazy, {
|
279
|
-
get(target, key) {
|
280
|
-
if (typeof key !== "string") {
|
281
|
-
return Reflect.get(target, key);
|
282
|
-
}
|
283
|
-
const next = getRouterChild(flattenLazy, key);
|
284
|
-
return createAccessibleLazyRouter(next);
|
285
|
-
}
|
286
|
-
});
|
287
|
-
return recursive;
|
288
|
-
}
|
289
|
-
|
290
|
-
// src/utils.ts
|
291
|
-
import { isContractProcedure as isContractProcedure2 } from "@orpc/contract";
|
292
318
|
function eachContractProcedure(options, callback, laziedOptions = []) {
|
293
319
|
const hiddenContract = getRouterContract(options.router);
|
294
320
|
if (hiddenContract) {
|
@@ -306,7 +332,7 @@ function eachContractProcedure(options, callback, laziedOptions = []) {
|
|
306
332
|
lazied: options.router,
|
307
333
|
path: options.path
|
308
334
|
});
|
309
|
-
} else if (
|
335
|
+
} else if (isContractProcedure(options.router)) {
|
310
336
|
callback({
|
311
337
|
contract: options.router,
|
312
338
|
path: options.path
|
@@ -329,10 +355,10 @@ async function eachAllContractProcedure(options, callback) {
|
|
329
355
|
const pending = [options];
|
330
356
|
for (const item of pending) {
|
331
357
|
const lazies = eachContractProcedure(item, callback);
|
332
|
-
for (const
|
333
|
-
const { default: router } = await unlazy(
|
358
|
+
for (const lazy of lazies) {
|
359
|
+
const { default: router } = await unlazy(lazy.lazied);
|
334
360
|
pending.push({
|
335
|
-
path:
|
361
|
+
path: lazy.path,
|
336
362
|
router
|
337
363
|
});
|
338
364
|
}
|
@@ -350,28 +376,4 @@ function createContractedProcedure(contract, procedure) {
|
|
350
376
|
});
|
351
377
|
}
|
352
378
|
|
353
|
-
export {
|
354
|
-
LAZY_LOADER_SYMBOL,
|
355
|
-
lazy,
|
356
|
-
isLazy,
|
357
|
-
unlazy,
|
358
|
-
Procedure,
|
359
|
-
isProcedure,
|
360
|
-
flatLazy,
|
361
|
-
createLazyProcedureFormAnyLazy,
|
362
|
-
addMiddleware,
|
363
|
-
middlewareOutputFn,
|
364
|
-
createProcedureClient,
|
365
|
-
setRouterContract,
|
366
|
-
getRouterContract,
|
367
|
-
deepSetLazyRouterPrefix,
|
368
|
-
getLazyRouterPrefix,
|
369
|
-
createAccessibleLazyRouter,
|
370
|
-
adaptRouter,
|
371
|
-
getRouterChild,
|
372
|
-
eachContractProcedure,
|
373
|
-
eachAllContractProcedure,
|
374
|
-
convertPathToHttpPath,
|
375
|
-
createContractedProcedure
|
376
|
-
};
|
377
|
-
//# sourceMappingURL=chunk-SV6DBVXJ.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.85df466",
|
5
5
|
"license": "MIT",
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
7
7
|
"repository": {
|
@@ -15,47 +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
21
|
},
|
22
22
|
"./plugins": {
|
23
|
-
"types": "./dist/
|
24
|
-
"import": "./dist/plugins.
|
25
|
-
"default": "./dist/plugins.
|
23
|
+
"types": "./dist/plugins/index.d.mts",
|
24
|
+
"import": "./dist/plugins/index.mjs",
|
25
|
+
"default": "./dist/plugins/index.mjs"
|
26
26
|
},
|
27
27
|
"./standard": {
|
28
|
-
"types": "./dist/
|
29
|
-
"import": "./dist/standard.
|
30
|
-
"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"
|
31
31
|
},
|
32
32
|
"./fetch": {
|
33
|
-
"types": "./dist/
|
34
|
-
"import": "./dist/fetch.
|
35
|
-
"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"
|
36
36
|
},
|
37
37
|
"./hono": {
|
38
|
-
"types": "./dist/
|
39
|
-
"import": "./dist/hono.
|
40
|
-
"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"
|
41
41
|
},
|
42
42
|
"./next": {
|
43
|
-
"types": "./dist/
|
44
|
-
"import": "./dist/next.
|
45
|
-
"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"
|
46
46
|
},
|
47
47
|
"./node": {
|
48
|
-
"types": "./dist/
|
49
|
-
"import": "./dist/node.
|
50
|
-
"default": "./dist/node.
|
51
|
-
},
|
52
|
-
"./🔒/*": {
|
53
|
-
"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"
|
54
51
|
}
|
55
52
|
},
|
56
53
|
"files": [
|
57
|
-
"!**/*.map",
|
58
|
-
"!**/*.tsbuildinfo",
|
59
54
|
"dist"
|
60
55
|
],
|
61
56
|
"peerDependencies": {
|
@@ -63,15 +58,18 @@
|
|
63
58
|
"next": ">=14.0.0"
|
64
59
|
},
|
65
60
|
"dependencies": {
|
66
|
-
"@
|
67
|
-
"@orpc/
|
68
|
-
"@orpc/shared": "0.0.0-next.
|
61
|
+
"@orpc/contract": "0.0.0-next.85df466",
|
62
|
+
"@orpc/client": "0.0.0-next.85df466",
|
63
|
+
"@orpc/shared": "0.0.0-next.85df466",
|
64
|
+
"@orpc/standard-server": "0.0.0-next.85df466",
|
65
|
+
"@orpc/standard-server-fetch": "0.0.0-next.85df466",
|
66
|
+
"@orpc/standard-server-node": "0.0.0-next.85df466"
|
69
67
|
},
|
70
68
|
"devDependencies": {
|
71
69
|
"light-my-request": "^6.5.1"
|
72
70
|
},
|
73
71
|
"scripts": {
|
74
|
-
"build": "
|
72
|
+
"build": "unbuild",
|
75
73
|
"build:watch": "pnpm run build --watch",
|
76
74
|
"type:check": "tsc -b"
|
77
75
|
}
|
package/dist/chunk-3XSZ4GNO.js
DELETED
@@ -1,136 +0,0 @@
|
|
1
|
-
import {
|
2
|
-
RPCCodec,
|
3
|
-
RPCMatcher,
|
4
|
-
StandardHandler
|
5
|
-
} from "./chunk-SD2T3J2Z.js";
|
6
|
-
|
7
|
-
// src/adapters/fetch/utils.ts
|
8
|
-
import { once } from "@orpc/shared";
|
9
|
-
import { contentDisposition, parse as parseContentDisposition } from "@tinyhttp/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 contentDisposition2 = re.headers.get("content-disposition");
|
28
|
-
const fileName = contentDisposition2 ? parseContentDisposition(contentDisposition2).parameters.filename : void 0;
|
29
|
-
if (typeof fileName === "string") {
|
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", contentDisposition(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-3XSZ4GNO.js.map
|