Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
silesky committed Jan 20, 2025
1 parent e960708 commit f556cc0
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 13 deletions.
15 changes: 7 additions & 8 deletions packages/browser/src/core/events/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import { v4 as uuid } from '@lukeed/uuid'
import { ID, User } from '../user'
import { Options, EventProperties, Traits, SegmentEvent } from './interfaces'
import { addPageContext, PageContext } from '../page'
import { CoreEventFactory } from '@segment/analytics-core'
import type { BrowserIntegrationsOptions } from '../../browser/settings'
import { CoreEventFactory, IntegrationsOptions } from '@segment/analytics-core'

export * from './interfaces'

Expand Down Expand Up @@ -48,7 +47,7 @@ export class EventFactory extends CoreEventFactory {
event: string,
properties?: EventProperties,
options?: Options,
globalIntegrations?: BrowserIntegrationsOptions,
globalIntegrations?: IntegrationsOptions,
pageCtx?: PageContext
): SegmentEvent {
const ev = super.track(event, properties, options, globalIntegrations)
Expand All @@ -61,7 +60,7 @@ export class EventFactory extends CoreEventFactory {
page: string | null,
properties?: EventProperties,
options?: Options,
globalIntegrations?: BrowserIntegrationsOptions,
globalIntegrations?: IntegrationsOptions,
pageCtx?: PageContext
): SegmentEvent {
const ev = super.page(
Expand All @@ -80,7 +79,7 @@ export class EventFactory extends CoreEventFactory {
screen: string | null,
properties?: EventProperties,
options?: Options,
globalIntegrations?: BrowserIntegrationsOptions,
globalIntegrations?: IntegrationsOptions,
pageCtx?: PageContext
): SegmentEvent {
const ev = super.screen(
Expand All @@ -98,7 +97,7 @@ export class EventFactory extends CoreEventFactory {
userId: ID,
traits?: Traits,
options?: Options,
globalIntegrations?: BrowserIntegrationsOptions,
globalIntegrations?: IntegrationsOptions,
pageCtx?: PageContext
): SegmentEvent {
const ev = super.identify(userId, traits, options, globalIntegrations)
Expand All @@ -110,7 +109,7 @@ export class EventFactory extends CoreEventFactory {
groupId: ID,
traits?: Traits,
options?: Options,
globalIntegrations?: BrowserIntegrationsOptions,
globalIntegrations?: IntegrationsOptions,
pageCtx?: PageContext
): SegmentEvent {
const ev = super.group(groupId, traits, options, globalIntegrations)
Expand All @@ -122,7 +121,7 @@ export class EventFactory extends CoreEventFactory {
to: string,
from: string | null,
options?: Options,
globalIntegrations?: BrowserIntegrationsOptions,
globalIntegrations?: IntegrationsOptions,
pageCtx?: PageContext
): SegmentEvent {
const ev = super.alias(to, from, options, globalIntegrations)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ describe('Segment.io', () => {
await segmentio(analytics, {
apiKey: '',
deliveryStrategy: {
strategy: 'standard',
config: {
headers: () => ({
'X-My-Header': 'foo',
Expand Down
4 changes: 3 additions & 1 deletion packages/browser/src/plugins/segmentio/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ export function segmentio(

const deliveryStrategy = settings?.deliveryStrategy
const client =
deliveryStrategy?.strategy === 'batching'
deliveryStrategy &&
'strategy' in deliveryStrategy &&
deliveryStrategy.strategy === 'batching'
? batch(apiHost, deliveryStrategy.config)
: standard(deliveryStrategy?.config)

Expand Down
11 changes: 7 additions & 4 deletions packages/browser/src/plugins/segmentio/shared-dispatcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ interface DispatchFetchConfig {
priority?: RequestPriority
}

export interface BatchingDispatchConfig extends DispatchFetchConfig {
export type BatchingDispatchConfig = DispatchFetchConfig & {
/**
* The maximum number of events to send in a single request. If the batch reaches this size, a request will automatically be sent.
*
Expand All @@ -73,10 +73,13 @@ export interface StandardDispatcherConfig extends DispatchFetchConfig {}

export type DeliveryStrategy =
| {
strategy?: 'standard'
strategy: 'batching'
config?: BatchingDispatchConfig
}
| {
strategy: 'standard'
config?: StandardDispatcherConfig
}
| {
strategy?: 'batching'
config?: BatchingDispatchConfig
config: StandardDispatcherConfig
}

0 comments on commit f556cc0

Please sign in to comment.