@@ -16,6 +16,7 @@ import {promisifyAll} from '@google-cloud/promisify';
1616import { Transform } from 'stream' ;
1717import arrify = require( 'arrify' ) ;
1818import * as is from 'is' ;
19+ import * as extend from 'extend' ;
1920// eslint-disable-next-line @typescript-eslint/no-var-requires
2021const pumpify = require ( 'pumpify' ) ;
2122
@@ -653,21 +654,33 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
653654 optionsOrCallback ?: CallOptions | GetAppProfilesCallback ,
654655 cb ?: GetAppProfilesCallback
655656 ) : void | Promise < GetAppProfilesResponse > {
656- const gaxOptions =
657- typeof optionsOrCallback === 'object' ? optionsOrCallback : { } ;
657+ const gaxOpts =
658+ typeof optionsOrCallback === 'object'
659+ ? extend ( true , { } , optionsOrCallback )
660+ : { } ;
658661 const callback =
659662 typeof optionsOrCallback === 'function' ? optionsOrCallback : cb ! ;
660663
661- const reqOpts = {
664+ const reqOpts : google . bigtable . admin . v2 . IListAppProfilesRequest = {
662665 parent : this . name ,
663666 } ;
664667
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+
665678 this . bigtable . request < google . bigtable . admin . v2 . IAppProfile [ ] > (
666679 {
667680 client : 'BigtableInstanceAdminClient' ,
668681 method : 'listAppProfiles' ,
669682 reqOpts,
670- gaxOpts : gaxOptions ,
683+ gaxOpts,
671684 } ,
672685 ( err , resp ) => {
673686 if ( err ) {
@@ -718,10 +731,21 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
718731 * this.end();
719732 * });
720733 */
721- getAppProfilesStream ( gaxOptions ? : CallOptions ) : NodeJS . ReadableStream {
722- const reqOpts = {
734+ getAppProfilesStream ( gaxOptions : CallOptions = { } ) : NodeJS . ReadableStream {
735+ const reqOpts : google . bigtable . admin . v2 . IListAppProfilesRequest = {
723736 parent : this . name ,
724737 } ;
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 ;
725749
726750 // eslint-disable-next-line @typescript-eslint/no-this-alias
727751 const self = this ;
@@ -739,7 +763,7 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
739763 client : 'BigtableInstanceAdminClient' ,
740764 method : 'listAppProfilesStream' ,
741765 reqOpts,
742- gaxOpts : gaxOptions ,
766+ gaxOpts,
743767 } ) ,
744768 new Transform ( { objectMode : true , transform : transformToAppProfile } ) ,
745769 ] ) ;
@@ -938,19 +962,35 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
938962 const callback =
939963 typeof optionsOrCallback === 'function' ? optionsOrCallback : cb ! ;
940964
941- const reqOpts = Object . assign ( { } , options , {
965+ const gaxOpts = extend ( true , { } , options . gaxOptions ) ;
966+ let reqOpts = Object . assign ( { } , options , {
942967 parent : this . name ,
943968 view : Table . VIEWS [ options . view || 'unspecified' ] ,
944969 } ) ;
945970
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+
946986 delete ( reqOpts as GetTablesOptions ) . gaxOptions ;
947987
948988 this . bigtable . request < Table [ ] > (
949989 {
950990 client : 'BigtableTableAdminClient' ,
951991 method : 'listTables' ,
952992 reqOpts,
953- gaxOpts : options . gaxOptions ,
993+ gaxOpts,
954994 } ,
955995 ( ...args ) => {
956996 if ( args [ 1 ] ) {
@@ -998,14 +1038,30 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
9981038 * });
9991039 */
10001040 getTablesStream ( options : GetTablesOptions = { } ) : NodeJS . ReadableStream {
1001- const reqOpts = Object . assign ( { } , options , {
1041+ const gaxOpts = extend ( true , { } , options . gaxOptions ) ;
1042+ let reqOpts = Object . assign ( { } , options , {
10021043 parent : this . name ,
10031044 view : Table . VIEWS [ options . view || 'unspecified' ] ,
10041045 } ) ;
10051046
10061047 // eslint-disable-next-line @typescript-eslint/no-explicit-any
10071048 delete ( reqOpts as any ) . gaxOptions ;
10081049
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+
10091065 // eslint-disable-next-line @typescript-eslint/no-this-alias
10101066 const self = this ;
10111067 const transformToTable = (
@@ -1022,7 +1078,7 @@ Please use the format 'my-instance' or '${bigtable.projectName}/instances/my-ins
10221078 client : 'BigtableTableAdminClient' ,
10231079 method : 'listTablesStream' ,
10241080 reqOpts,
1025- gaxOpts : options . gaxOptions ,
1081+ gaxOpts,
10261082 } ) ,
10271083 new Transform ( { objectMode : true , transform : transformToTable } ) ,
10281084 ] ) ;
0 commit comments