@@ -16,6 +16,7 @@ import {promisifyAll} from '@google-cloud/promisify';
16
16
import { Transform } from 'stream' ;
17
17
import arrify = require( 'arrify' ) ;
18
18
import * as is from 'is' ;
19
+ import * as extend from 'extend' ;
19
20
// eslint-disable-next-line @typescript-eslint/no-var-requires
20
21
const pumpify = require ( 'pumpify' ) ;
21
22
@@ -653,21 +654,33 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
653
654
optionsOrCallback ?: CallOptions | GetAppProfilesCallback ,
654
655
cb ?: GetAppProfilesCallback
655
656
) : void | Promise < GetAppProfilesResponse > {
656
- const gaxOptions =
657
- typeof optionsOrCallback === 'object' ? optionsOrCallback : { } ;
657
+ const gaxOpts =
658
+ typeof optionsOrCallback === 'object'
659
+ ? extend ( true , { } , optionsOrCallback )
660
+ : { } ;
658
661
const callback =
659
662
typeof optionsOrCallback === 'function' ? optionsOrCallback : cb ! ;
660
663
661
- const reqOpts = {
664
+ const reqOpts : google . bigtable . admin . v2 . IListAppProfilesRequest = {
662
665
parent : this . name ,
663
666
} ;
664
667
668
+ if ( is . number ( gaxOpts . pageSize ) ) {
669
+ reqOpts . pageSize = gaxOpts . pageSize ;
670
+ }
671
+ delete gaxOpts . pageSize ;
672
+
673
+ if ( gaxOpts . pageToken ) {
674
+ reqOpts . pageToken = gaxOpts . pageToken ;
675
+ }
676
+ delete gaxOpts . pageToken ;
677
+
665
678
this . bigtable . request < google . bigtable . admin . v2 . IAppProfile [ ] > (
666
679
{
667
680
client : 'BigtableInstanceAdminClient' ,
668
681
method : 'listAppProfiles' ,
669
682
reqOpts,
670
- gaxOpts : gaxOptions ,
683
+ gaxOpts,
671
684
} ,
672
685
( err , resp ) => {
673
686
if ( err ) {
@@ -718,10 +731,21 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
718
731
* this.end();
719
732
* });
720
733
*/
721
- getAppProfilesStream ( gaxOptions ? : CallOptions ) : NodeJS . ReadableStream {
722
- const reqOpts = {
734
+ getAppProfilesStream ( gaxOptions : CallOptions = { } ) : NodeJS . ReadableStream {
735
+ const reqOpts : google . bigtable . admin . v2 . IListAppProfilesRequest = {
723
736
parent : this . name ,
724
737
} ;
738
+ const gaxOpts = extend ( true , { } , gaxOptions ) ;
739
+
740
+ if ( is . number ( gaxOpts . pageSize ) ) {
741
+ reqOpts . pageSize = gaxOpts . pageSize ;
742
+ }
743
+ delete gaxOpts . pageSize ;
744
+
745
+ if ( gaxOpts . pageToken ) {
746
+ reqOpts . pageToken = gaxOpts . pageToken ;
747
+ }
748
+ delete gaxOpts . pageToken ;
725
749
726
750
// eslint-disable-next-line @typescript-eslint/no-this-alias
727
751
const self = this ;
@@ -739,7 +763,7 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
739
763
client : 'BigtableInstanceAdminClient' ,
740
764
method : 'listAppProfilesStream' ,
741
765
reqOpts,
742
- gaxOpts : gaxOptions ,
766
+ gaxOpts,
743
767
} ) ,
744
768
new Transform ( { objectMode : true , transform : transformToAppProfile } ) ,
745
769
] ) ;
@@ -938,19 +962,35 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
938
962
const callback =
939
963
typeof optionsOrCallback === 'function' ? optionsOrCallback : cb ! ;
940
964
941
- const reqOpts = Object . assign ( { } , options , {
965
+ const gaxOpts = extend ( true , { } , options . gaxOptions ) ;
966
+ let reqOpts = Object . assign ( { } , options , {
942
967
parent : this . name ,
943
968
view : Table . VIEWS [ options . view || 'unspecified' ] ,
944
969
} ) ;
945
970
971
+ // Copy over pageSize and pageToken values from gaxOptions.
972
+ // However values set on options take precedence.
973
+ if ( gaxOpts ) {
974
+ reqOpts = extend (
975
+ { } ,
976
+ {
977
+ pageSize : gaxOpts . pageSize ,
978
+ pageToken : gaxOpts . pageToken ,
979
+ } ,
980
+ reqOpts
981
+ ) ;
982
+ delete gaxOpts . pageSize ;
983
+ delete gaxOpts . pageToken ;
984
+ }
985
+
946
986
delete ( reqOpts as GetTablesOptions ) . gaxOptions ;
947
987
948
988
this . bigtable . request < Table [ ] > (
949
989
{
950
990
client : 'BigtableTableAdminClient' ,
951
991
method : 'listTables' ,
952
992
reqOpts,
953
- gaxOpts : options . gaxOptions ,
993
+ gaxOpts,
954
994
} ,
955
995
( ...args ) => {
956
996
if ( args [ 1 ] ) {
@@ -998,14 +1038,30 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
998
1038
* });
999
1039
*/
1000
1040
getTablesStream ( options : GetTablesOptions = { } ) : NodeJS . ReadableStream {
1001
- const reqOpts = Object . assign ( { } , options , {
1041
+ const gaxOpts = extend ( true , { } , options . gaxOptions ) ;
1042
+ let reqOpts = Object . assign ( { } , options , {
1002
1043
parent : this . name ,
1003
1044
view : Table . VIEWS [ options . view || 'unspecified' ] ,
1004
1045
} ) ;
1005
1046
1006
1047
// eslint-disable-next-line @typescript-eslint/no-explicit-any
1007
1048
delete ( reqOpts as any ) . gaxOptions ;
1008
1049
1050
+ // Copy over pageSize and pageToken values from gaxOptions.
1051
+ // However values set on options take precedence.
1052
+ if ( gaxOpts ) {
1053
+ reqOpts = extend (
1054
+ { } ,
1055
+ {
1056
+ pageSize : gaxOpts . pageSize ,
1057
+ pageToken : gaxOpts . pageToken ,
1058
+ } ,
1059
+ reqOpts
1060
+ ) ;
1061
+ delete gaxOpts . pageSize ;
1062
+ delete gaxOpts . pageToken ;
1063
+ }
1064
+
1009
1065
// eslint-disable-next-line @typescript-eslint/no-this-alias
1010
1066
const self = this ;
1011
1067
const transformToTable = (
@@ -1022,7 +1078,7 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
1022
1078
client : 'BigtableTableAdminClient' ,
1023
1079
method : 'listTablesStream' ,
1024
1080
reqOpts,
1025
- gaxOpts : options . gaxOptions ,
1081
+ gaxOpts,
1026
1082
} ) ,
1027
1083
new Transform ( { objectMode : true , transform : transformToTable } ) ,
1028
1084
] ) ;
0 commit comments