UNPKG

@objectiv/plugin-application-context

Version:

Plugin for Objectiv trackers to automatically generate and attach ApplicationContext to all Events

1 lines 3.45 kB
{"version":3,"sources":["../src/index.ts","../src/ApplicationContextPlugin.ts"],"sourcesContent":["/*\n * Copyright 2022 Objectiv B.V.\n */\n\n/**\n * Set package version in globals\n */\nimport pkg from '../package.json';\nglobalThis.objectiv = globalThis.objectiv ?? {};\nglobalThis.objectiv.versions = globalThis.objectiv.versions ?? new Map();\nglobalThis.objectiv.versions.set(pkg.name, pkg.version);\n\nexport * from './ApplicationContextPlugin';\n","/*\n * Copyright 2022 Objectiv B.V.\n */\n\nimport { ApplicationContext } from '@objectiv/schema';\nimport {\n ContextsConfig,\n makeApplicationContext,\n TrackerInterface,\n TrackerPluginInterface,\n} from '@objectiv/tracker-core';\n\n/**\n * The ApplicationContextPlugin adds an ApplicationContext as GlobalContext before events are transported.\n * ApplicationContext Validation is performed by OpenTaxonomyValidationPlugin\n */\nexport class ApplicationContextPlugin implements TrackerPluginInterface {\n readonly pluginName = `ApplicationContextPlugin`;\n initialized: boolean = false;\n applicationContext?: ApplicationContext;\n\n /**\n * Generates a ApplicationContext with the Tracker's applicationId.\n */\n initialize(tracker: TrackerInterface) {\n this.applicationContext = makeApplicationContext({\n id: tracker.applicationId,\n });\n\n this.initialized = true;\n\n if (globalThis.objectiv.devTools) {\n globalThis.objectiv.devTools.TrackerConsole.groupCollapsed(`「objectiv:${this.pluginName}」 Initialized`);\n globalThis.objectiv.devTools.TrackerConsole.log(`Application ID: ${tracker.applicationId}`);\n globalThis.objectiv.devTools.TrackerConsole.group(`Application Context:`);\n globalThis.objectiv.devTools.TrackerConsole.log(this.applicationContext);\n globalThis.objectiv.devTools.TrackerConsole.groupEnd();\n globalThis.objectiv.devTools.TrackerConsole.groupEnd();\n }\n }\n\n /**\n * Add the ApplicationContext to the Event's Global Contexts\n */\n enrich(contexts: Required<ContextsConfig>): void {\n if (!this.initialized) {\n globalThis.objectiv.devTools?.TrackerConsole.error(\n `「objectiv:${this.pluginName}」 Cannot enrich. Make sure to initialize the plugin first.`\n );\n }\n if (this.applicationContext) {\n contexts.global_contexts.push(this.applicationContext);\n }\n }\n\n /**\n * Make this plugin always usable\n */\n isUsable(): boolean {\n return true;\n }\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,42CCKA,IAAAI,EAKO,kCAMMC,EAAN,KAAiE,CAAjE,cACL,KAAS,WAAa,2BACtB,iBAAuB,GAMvB,WAAWC,EAA2B,CACpC,KAAK,sBAAqB,0BAAuB,CAC/C,GAAIA,EAAQ,aACd,CAAC,EAED,KAAK,YAAc,GAEf,WAAW,SAAS,WACtB,WAAW,SAAS,SAAS,eAAe,eAAe,kBAAa,KAAK,8BAAyB,EACtG,WAAW,SAAS,SAAS,eAAe,IAAI,mBAAmBA,EAAQ,eAAe,EAC1F,WAAW,SAAS,SAAS,eAAe,MAAM,sBAAsB,EACxE,WAAW,SAAS,SAAS,eAAe,IAAI,KAAK,kBAAkB,EACvE,WAAW,SAAS,SAAS,eAAe,SAAS,EACrD,WAAW,SAAS,SAAS,eAAe,SAAS,EAEzD,CAKA,OAAOC,EAA0C,CA5CnD,IAAAC,EA6CS,KAAK,cACRA,EAAA,WAAW,SAAS,WAApB,MAAAA,EAA8B,eAAe,MAC3C,kBAAa,KAAK,6EAGlB,KAAK,oBACPD,EAAS,gBAAgB,KAAK,KAAK,kBAAkB,CAEzD,CAKA,UAAoB,CAClB,MAAO,EACT,CACF,EDrDA,WAAW,SAAW,WAAW,UAAY,CAAC,EAC9C,WAAW,SAAS,SAAW,WAAW,SAAS,UAAY,IAAI,IACnE,WAAW,SAAS,SAAS,IAAIE,EAAI,KAAMA,EAAI,OAAO","names":["src_exports","__export","ApplicationContextPlugin","__toCommonJS","import_tracker_core","ApplicationContextPlugin","tracker","contexts","_a","package_default"]}