From a6baf73cf743912bccf57c20ee714436b41c6553 Mon Sep 17 00:00:00 2001 From: Kuba Juszczyk Date: Wed, 12 Apr 2023 13:52:55 +0200 Subject: [PATCH 1/5] add saveDelay option --- packages/core/src/plugins/QueueFlushingPlugin.ts | 1 + packages/core/src/types.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/core/src/plugins/QueueFlushingPlugin.ts b/packages/core/src/plugins/QueueFlushingPlugin.ts index be482967..66ebe313 100644 --- a/packages/core/src/plugins/QueueFlushingPlugin.ts +++ b/packages/core/src/plugins/QueueFlushingPlugin.ts @@ -37,6 +37,7 @@ export class QueueFlushingPlugin extends UtilityPlugin { persist: { storeId: `${config.writeKey}-events`, persistor: config.storePersistor, + saveDelay: config.storePersistorSaveDelay }, } ); diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 2d7c3502..1b38e68c 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -144,6 +144,7 @@ export type Config = { autoAddSegmentDestination?: boolean; collectDeviceId?: boolean; storePersistor?: Persistor; + storePersistorSaveDelay?: Number; proxy?: string; errorHandler?: (error: SegmentError) => void; }; From 2547cd20855bbd67555015f550f4525330b7f942 Mon Sep 17 00:00:00 2001 From: Kuba Juszczyk Date: Thu, 13 Apr 2023 12:44:56 +0200 Subject: [PATCH 2/5] add saveDelay for rest of stores --- packages/core/src/client.tsx | 1 + packages/core/src/storage/sovranStorage.ts | 5 +++++ packages/core/src/storage/types.ts | 1 + 3 files changed, 7 insertions(+) diff --git a/packages/core/src/client.tsx b/packages/core/src/client.tsx index d8632e86..0fbd007b 100644 --- a/packages/core/src/client.tsx +++ b/packages/core/src/client.tsx @@ -20,6 +20,7 @@ export const createClient = (config: Config) => { const segmentStore = new SovranStorage({ storeId: config.writeKey, storePersistor: config.storePersistor, + storePersistorSaveDelay: config.storePersistorSaveDelay }); const client = new SegmentClient({ diff --git a/packages/core/src/storage/sovranStorage.ts b/packages/core/src/storage/sovranStorage.ts index 17d1201c..42bb80a8 100644 --- a/packages/core/src/storage/sovranStorage.ts +++ b/packages/core/src/storage/sovranStorage.ts @@ -111,6 +111,7 @@ function createStoreGetter< export class SovranStorage implements Storage { private storeId: string; private storePersistor?: Persistor; + private storePersistorSaveDelay?: Number; private readinessStore: Store; private contextStore: Store<{ context: DeepPartial }>; private settingsStore: Store<{ settings: SegmentAPIIntegrations }>; @@ -138,6 +139,7 @@ export class SovranStorage implements Storage { constructor(config: StorageConfig) { this.storeId = config.storeId; this.storePersistor = config.storePersistor; + this.storePersistorSaveDelay = config.storePersistorSaveDelay; this.readinessStore = createStore({ hasRestoredContext: false, hasRestoredSettings: false, @@ -212,6 +214,7 @@ export class SovranStorage implements Storage { persist: { storeId: `${this.storeId}-settings`, persistor: this.storePersistor, + saveDelay: this.storePersistorSaveDelay, onInitialized: markAsReadyGenerator('hasRestoredSettings'), }, } @@ -247,6 +250,7 @@ export class SovranStorage implements Storage { persist: { storeId: `${this.storeId}-filters`, persistor: this.storePersistor, + saveDelay: this.storePersistorSaveDelay, onInitialized: markAsReadyGenerator('hasRestoredFilters'), }, }); @@ -283,6 +287,7 @@ export class SovranStorage implements Storage { persist: { storeId: `${this.storeId}-userInfo`, persistor: this.storePersistor, + saveDelay: this.storePersistorSaveDelay, onInitialized: markAsReadyGenerator('hasRestoredUserInfo'), }, } diff --git a/packages/core/src/storage/types.ts b/packages/core/src/storage/types.ts index 4efab6ef..34368771 100644 --- a/packages/core/src/storage/types.ts +++ b/packages/core/src/storage/types.ts @@ -87,4 +87,5 @@ export interface DeepLinkData { export type StorageConfig = { storeId: string; storePersistor?: Persistor; + storePersistorSaveDelay?: Number; }; From 5a688a1f9c7be3fd2b28bda1085546a4872e5de5 Mon Sep 17 00:00:00 2001 From: Kuba Juszczyk Date: Mon, 22 May 2023 18:04:01 +0200 Subject: [PATCH 3/5] fix types --- packages/core/src/storage/sovranStorage.ts | 2 +- packages/core/src/storage/types.ts | 2 +- packages/core/src/types.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/src/storage/sovranStorage.ts b/packages/core/src/storage/sovranStorage.ts index 42bb80a8..709c619a 100644 --- a/packages/core/src/storage/sovranStorage.ts +++ b/packages/core/src/storage/sovranStorage.ts @@ -111,7 +111,7 @@ function createStoreGetter< export class SovranStorage implements Storage { private storeId: string; private storePersistor?: Persistor; - private storePersistorSaveDelay?: Number; + private storePersistorSaveDelay?: number; private readinessStore: Store; private contextStore: Store<{ context: DeepPartial }>; private settingsStore: Store<{ settings: SegmentAPIIntegrations }>; diff --git a/packages/core/src/storage/types.ts b/packages/core/src/storage/types.ts index 34368771..85d98c7b 100644 --- a/packages/core/src/storage/types.ts +++ b/packages/core/src/storage/types.ts @@ -87,5 +87,5 @@ export interface DeepLinkData { export type StorageConfig = { storeId: string; storePersistor?: Persistor; - storePersistorSaveDelay?: Number; + storePersistorSaveDelay?: number; }; diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 1b38e68c..cdafb2cc 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -144,7 +144,7 @@ export type Config = { autoAddSegmentDestination?: boolean; collectDeviceId?: boolean; storePersistor?: Persistor; - storePersistorSaveDelay?: Number; + storePersistorSaveDelay?: number; proxy?: string; errorHandler?: (error: SegmentError) => void; }; From d3ad84d3b1270fd2abbb2b066b838a65ab6310ce Mon Sep 17 00:00:00 2001 From: Kuba Juszczyk Date: Wed, 28 Jun 2023 11:49:26 +0200 Subject: [PATCH 4/5] Update client.tsx --- packages/core/src/client.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/client.tsx b/packages/core/src/client.tsx index 0fbd007b..2a385963 100644 --- a/packages/core/src/client.tsx +++ b/packages/core/src/client.tsx @@ -20,7 +20,7 @@ export const createClient = (config: Config) => { const segmentStore = new SovranStorage({ storeId: config.writeKey, storePersistor: config.storePersistor, - storePersistorSaveDelay: config.storePersistorSaveDelay + storePersistorSaveDelay: config.storePersistorSaveDelay, }); const client = new SegmentClient({ From a9ae71cde68ad24c5611fdfedf840c12deb15a36 Mon Sep 17 00:00:00 2001 From: Kuba Juszczyk Date: Wed, 28 Jun 2023 11:49:39 +0200 Subject: [PATCH 5/5] Update QueueFlushingPlugin.ts --- packages/core/src/plugins/QueueFlushingPlugin.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/plugins/QueueFlushingPlugin.ts b/packages/core/src/plugins/QueueFlushingPlugin.ts index 66ebe313..c7256c68 100644 --- a/packages/core/src/plugins/QueueFlushingPlugin.ts +++ b/packages/core/src/plugins/QueueFlushingPlugin.ts @@ -37,7 +37,7 @@ export class QueueFlushingPlugin extends UtilityPlugin { persist: { storeId: `${config.writeKey}-events`, persistor: config.storePersistor, - saveDelay: config.storePersistorSaveDelay + saveDelay: config.storePersistorSaveDelay, }, } );