@@ -412,21 +412,32 @@ export default abstract class Model<T> {
412
412
public async update (
413
413
pk : Key ,
414
414
sk_actions : Key | IUpdateActions ,
415
- actions ?: IUpdateActions ,
415
+ actions_options ?: IUpdateActions | Partial < DocumentClient . UpdateItemInput > ,
416
416
options ?: Partial < DocumentClient . UpdateItemInput > ,
417
417
) : Promise < PromiseResult < DocumentClient . UpdateItemOutput , AWSError > > {
418
418
// Handle overloading
419
- const sk : Key = isKey ( sk_actions ) ? sk_actions : null ;
420
- const updateActions : IUpdateActions = isKey ( sk_actions ) ? actions : sk_actions ;
421
- // Build updateItem params
419
+ let sk : Key ;
420
+ let updateActions : IUpdateActions ;
421
+ let nativeOptions : Partial < DocumentClient . UpdateItemInput > ;
422
+ if ( ! isKey ( sk_actions ) ) {
423
+ // 1st overload
424
+ sk = null ;
425
+ updateActions = sk_actions ;
426
+ nativeOptions = actions_options ;
427
+ } else {
428
+ // 2nd iverload
429
+ sk = sk_actions ;
430
+ updateActions = actions_options as IUpdateActions ;
431
+ nativeOptions = options ;
432
+ }
422
433
this . testKeys ( pk , sk ) ;
423
434
const params : DocumentClient . UpdateItemInput = {
424
435
TableName : this . tableName ,
425
436
Key : this . buildKeys ( pk , sk ) ,
426
437
AttributeUpdates : buildUpdateActions ( updateActions ) ,
427
438
} ;
428
- if ( options ) {
429
- Object . assign ( params , options ) ;
439
+ if ( nativeOptions ) {
440
+ Object . assign ( params , nativeOptions ) ;
430
441
}
431
442
return this . documentClient . update ( params ) . promise ( ) ;
432
443
}
0 commit comments