@tanstack/start-client-core 1.170.11 → 1.170.13
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/esm/client-rpc/frame-decoder.js +8 -0
- package/dist/esm/client-rpc/frame-decoder.js.map +1 -1
- package/dist/esm/createMiddleware.d.ts +7 -1
- package/dist/esm/createMiddleware.js +8 -3
- package/dist/esm/createMiddleware.js.map +1 -1
- package/dist/esm/createServerFn.d.ts +7 -1
- package/dist/esm/createServerFn.js +13 -8
- package/dist/esm/createServerFn.js.map +1 -1
- package/package.json +3 -3
- package/skills/start-core/auth-server-primitives/SKILL.md +5 -5
- package/skills/start-core/middleware/SKILL.md +5 -5
- package/skills/start-core/server-functions/SKILL.md +7 -7
- package/src/client-rpc/frame-decoder.ts +19 -0
- package/src/createMiddleware.ts +25 -7
- package/src/createServerFn.ts +40 -20
- package/src/tests/createServerFn.test-d.ts +39 -37
- package/src/tests/createServerMiddleware.test-d.ts +14 -10
|
@@ -10,17 +10,20 @@ test('createServeMiddleware removes middleware after middleware,', () => {
|
|
|
10
10
|
|
|
11
11
|
expectTypeOf(middleware).toHaveProperty('middleware')
|
|
12
12
|
expectTypeOf(middleware).toHaveProperty('server')
|
|
13
|
+
expectTypeOf(middleware).toHaveProperty('validator')
|
|
14
|
+
// TODO remove upon stable
|
|
13
15
|
expectTypeOf(middleware).toHaveProperty('inputValidator')
|
|
14
16
|
|
|
15
17
|
const middlewareAfterMiddleware = middleware.middleware([])
|
|
16
18
|
|
|
17
|
-
expectTypeOf(middlewareAfterMiddleware).toHaveProperty('
|
|
19
|
+
expectTypeOf(middlewareAfterMiddleware).toHaveProperty('validator')
|
|
18
20
|
expectTypeOf(middlewareAfterMiddleware).toHaveProperty('server')
|
|
19
21
|
expectTypeOf(middlewareAfterMiddleware).not.toHaveProperty('middleware')
|
|
20
22
|
|
|
21
|
-
const middlewareAfterInput = middleware.
|
|
23
|
+
const middlewareAfterInput = middleware.validator(() => {})
|
|
22
24
|
|
|
23
25
|
expectTypeOf(middlewareAfterInput).toHaveProperty('server')
|
|
26
|
+
expectTypeOf(middlewareAfterInput).not.toHaveProperty('validator')
|
|
24
27
|
expectTypeOf(middlewareAfterInput).not.toHaveProperty('middleware')
|
|
25
28
|
|
|
26
29
|
const middlewareAfterServer = middleware.server(async (options) => {
|
|
@@ -43,6 +46,7 @@ test('createServeMiddleware removes middleware after middleware,', () => {
|
|
|
43
46
|
|
|
44
47
|
expectTypeOf(middlewareAfterServer).not.toHaveProperty('server')
|
|
45
48
|
expectTypeOf(middlewareAfterServer).not.toHaveProperty('input')
|
|
49
|
+
expectTypeOf(middlewareAfterServer).not.toHaveProperty('validator')
|
|
46
50
|
expectTypeOf(middlewareAfterServer).not.toHaveProperty('middleware')
|
|
47
51
|
})
|
|
48
52
|
|
|
@@ -257,7 +261,7 @@ test('createMiddleware merges client context and sends to the server', () => {
|
|
|
257
261
|
|
|
258
262
|
test('createMiddleware merges input', () => {
|
|
259
263
|
const middleware1 = createMiddleware({ type: 'function' })
|
|
260
|
-
.
|
|
264
|
+
.validator(() => {
|
|
261
265
|
return {
|
|
262
266
|
a: 'a',
|
|
263
267
|
} as const
|
|
@@ -269,7 +273,7 @@ test('createMiddleware merges input', () => {
|
|
|
269
273
|
|
|
270
274
|
const middleware2 = createMiddleware({ type: 'function' })
|
|
271
275
|
.middleware([middleware1])
|
|
272
|
-
.
|
|
276
|
+
.validator(() => {
|
|
273
277
|
return {
|
|
274
278
|
b: 'b',
|
|
275
279
|
} as const
|
|
@@ -281,7 +285,7 @@ test('createMiddleware merges input', () => {
|
|
|
281
285
|
|
|
282
286
|
createMiddleware({ type: 'function' })
|
|
283
287
|
.middleware([middleware2])
|
|
284
|
-
.
|
|
288
|
+
.validator(() => ({ c: 'c' }) as const)
|
|
285
289
|
.server(({ next, data }) => {
|
|
286
290
|
expectTypeOf(data).toEqualTypeOf<{
|
|
287
291
|
readonly a: 'a'
|
|
@@ -595,7 +599,7 @@ test('createMiddleware sendContext cannot send a function', () => {
|
|
|
595
599
|
})
|
|
596
600
|
|
|
597
601
|
test('createMiddleware cannot validate function', () => {
|
|
598
|
-
const validator = createMiddleware({ type: 'function' }).
|
|
602
|
+
const validator = createMiddleware({ type: 'function' }).validator<
|
|
599
603
|
(input: { func: () => 'string' }) => { output: 'string' }
|
|
600
604
|
>
|
|
601
605
|
|
|
@@ -611,7 +615,7 @@ test('createMiddleware cannot validate function', () => {
|
|
|
611
615
|
})
|
|
612
616
|
|
|
613
617
|
test('createMiddleware can validate Date', () => {
|
|
614
|
-
const validator = createMiddleware({ type: 'function' }).
|
|
618
|
+
const validator = createMiddleware({ type: 'function' }).validator<
|
|
615
619
|
(input: Date) => { output: 'string' }
|
|
616
620
|
>
|
|
617
621
|
|
|
@@ -623,7 +627,7 @@ test('createMiddleware can validate Date', () => {
|
|
|
623
627
|
})
|
|
624
628
|
|
|
625
629
|
test('createMiddleware can validate FormData', () => {
|
|
626
|
-
const validator = createMiddleware({ type: 'function' }).
|
|
630
|
+
const validator = createMiddleware({ type: 'function' }).validator<
|
|
627
631
|
(input: FormData) => { output: 'string' }
|
|
628
632
|
>
|
|
629
633
|
|
|
@@ -639,7 +643,7 @@ test('createMiddleware can validate FormData', () => {
|
|
|
639
643
|
})
|
|
640
644
|
|
|
641
645
|
test('createMiddleware merging from parent with undefined validator', () => {
|
|
642
|
-
const middleware1 = createMiddleware({ type: 'function' }).
|
|
646
|
+
const middleware1 = createMiddleware({ type: 'function' }).validator(
|
|
643
647
|
(input: { test: string }) => input.test,
|
|
644
648
|
)
|
|
645
649
|
|
|
@@ -654,7 +658,7 @@ test('createMiddleware merging from parent with undefined validator', () => {
|
|
|
654
658
|
|
|
655
659
|
test('createMiddleware validator infers unknown for default input type', () => {
|
|
656
660
|
createMiddleware({ type: 'function' })
|
|
657
|
-
.
|
|
661
|
+
.validator((input) => {
|
|
658
662
|
expectTypeOf(input).toEqualTypeOf<unknown>()
|
|
659
663
|
|
|
660
664
|
if (typeof input === 'number') return 'success' as const
|