@embrace-io/web-sdk
Version:
1 lines • 1.55 kB
Source Map (JSON)
{"version":3,"file":"UserLogRecordProcessor.cjs","names":["ATTR_USER_ID"],"sources":["../../../src/processors/UserLogRecordProcessor/UserLogRecordProcessor.ts"],"sourcesContent":["import type { LogRecordProcessor, SdkLogRecord } from '@opentelemetry/sdk-logs';\nimport { ATTR_USER_ID } from '@opentelemetry/semantic-conventions/incubating';\nimport type { UserManager } from '../../api-users/index.ts';\nimport type { UserLogRecordProcessorArgs } from './types.ts';\n\n/**\n * UserLogRecordProcessor sets the userId attribute on all log records if the userId is set in the UserManager.\n */\nexport class UserLogRecordProcessor implements LogRecordProcessor {\n private readonly _userManager: UserManager;\n\n public constructor({ userManager }: UserLogRecordProcessorArgs) {\n this._userManager = userManager;\n }\n\n // no-op\n public forceFlush(): Promise<void> {\n return Promise.resolve(undefined);\n }\n\n public onEmit(logRecord: SdkLogRecord) {\n const userId = this._userManager.getUserId();\n\n if (userId) {\n logRecord.setAttributes({\n [ATTR_USER_ID]: this._userManager.getUserId(),\n });\n }\n }\n\n // no-op\n public shutdown(): Promise<void> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,yBAAb,MAAkE;CAChE;CAEA,YAAmB,EAAE,eAA2C;EAC9D,KAAK,eAAe;CACtB;CAGA,aAAmC;EACjC,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;CAEA,OAAc,WAAyB;EAGrC,IAFe,KAAK,aAAa,UAExB,GACP,UAAU,cAAc,GACrBA,+CAAAA,eAAe,KAAK,aAAa,UAAU,EAC9C,CAAC;CAEL;CAGA,WAAiC;EAC/B,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;AACF"}