@@ -147,7 +147,7 @@ const warnOnImplicitBodyWithDynamicPath = (): void => {
147147 ) ;
148148} ;
149149
150- const nonJsonBodyTypeName = ( requestBody : unknown , seenObjects = new WeakSet ( ) ) : string | null => {
150+ const nonJsonBodyTypeName = ( requestBody : unknown ) : string | null => {
151151 if ( requestBody === undefined ) {
152152 return 'undefined' ;
153153 }
@@ -197,21 +197,6 @@ const nonJsonBodyTypeName = (requestBody: unknown, seenObjects = new WeakSet()):
197197 return 'Promise' ;
198198 }
199199
200- if ( seenObjects . has ( requestBody ) ) {
201- return null ;
202- }
203- seenObjects . add ( requestBody ) ;
204-
205- const nestedValues = Array . isArray ( requestBody )
206- ? requestBody
207- : Object . values ( requestBody as Record < string , unknown > ) ;
208- for ( const nestedValue of nestedValues ) {
209- const nestedTypeName = nonJsonBodyTypeName ( nestedValue , seenObjects ) ;
210- if ( nestedTypeName !== null ) {
211- return nestedTypeName ;
212- }
213- }
214-
215200 return null ;
216201} ;
217202
@@ -221,19 +206,6 @@ const jsonBodyTypeError = (bodyTypeName: string): TypeError =>
221206 'Return a plain JSON value, null, or undefined instead.' ,
222207 ) ;
223208
224- const assertJsonBodyValue = ( requestBody : unknown , hasJsonBody : boolean ) : void => {
225- if ( ! hasJsonBody ) {
226- return ;
227- }
228-
229- const bodyTypeName = nonJsonBodyTypeName ( requestBody ) ;
230- if ( bodyTypeName === null ) {
231- return ;
232- }
233-
234- throw jsonBodyTypeError ( bodyTypeName ) ;
235- } ;
236-
237209const stringifyJsonBody = ( requestBody : unknown ) : string => {
238210 try {
239211 const serializedBody = JSON . stringify ( requestBody , ( _key , value : unknown ) => {
@@ -386,7 +358,7 @@ export function createRailsAction<TVariables = undefined, TResponse = unknown>(
386358 const shouldWarnOnDiscardedDeleteBody =
387359 ! warnedOnDiscardedDeleteBody && requestBody !== undefined && requestBody !== null ;
388360 const shouldWarnOnImplicitDynamicPathBody = ! warnedOnImplicitDynamicPathBody && hasJsonBody ;
389- assertJsonBodyValue ( requestBody , hasJsonBody ) ;
361+ const serializedRequestBody = hasJsonBody ? stringifyJsonBody ( requestBody ) : undefined ;
390362 if ( shouldWarnOnDiscardedDeleteBody ) {
391363 warnOnDiscardedDeleteBody ( requestBody ) ;
392364 warnedOnDiscardedDeleteBody = true ;
@@ -409,7 +381,7 @@ export function createRailsAction<TVariables = undefined, TResponse = unknown>(
409381 resolveHeaders ( options . headers , typedVariables ) ,
410382 callOptionsValue ( callOptions , 'headers' ) ,
411383 ) ,
412- body : hasJsonBody ? stringifyJsonBody ( requestBody ) : undefined ,
384+ body : serializedRequestBody ,
413385 } ) ;
414386 } catch ( fetchError ) {
415387 warnOnPossibleRedirectFetchError ( fetchError ) ;
0 commit comments