@@ -24,6 +24,7 @@ import {
2424} from '@devcycle/server-request'
2525import { generateBucketedConfig } from '@devcycle/bucketing'
2626import { generateAggEvent , publishDevCycleEvents } from './eventsPublisher'
27+ import isArray from 'lodash/isArray'
2728
2829const castIncomingUser = ( user : DevCycleUser ) => {
2930 if ( ! ( user instanceof DevCycleUser ) ) {
@@ -141,7 +142,7 @@ export class DevCycleEdgeClient {
141142
142143 const dvcVariable = new DVCVariable ( options )
143144
144- const aggEvents = generateAggEvent (
145+ const aggEvent = generateAggEvent (
145146 populatedUser . user_id ,
146147 dvcVariable . isDefaulted
147148 ? EventTypes . aggVariableDefaulted
@@ -154,7 +155,7 @@ export class DevCycleEdgeClient {
154155 this . logger ,
155156 this . sdkKey ,
156157 populatedUser ,
157- aggEvents ,
158+ [ aggEvent ] ,
158159 bucketedConfig . featureVariationMap ,
159160 )
160161
@@ -199,6 +200,10 @@ export class DevCycleEdgeClient {
199200 return bucketedConfig ?. features || { }
200201 }
201202
203+ private static checkDevCycleEvent ( event : DevCycleEvent ) : void {
204+ checkParamDefined ( 'type' , event . type )
205+ }
206+
202207 async track (
203208 user : DevCycleUser ,
204209 event : DevCycleEvent | DevCycleEvent [ ] ,
@@ -212,7 +217,11 @@ export class DevCycleEdgeClient {
212217 return
213218 }
214219
215- checkParamDefined ( 'type' , event . type )
220+ if ( isArray ( event ) ) {
221+ event . forEach ( DevCycleEdgeClient . checkDevCycleEvent )
222+ } else {
223+ DevCycleEdgeClient . checkDevCycleEvent ( event )
224+ }
216225 const populatedUser = DVCPopulatedUserFromDevCycleUser (
217226 incomingUser ,
218227 this . options ,
@@ -226,7 +235,7 @@ export class DevCycleEdgeClient {
226235 this . logger ,
227236 this . sdkKey ,
228237 populatedUser ,
229- typeof event === 'object' ? [ event ] : event ,
238+ isArray ( event ) ? event : [ event ] ,
230239 bucketedConfig . featureVariationMap ,
231240 )
232241 }
0 commit comments