@@ -4,6 +4,7 @@ import { configureStore } from '@reduxjs/toolkit'
44import type {
55 DefinitionsFromApi ,
66 FetchBaseQueryError ,
7+ FetchBaseQueryMeta ,
78 MutationDefinition ,
89 OverrideResultType ,
910 QueryDefinition ,
@@ -386,6 +387,10 @@ describe('type tests', () => {
386387 status : v . number ( ) ,
387388 data : v . unknown ( ) ,
388389 } ) satisfies v . GenericSchema < FetchBaseQueryError >
390+ const metaSchema = v . object ( {
391+ request : v . instance ( Request ) ,
392+ response : v . optional ( v . instance ( Response ) ) ,
393+ } ) satisfies v . GenericSchema < FetchBaseQueryMeta >
389394 createApi ( {
390395 baseQuery : fetchBaseQuery ( { baseUrl : 'https://example.com' } ) ,
391396 endpoints : ( build ) => ( {
@@ -394,6 +399,7 @@ describe('type tests', () => {
394399 argSchema : v . object ( { id : v . number ( ) } ) ,
395400 resultSchema : postSchema ,
396401 errorSchema,
402+ metaSchema,
397403 } ) ,
398404 bothMismatch : build . query < Post , { id : number } > ( {
399405 query : ( { id } ) => `/post/${ id } ` ,
@@ -403,6 +409,8 @@ describe('type tests', () => {
403409 resultSchema : v . object ( { id : v . string ( ) } ) ,
404410 // @ts -expect-error wrong schema
405411 errorSchema : v . object ( { status : v . string ( ) } ) ,
412+ // @ts -expect-error wrong schema
413+ metaSchema : v . object ( { request : v . string ( ) } ) ,
406414 } ) ,
407415 inputMismatch : build . query < Post , { id : number } > ( {
408416 query : ( { id } ) => `/post/${ id } ` ,
@@ -420,6 +428,14 @@ describe('type tests', () => {
420428 ...errorSchema . entries ,
421429 status : v . pipe ( v . string ( ) , v . transform ( Number ) ) ,
422430 } ) satisfies v . GenericSchema < any , FetchBaseQueryError > ,
431+ // @ts -expect-error can't expect different input
432+ metaSchema : v . object ( {
433+ ...metaSchema . entries ,
434+ request : v . pipe (
435+ v . string ( ) ,
436+ v . transform ( ( url ) => new Request ( url ) ) ,
437+ ) ,
438+ } ) satisfies v . GenericSchema < any , FetchBaseQueryMeta > ,
423439 } ) ,
424440 outputMismatch : build . query < Post , { id : number } > ( {
425441 query : ( { id } ) => `/post/${ id } ` ,
@@ -437,6 +453,14 @@ describe('type tests', () => {
437453 ...errorSchema . entries ,
438454 status : v . pipe ( v . number ( ) , v . transform ( String ) ) ,
439455 } ) satisfies v . GenericSchema < FetchBaseQueryError , any > ,
456+ // @ts -expect-error can't provide different output
457+ metaSchema : v . object ( {
458+ ...metaSchema . entries ,
459+ request : v . pipe (
460+ v . instance ( Request ) ,
461+ v . transform ( ( r ) => r . url ) ,
462+ ) ,
463+ } ) satisfies v . GenericSchema < FetchBaseQueryMeta , any > ,
440464 } ) ,
441465 } ) ,
442466 } )
0 commit comments