@@ -26,9 +26,6 @@ import {Entry, EntryJson, LogEntry} from './entry';
2626import { getDefaultResource } from './metadata' ;
2727import { GoogleAuth } from 'google-auth-library/build/src/auth/googleauth' ;
2828
29- // eslint-disable-next-line @typescript-eslint/no-var-requires
30- const snakeCaseKeys = require ( 'snakecase-keys' ) ;
31-
3229export interface GetEntriesRequest {
3330 autoPaginate ?: boolean ;
3431 filter ?: string ;
@@ -891,9 +888,7 @@ class Log implements LogSeverityFunctions {
891888 // eslint-disable-next-line @typescript-eslint/no-this-alias
892889 const self = this ;
893890 if ( options . resource ) {
894- if ( options . resource . labels ) {
895- options . resource . labels = snakeCaseKeys ( options . resource . labels ) ;
896- }
891+ if ( options . resource . labels ) snakecaseKeys ( options . resource . labels ) ;
897892 return writeWithResource ( options . resource ) ;
898893 } else if ( this . logging . detectedResource ) {
899894 return writeWithResource ( this . logging . detectedResource ) ;
@@ -928,6 +923,17 @@ class Log implements LogSeverityFunctions {
928923 options . gaxOptions
929924 ) ;
930925 }
926+ // snakecaseKeys turns label keys from camel case to snake case.
927+ function snakecaseKeys ( labels : { [ p : string ] : string } | null | undefined ) {
928+ for ( const key in labels ) {
929+ Object . defineProperty (
930+ labels ,
931+ key . replace ( / [ A - Z ] / g, letter => `_${ letter . toLowerCase ( ) } ` ) ,
932+ Object . getOwnPropertyDescriptor ( labels , key ) as PropertyDescriptor
933+ ) ;
934+ delete labels [ key ] ;
935+ }
936+ }
931937 }
932938
933939 // TODO proper signature of `private decorateEntries` (sans underscore suffix)
0 commit comments