@@ -2,7 +2,7 @@ import { calculateObjectSize } from 'bson';
2
2
import * as os from 'os' ;
3
3
4
4
import type { MongoOptions } from '../../mongo_client' ;
5
- import type { DeepPartial } from '../../utils' ;
5
+ import { deepCopy , DeepPartial } from '../../utils' ;
6
6
import { applyFaasEnvMetadata , determineCloudProvider } from './faas_provider' ;
7
7
8
8
/**
@@ -35,58 +35,58 @@ export interface ClientMetadata {
35
35
} ;
36
36
}
37
37
38
+ /** @internal */
38
39
export type TruncatedClientMetadata = DeepPartial < ClientMetadata > ;
39
40
40
- export function truncateClientMetadata ( metadata : ClientMetadata ) : ClientMetadata {
41
- if ( calculateObjectSize ( metadata ) <= 512 ) {
42
- return metadata ;
41
+ export function truncateClientMetadata ( metadata : ClientMetadata ) : TruncatedClientMetadata {
42
+ const copiedMetadata : TruncatedClientMetadata = deepCopy ( metadata ) ;
43
+ if ( calculateObjectSize ( copiedMetadata ) <= 512 ) {
44
+ return copiedMetadata ;
43
45
}
44
46
45
- // @ts -expect-error cannot be deleted
46
- delete metadata . platform ;
47
+ delete copiedMetadata . platform ;
47
48
48
- if ( calculateObjectSize ( metadata ) <= 512 ) {
49
- return metadata ;
49
+ if ( calculateObjectSize ( copiedMetadata ) <= 512 ) {
50
+ return copiedMetadata ;
50
51
}
51
52
52
- if ( metadata . env ) {
53
- metadata . env = { name : metadata . env . name } ;
53
+ if ( copiedMetadata . env ) {
54
+ copiedMetadata . env = { name : copiedMetadata . env . name } ;
54
55
}
55
56
56
- if ( calculateObjectSize ( metadata ) <= 512 ) {
57
- return metadata ;
57
+ if ( calculateObjectSize ( copiedMetadata ) <= 512 ) {
58
+ return copiedMetadata ;
58
59
}
59
60
60
- // @ts -expect-error non-optional properties
61
- metadata . os = { type : metadata . os . type } ;
61
+ if ( copiedMetadata . os ) {
62
+ copiedMetadata . os = { type : copiedMetadata . os . type } ;
63
+ }
62
64
63
- if ( calculateObjectSize ( metadata ) <= 512 ) {
64
- return metadata ;
65
+ if ( calculateObjectSize ( copiedMetadata ) <= 512 ) {
66
+ return copiedMetadata ;
65
67
}
66
68
67
- delete metadata . env ;
69
+ delete copiedMetadata . env ;
68
70
69
- if ( calculateObjectSize ( metadata ) <= 512 ) {
70
- return metadata ;
71
+ if ( calculateObjectSize ( copiedMetadata ) <= 512 ) {
72
+ return copiedMetadata ;
71
73
}
72
74
73
- // @ts -expect-error required properties
74
- delete metadata . os ;
75
+ delete copiedMetadata . os ;
75
76
76
- if ( calculateObjectSize ( metadata ) <= 512 ) {
77
- return metadata ;
77
+ if ( calculateObjectSize ( copiedMetadata ) <= 512 ) {
78
+ return copiedMetadata ;
78
79
}
79
80
80
- // @ts -expect-error required properties
81
- delete metadata . driver ;
81
+ delete copiedMetadata . driver ;
82
82
83
- if ( calculateObjectSize ( metadata ) <= 512 ) {
84
- return metadata ;
83
+ if ( calculateObjectSize ( copiedMetadata ) <= 512 ) {
84
+ return copiedMetadata ;
85
85
}
86
86
87
- delete metadata . application ;
87
+ delete copiedMetadata . application ;
88
88
89
- return metadata ;
89
+ return copiedMetadata ;
90
90
}
91
91
92
92
/** @public */
0 commit comments