MCPcopy
hub / github.com/mongodb/node-mongodb-native / addContainerMetadata

Function addContainerMetadata

src/cmap/handshake/client_metadata.ts:209–236  ·  view source on GitHub ↗

* @internal * Re-add each metadata value. * Attempt to add new env container metadata, but keep old data if it does not fit.

(originalMetadata: ClientMetadata)

Source from the content-addressed store, hash-verified

207 * Attempt to add new env container metadata, but keep old data if it does not fit.
208 */
209async function addContainerMetadata(originalMetadata: ClientMetadata): Promise<ClientMetadata> {
210 const containerMetadata = await getContainerMetadata();
211 if (Object.keys(containerMetadata).length === 0) return originalMetadata;
212
213 const extendedMetadata = new LimitedSizeDocument(512);
214
215 const extendedEnvMetadata: NonNullable<ClientMetadata['env']> = {
216 ...originalMetadata?.env,
217 container: containerMetadata
218 };
219
220 for (const [key, val] of Object.entries(originalMetadata)) {
221 if (key !== 'env') {
222 extendedMetadata.ifItFitsItSits(key, val);
223 } else {
224 if (!extendedMetadata.ifItFitsItSits('env', extendedEnvMetadata)) {
225 // add in old data if newer / extended metadata does not fit
226 extendedMetadata.ifItFitsItSits('env', val);
227 }
228 }
229 }
230
231 if (!('env' in originalMetadata)) {
232 extendedMetadata.ifItFitsItSits('env', extendedEnvMetadata);
233 }
234
235 return extendedMetadata.toObject() as ClientMetadata;
236}
237
238/**
239 * Collects FaaS metadata.

Callers 1

makeClientMetadataFunction · 0.85

Calls 3

ifItFitsItSitsMethod · 0.95
toObjectMethod · 0.95
getContainerMetadataFunction · 0.85

Tested by

no test coverage detected