@@ -47,6 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
4747} ;
4848Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
4949var messages = require ( "../generated/api_pb" ) ;
50+ var client_1 = require ( "./client" ) ;
5051var errors_1 = require ( "./errors" ) ;
5152var types = require ( "./types" ) ;
5253var util_1 = require ( "./util" ) ;
@@ -109,9 +110,10 @@ var Txn = (function () {
109110 } ;
110111 Txn . prototype . doRequest = function ( req , metadata , options ) {
111112 return __awaiter ( this , void 0 , void 0 , function ( ) {
112- var mutationList , resp , c , _a , _b , e_1 , e_2 ;
113- return __generator ( this , function ( _c ) {
114- switch ( _c . label ) {
113+ var mutationList , resp , c , operation , _a , _b , e_1 , _c , _d , e_2 ;
114+ var _this = this ;
115+ return __generator ( this , function ( _e ) {
116+ switch ( _e . label ) {
115117 case 0 :
116118 mutationList = req . getMutationsList ( ) ;
117119 if ( this . finished ) {
@@ -129,28 +131,40 @@ var Txn = (function () {
129131 req . setStartTs ( this . ctx . getStartTs ( ) ) ;
130132 this . dc . debug ( "Do request:\n" + util_1 . stringifyMessage ( req ) ) ;
131133 c = this . dc . anyClient ( ) ;
132- _c . label = 1 ;
134+ operation = function ( ) { return __awaiter ( _this , void 0 , void 0 , function ( ) { return __generator ( this , function ( _a ) {
135+ return [ 2 , c . query ( req , metadata , options ) ] ;
136+ } ) ; } ) ; } ;
137+ _e . label = 1 ;
133138 case 1 :
134- _c . trys . push ( [ 1 , 3 , , 8 ] ) ;
139+ _e . trys . push ( [ 1 , 3 , , 11 ] ) ;
135140 _b = ( _a = types ) . createResponse ;
136- return [ 4 , c . query ( req , metadata , options ) ] ;
141+ return [ 4 , operation ( ) ] ;
137142 case 2 :
138- resp = _b . apply ( _a , [ _c . sent ( ) ] ) ;
139- return [ 3 , 8 ] ;
143+ resp = _b . apply ( _a , [ _e . sent ( ) ] ) ;
144+ return [ 3 , 11 ] ;
140145 case 3 :
141- e_1 = _c . sent ( ) ;
142- _c . label = 4 ;
146+ e_1 = _e . sent ( ) ;
147+ if ( ! ( client_1 . isJwtExpired ( e_1 ) === true ) ) return [ 3 , 6 ] ;
148+ return [ 4 , c . retryLogin ( metadata , options ) ] ;
143149 case 4 :
144- _c . trys . push ( [ 4 , 6 , , 7 ] ) ;
145- return [ 4 , this . discard ( metadata , options ) ] ;
150+ _e . sent ( ) ;
151+ _d = ( _c = types ) . createResponse ;
152+ return [ 4 , operation ( ) ] ;
146153 case 5 :
147- _c . sent ( ) ;
148- return [ 3 , 7 ] ;
154+ resp = _d . apply ( _c , [ _e . sent ( ) ] ) ;
155+ return [ 3 , 10 ] ;
149156 case 6 :
150- e_2 = _c . sent ( ) ;
151- return [ 3 , 7 ] ;
152- case 7 : throw ( util_1 . isAbortedError ( e_1 ) || util_1 . isConflictError ( e_1 ) ) ? errors_1 . ERR_ABORTED : e_1 ;
157+ _e . trys . push ( [ 6 , 8 , , 9 ] ) ;
158+ return [ 4 , this . discard ( metadata , options ) ] ;
159+ case 7 :
160+ _e . sent ( ) ;
161+ return [ 3 , 9 ] ;
153162 case 8 :
163+ e_2 = _e . sent ( ) ;
164+ return [ 3 , 9 ] ;
165+ case 9 : throw ( util_1 . isAbortedError ( e_1 ) || util_1 . isConflictError ( e_1 ) ) ? errors_1 . ERR_ABORTED : e_1 ;
166+ case 10 : return [ 3 , 11 ] ;
167+ case 11 :
154168 if ( req . getCommitNow ( ) ) {
155169 this . finished = true ;
156170 }
@@ -163,7 +177,8 @@ var Txn = (function () {
163177 } ;
164178 Txn . prototype . commit = function ( metadata , options ) {
165179 return __awaiter ( this , void 0 , void 0 , function ( ) {
166- var c , e_3 ;
180+ var c , operation , e_3 ;
181+ var _this = this ;
167182 return __generator ( this , function ( _a ) {
168183 switch ( _a . label ) {
169184 case 0 :
@@ -175,24 +190,37 @@ var Txn = (function () {
175190 return [ 2 ] ;
176191 }
177192 c = this . dc . anyClient ( ) ;
193+ operation = function ( ) { return __awaiter ( _this , void 0 , void 0 , function ( ) { return __generator ( this , function ( _a ) {
194+ return [ 2 , c . commitOrAbort ( this . ctx , metadata , options ) ] ;
195+ } ) ; } ) ; } ;
178196 _a . label = 1 ;
179197 case 1 :
180- _a . trys . push ( [ 1 , 3 , , 4 ] ) ;
181- return [ 4 , c . commitOrAbort ( this . ctx , metadata , options ) ] ;
198+ _a . trys . push ( [ 1 , 3 , , 8 ] ) ;
199+ return [ 4 , operation ( ) ] ;
182200 case 2 :
183201 _a . sent ( ) ;
184- return [ 3 , 4 ] ;
202+ return [ 3 , 8 ] ;
185203 case 3 :
186204 e_3 = _a . sent ( ) ;
187- throw util_1 . isAbortedError ( e_3 ) ? errors_1 . ERR_ABORTED : e_3 ;
188- case 4 : return [ 2 ] ;
205+ if ( ! ( client_1 . isJwtExpired ( e_3 ) === true ) ) return [ 3 , 6 ] ;
206+ return [ 4 , c . retryLogin ( metadata , options ) ] ;
207+ case 4 :
208+ _a . sent ( ) ;
209+ return [ 4 , operation ( ) ] ;
210+ case 5 :
211+ _a . sent ( ) ;
212+ return [ 3 , 7 ] ;
213+ case 6 : throw util_1 . isAbortedError ( e_3 ) ? errors_1 . ERR_ABORTED : e_3 ;
214+ case 7 : return [ 3 , 8 ] ;
215+ case 8 : return [ 2 ] ;
189216 }
190217 } ) ;
191218 } ) ;
192219 } ;
193220 Txn . prototype . discard = function ( metadata , options ) {
194221 return __awaiter ( this , void 0 , void 0 , function ( ) {
195- var c ;
222+ var c , operation , e_4 ;
223+ var _this = this ;
196224 return __generator ( this , function ( _a ) {
197225 switch ( _a . label ) {
198226 case 0 :
@@ -205,10 +233,28 @@ var Txn = (function () {
205233 }
206234 this . ctx . setAborted ( true ) ;
207235 c = this . dc . anyClient ( ) ;
208- return [ 4 , c . commitOrAbort ( this . ctx , metadata , options ) ] ;
236+ operation = function ( ) { return __awaiter ( _this , void 0 , void 0 , function ( ) { return __generator ( this , function ( _a ) {
237+ return [ 2 , c . commitOrAbort ( this . ctx , metadata , options ) ] ;
238+ } ) ; } ) ; } ;
239+ _a . label = 1 ;
209240 case 1 :
241+ _a . trys . push ( [ 1 , 3 , , 7 ] ) ;
242+ return [ 4 , operation ( ) ] ;
243+ case 2 :
244+ _a . sent ( ) ;
245+ return [ 3 , 7 ] ;
246+ case 3 :
247+ e_4 = _a . sent ( ) ;
248+ if ( ! ( client_1 . isJwtExpired ( e_4 ) === true ) ) return [ 3 , 6 ] ;
249+ return [ 4 , c . retryLogin ( metadata , options ) ] ;
250+ case 4 :
251+ _a . sent ( ) ;
252+ return [ 4 , operation ( ) ] ;
253+ case 5 :
210254 _a . sent ( ) ;
211- return [ 2 ] ;
255+ _a . label = 6 ;
256+ case 6 : return [ 3 , 7 ] ;
257+ case 7 : return [ 2 ] ;
212258 }
213259 } ) ;
214260 } ) ;
0 commit comments