From b9c3f67c4ff9d61298dbb00a3c470ded29fcaa36 Mon Sep 17 00:00:00 2001 From: Kevin Pagtakhan <kevinp@amplitude.com> Date: Tue, 25 Oct 2022 11:01:07 -0700 Subject: [PATCH 1/2] fix: nested object in options are shared across multiple instances --- src/amplitude-client.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/amplitude-client.js b/src/amplitude-client.js index 38dca861..f7b453f8 100644 --- a/src/amplitude-client.js +++ b/src/amplitude-client.js @@ -39,7 +39,13 @@ var AmplitudeClient = function AmplitudeClient(instanceName) { this._instanceName = utils.isEmptyString(instanceName) ? Constants.DEFAULT_INSTANCE : instanceName.toLowerCase(); this._unsentEvents = []; this._unsentIdentifys = []; - this.options = { ...DEFAULT_OPTIONS, trackingOptions: { ...DEFAULT_OPTIONS.trackingOptions } }; + this.options = { + ...DEFAULT_OPTIONS, + headers: { ...DEFAULT_OPTIONS.headers }, + library: { ...DEFAULT_OPTIONS.library }, + plan: { ...DEFAULT_OPTIONS.plan }, + trackingOptions: { ...DEFAULT_OPTIONS.trackingOptions }, + }; this.cookieStorage = new cookieStorage().getStorage(); this._q = []; // queue for proxied functions before script load this._sending = false; From 1c5a2d35ce0ff9977f7c657df20c24162291d36e Mon Sep 17 00:00:00 2001 From: Kevin Pagtakhan <kevinp@amplitude.com> Date: Tue, 25 Oct 2022 11:16:45 -0700 Subject: [PATCH 2/2] fix: nested object in options are shared across multiple instances --- src/amplitude-client.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/amplitude-client.js b/src/amplitude-client.js index f7b453f8..93069559 100644 --- a/src/amplitude-client.js +++ b/src/amplitude-client.js @@ -42,6 +42,7 @@ var AmplitudeClient = function AmplitudeClient(instanceName) { this.options = { ...DEFAULT_OPTIONS, headers: { ...DEFAULT_OPTIONS.headers }, + ingestionMetadata: { ...DEFAULT_OPTIONS.ingestionMetadata }, library: { ...DEFAULT_OPTIONS.library }, plan: { ...DEFAULT_OPTIONS.plan }, trackingOptions: { ...DEFAULT_OPTIONS.trackingOptions },