@trpc/server 10.43.7 → 10.44.1
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/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +8 -1
- package/dist/adapters/fetch/index.mjs +8 -1
- package/dist/http/types.d.ts +1 -1
- package/dist/http/types.d.ts.map +1 -1
- package/dist/shared/internal/serialize.d.ts +2 -1
- package/dist/shared/internal/serialize.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/adapters/fetch/fetchRequestHandler.ts +12 -3
- package/src/http/types.ts +1 -1
- package/src/shared/internal/serialize.ts +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fetch/fetchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,0BAA0B,CAAC,OAAO,SAAS,SAAS,IAC9D,mBAAmB,CAAC,OAAO,CAAC,GAAG;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"fetchRequestHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/fetch/fetchRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,0BAA0B,CAAC,OAAO,SAAS,SAAS,IAC9D,mBAAmB,CAAC,OAAO,CAAC,GAAG;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AASJ,wBAAsB,mBAAmB,CAAC,OAAO,SAAS,SAAS,EACjE,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC,GACxC,OAAO,CAAC,QAAQ,CAAC,CAuGnB"}
|
|
@@ -11,6 +11,11 @@ require('../../TRPCError-84cb03cf.js');
|
|
|
11
11
|
require('../../transformTRPCResponse-e65f34e9.js');
|
|
12
12
|
require('../../contentType-10776292.js');
|
|
13
13
|
|
|
14
|
+
const trimSlashes = (path)=>{
|
|
15
|
+
path = path.startsWith('/') ? path.slice(1) : path;
|
|
16
|
+
path = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
17
|
+
return path;
|
|
18
|
+
};
|
|
14
19
|
async function fetchRequestHandler(opts) {
|
|
15
20
|
const resHeaders = new Headers();
|
|
16
21
|
const createContext = async ()=>{
|
|
@@ -20,7 +25,9 @@ async function fetchRequestHandler(opts) {
|
|
|
20
25
|
});
|
|
21
26
|
};
|
|
22
27
|
const url = new URL(opts.req.url);
|
|
23
|
-
const
|
|
28
|
+
const pathname = trimSlashes(url.pathname);
|
|
29
|
+
const endpoint = trimSlashes(opts.endpoint);
|
|
30
|
+
const path = trimSlashes(pathname.slice(endpoint.length));
|
|
24
31
|
const req = {
|
|
25
32
|
query: url.searchParams,
|
|
26
33
|
method: opts.req.method,
|
|
@@ -7,6 +7,11 @@ import '../../TRPCError-689e79f1.mjs';
|
|
|
7
7
|
import '../../transformTRPCResponse-1153b421.mjs';
|
|
8
8
|
import '../../contentType-778b33c3.mjs';
|
|
9
9
|
|
|
10
|
+
const trimSlashes = (path)=>{
|
|
11
|
+
path = path.startsWith('/') ? path.slice(1) : path;
|
|
12
|
+
path = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
13
|
+
return path;
|
|
14
|
+
};
|
|
10
15
|
async function fetchRequestHandler(opts) {
|
|
11
16
|
const resHeaders = new Headers();
|
|
12
17
|
const createContext = async ()=>{
|
|
@@ -16,7 +21,9 @@ async function fetchRequestHandler(opts) {
|
|
|
16
21
|
});
|
|
17
22
|
};
|
|
18
23
|
const url = new URL(opts.req.url);
|
|
19
|
-
const
|
|
24
|
+
const pathname = trimSlashes(url.pathname);
|
|
25
|
+
const endpoint = trimSlashes(opts.endpoint);
|
|
26
|
+
const path = trimSlashes(pathname.slice(endpoint.length));
|
|
20
27
|
const req = {
|
|
21
28
|
query: url.searchParams,
|
|
22
29
|
method: opts.req.method,
|
package/dist/http/types.d.ts
CHANGED
package/dist/http/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,CACzE,SAAQ,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC7C;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,CACzE,SAAQ,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC7C;;;;OAIG;IACH,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB"}
|
|
@@ -6,9 +6,10 @@ type JsonPrimitive = boolean | number | string | null;
|
|
|
6
6
|
type NonJsonPrimitive = Function | symbol | undefined;
|
|
7
7
|
type IsAny<T> = 0 extends T & 1 ? true : false;
|
|
8
8
|
type JsonReturnable = JsonPrimitive | undefined;
|
|
9
|
+
type IsRecord<T extends object> = keyof WithoutIndexSignature<T> extends never ? true : false;
|
|
9
10
|
export type Serialize<T> = IsAny<T> extends true ? any : unknown extends T ? unknown : T extends JsonReturnable ? T : T extends Map<any, any> | Set<any> ? object : T extends NonJsonPrimitive ? never : T extends {
|
|
10
11
|
toJSON(): infer U;
|
|
11
|
-
} ? U : T extends [] ? [] : T extends [unknown, ...unknown[]] ? SerializeTuple<T> : T extends readonly (infer U)[] ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] :
|
|
12
|
+
} ? U : T extends [] ? [] : T extends [unknown, ...unknown[]] ? SerializeTuple<T> : T extends readonly (infer U)[] ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] : T extends object ? IsRecord<T> extends true ? Record<keyof T, Serialize<T[keyof T]>> : Simplify<SerializeObject<UndefinedToOptional<T>>> : never;
|
|
12
13
|
/** JSON serialize [tuples](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types) */
|
|
13
14
|
type SerializeTuple<T extends [unknown, ...unknown[]]> = {
|
|
14
15
|
[k in keyof T]: T[k] extends NonJsonPrimitive ? null : Serialize<T[k]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/shared/internal/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE9D;;GAEG;AACH,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEtD,KAAK,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAKtD,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAK/C,KAAK,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/shared/internal/serialize.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/server",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.44.1",
|
|
4
4
|
"description": "The tRPC server library",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -176,5 +176,5 @@
|
|
|
176
176
|
"funding": [
|
|
177
177
|
"https://trpc.io/sponsor"
|
|
178
178
|
],
|
|
179
|
-
"gitHead": "
|
|
179
|
+
"gitHead": "cd6a8ad0851522ef81028ff7c235ad9c203498e3"
|
|
180
180
|
}
|
|
@@ -10,6 +10,13 @@ export type FetchHandlerRequestOptions<TRouter extends AnyRouter> =
|
|
|
10
10
|
endpoint: string;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
+
const trimSlashes = (path: string): string => {
|
|
14
|
+
path = path.startsWith('/') ? path.slice(1) : path;
|
|
15
|
+
path = path.endsWith('/') ? path.slice(0, -1) : path;
|
|
16
|
+
|
|
17
|
+
return path;
|
|
18
|
+
};
|
|
19
|
+
|
|
13
20
|
export async function fetchRequestHandler<TRouter extends AnyRouter>(
|
|
14
21
|
opts: FetchHandlerRequestOptions<TRouter>,
|
|
15
22
|
): Promise<Response> {
|
|
@@ -20,9 +27,11 @@ export async function fetchRequestHandler<TRouter extends AnyRouter>(
|
|
|
20
27
|
};
|
|
21
28
|
|
|
22
29
|
const url = new URL(opts.req.url);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
);
|
|
30
|
+
|
|
31
|
+
const pathname = trimSlashes(url.pathname);
|
|
32
|
+
const endpoint = trimSlashes(opts.endpoint);
|
|
33
|
+
const path = trimSlashes(pathname.slice(endpoint.length));
|
|
34
|
+
|
|
26
35
|
const req: HTTPRequest = {
|
|
27
36
|
query: url.searchParams,
|
|
28
37
|
method: opts.req.method,
|
package/src/http/types.ts
CHANGED
|
@@ -18,6 +18,10 @@ type IsAny<T> = 0 extends T & 1 ? true : false;
|
|
|
18
18
|
// support it as both a Primitive and a NonJsonPrimitive
|
|
19
19
|
type JsonReturnable = JsonPrimitive | undefined;
|
|
20
20
|
|
|
21
|
+
type IsRecord<T extends object> = keyof WithoutIndexSignature<T> extends never
|
|
22
|
+
? true
|
|
23
|
+
: false;
|
|
24
|
+
|
|
21
25
|
/* prettier-ignore */
|
|
22
26
|
export type Serialize<T> =
|
|
23
27
|
IsAny<T> extends true ? any :
|
|
@@ -29,8 +33,9 @@ export type Serialize<T> =
|
|
|
29
33
|
T extends [] ? [] :
|
|
30
34
|
T extends [unknown, ...unknown[]] ? SerializeTuple<T> :
|
|
31
35
|
T extends readonly (infer U)[] ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] :
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
T extends object ?
|
|
37
|
+
IsRecord<T> extends true ? Record<keyof T, Serialize<T[keyof T]>> :
|
|
38
|
+
Simplify<SerializeObject<UndefinedToOptional<T>>> :
|
|
34
39
|
never;
|
|
35
40
|
|
|
36
41
|
/** JSON serialize [tuples](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types) */
|