@@ -316,8 +316,6 @@ export class DbConnectionImpl<RemoteModule extends UntypedRemoteModule>
316316 #makeReducers( def : RemoteModule ) : ReducersView < RemoteModule > {
317317 const out : Record < string , unknown > = { } ;
318318
319- const writer = new BinaryWriter ( 1024 ) ;
320-
321319 for ( const reducer of def . reducers ) {
322320 const reducerName = reducer . name ;
323321 const key = reducer . accessorName ;
@@ -326,6 +324,7 @@ export class DbConnectionImpl<RemoteModule extends UntypedRemoteModule>
326324 this . #reducerArgsSerializers[ reducerName ] ;
327325
328326 ( out as any ) [ key ] = ( params : InferTypeOfRow < typeof reducer . params > ) => {
327+ const writer = this . #reducerArgsEncoder;
329328 writer . clear ( ) ;
330329 serializeArgs ( writer , params ) ;
331330 const argsBuffer = writer . getBuffer ( ) ;
@@ -555,6 +554,7 @@ export class DbConnectionImpl<RemoteModule extends UntypedRemoteModule>
555554 }
556555 }
557556
557+ #reducerArgsEncoder = new BinaryWriter ( 1024 ) ;
558558 #clientMessageEncoder = new BinaryWriter ( 1024 ) ;
559559 #sendMessage( message : ClientMessage ) : void {
560560 const writer = this . #clientMessageEncoder;
@@ -913,7 +913,8 @@ export class DbConnectionImpl<RemoteModule extends UntypedRemoteModule>
913913 _paramsType : ProductType ,
914914 params : object
915915 ) : Promise < void > {
916- const writer = new BinaryWriter ( 1024 ) ;
916+ const writer = this . #reducerArgsEncoder;
917+ writer . clear ( ) ;
917918 this . #reducerArgsSerializers[ reducerName ] . serialize ( writer , params ) ;
918919 const argsBuffer = writer . getBuffer ( ) ;
919920 return this . callReducer ( reducerName , argsBuffer , params ) ;
0 commit comments