Skip to content

Commit 5db3fcf

Browse files
committed
rename to ensureSerializable*
1 parent a0c0ad4 commit 5db3fcf

File tree

2 files changed

+32
-32
lines changed

2 files changed

+32
-32
lines changed

example/lib/analytics.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class MixpanelManager {
55

66
static Future<Mixpanel> init() async {
77
if (_instance == null) {
8-
_instance = await Mixpanel.init("6d83a31dc1373e3153a5a3d087084721",
8+
_instance = await Mixpanel.init("YOUR_PROJECT_TOKEN",
99
optOutTrackingDefault: false, trackAutomaticEvents: true);
1010
_instance?.setLoggingEnabled(true);
1111
}

lib/mixpanel_flutter.dart

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ class Mixpanel {
4444
allProperties['optOutTrackingDefault'] = optOutTrackingDefault;
4545
allProperties['trackAutomaticEvents'] = trackAutomaticEvents;
4646
allProperties['mixpanelProperties'] = _mixpanelProperties;
47-
allProperties['superProperties'] = _MixpanelHelper.convertPropertiesForWeb(superProperties);
48-
allProperties['config'] = _MixpanelHelper.convertPropertiesForWeb(config);
47+
allProperties['superProperties'] = _MixpanelHelper.ensureSerializableProperties(superProperties);
48+
allProperties['config'] = _MixpanelHelper.ensureSerializableProperties(config);
4949
await _channel.invokeMethod<void>('initialize', allProperties);
5050
return Mixpanel(token);
5151
}
@@ -198,7 +198,7 @@ class Mixpanel {
198198
}) async {
199199
if (_MixpanelHelper.isValidString(eventName)) {
200200
await _channel.invokeMethod<void>('track',
201-
<String, dynamic>{'eventName': eventName, 'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
201+
<String, dynamic>{'eventName': eventName, 'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
202202
} else {
203203
developer.log('`track` failed: eventName cannot be blank',
204204
name: 'Mixpanel');
@@ -231,8 +231,8 @@ class Mixpanel {
231231
if (_MixpanelHelper.isValidString(eventName)) {
232232
await _channel.invokeMethod<void>('trackWithGroups', <String, dynamic>{
233233
'eventName': eventName,
234-
'properties': _MixpanelHelper.convertPropertiesForWeb(properties),
235-
'groups': _MixpanelHelper.convertPropertiesForWeb(groups)
234+
'properties': _MixpanelHelper.ensureSerializableProperties(properties),
235+
'groups': _MixpanelHelper.ensureSerializableProperties(groups)
236236
});
237237
} else {
238238
developer.log('`trackWithGroups` failed: eventName cannot be blank',
@@ -247,7 +247,7 @@ class Mixpanel {
247247
void setGroup(String groupKey, dynamic groupID) {
248248
if (_MixpanelHelper.isValidString(groupKey)) {
249249
_channel.invokeMethod<void>('setGroup',
250-
<String, dynamic>{'groupKey': groupKey, 'groupID': _MixpanelHelper.convertValueForWeb(groupID)});
250+
<String, dynamic>{'groupKey': groupKey, 'groupID': _MixpanelHelper.ensureSerializableValue(groupID)});
251251
} else {
252252
developer.log('`setGroup` failed: groupKey cannot be blank',
253253
name: 'Mixpanel');
@@ -262,7 +262,7 @@ class Mixpanel {
262262
/// return an instance of MixpanelGroup that you can use to update
263263
/// records in Mixpanel Group Analytics
264264
MixpanelGroup getGroup(String groupKey, dynamic groupID) {
265-
return new MixpanelGroup(this._token, groupKey, _MixpanelHelper.convertValueForWeb(groupID));
265+
return new MixpanelGroup(this._token, groupKey, _MixpanelHelper.ensureSerializableValue(groupID));
266266
}
267267

268268
/// Add a group to this user's membership for a particular group key
@@ -272,7 +272,7 @@ class Mixpanel {
272272
void addGroup(String groupKey, dynamic groupID) {
273273
if (_MixpanelHelper.isValidString(groupKey)) {
274274
_channel.invokeMethod<void>('addGroup',
275-
<String, dynamic>{'groupKey': groupKey, 'groupID': _MixpanelHelper.convertValueForWeb(groupID)});
275+
<String, dynamic>{'groupKey': groupKey, 'groupID': _MixpanelHelper.ensureSerializableValue(groupID)});
276276
} else {
277277
developer.log('`addGroup` failed: groupKey cannot be blank',
278278
name: 'Mixpanel');
@@ -286,7 +286,7 @@ class Mixpanel {
286286
void removeGroup(String groupKey, dynamic groupID) {
287287
if (_MixpanelHelper.isValidString(groupKey)) {
288288
_channel.invokeMethod<void>('removeGroup',
289-
<String, dynamic>{'groupKey': groupKey, 'groupID': _MixpanelHelper.convertValueForWeb(groupID)});
289+
<String, dynamic>{'groupKey': groupKey, 'groupID': _MixpanelHelper.ensureSerializableValue(groupID)});
290290
} else {
291291
developer.log('`removeGroup` failed: groupKey cannot be blank',
292292
name: 'Mixpanel');
@@ -303,7 +303,7 @@ class Mixpanel {
303303
void deleteGroup(String groupKey, dynamic groupID) {
304304
if (_MixpanelHelper.isValidString(groupKey)) {
305305
_channel.invokeMethod<void>('deleteGroup',
306-
<String, dynamic>{'groupKey': groupKey, 'groupID': _MixpanelHelper.convertValueForWeb(groupID)});
306+
<String, dynamic>{'groupKey': groupKey, 'groupID': _MixpanelHelper.ensureSerializableValue(groupID)});
307307
} else {
308308
developer.log('`deleteGroup` failed: groupKey cannot be blank',
309309
name: 'Mixpanel');
@@ -325,7 +325,7 @@ class Mixpanel {
325325
/// * [properties] A Map containing super properties to register
326326
Future<void> registerSuperProperties(Map<String, dynamic> properties) async {
327327
await _channel.invokeMethod<void>(
328-
'registerSuperProperties', <String, dynamic>{'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
328+
'registerSuperProperties', <String, dynamic>{'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
329329
}
330330

331331
/// Register super properties for events, only if no other super property with the
@@ -338,7 +338,7 @@ class Mixpanel {
338338
Map<String, dynamic> properties,
339339
) async {
340340
await _channel.invokeMethod<void>('registerSuperPropertiesOnce',
341-
<String, dynamic>{'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
341+
<String, dynamic>{'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
342342
}
343343

344344
/// Remove a single superProperty, so that it will not be sent with future calls to track().
@@ -472,7 +472,7 @@ class People {
472472
if (_MixpanelHelper.isValidString(prop)) {
473473
Map<String, dynamic> properties = {prop: to};
474474
_channel.invokeMethod<void>('set',
475-
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
475+
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
476476
} else {
477477
developer.log('`people set` failed: prop cannot be blank',
478478
name: 'Mixpanel');
@@ -487,7 +487,7 @@ class People {
487487
if (_MixpanelHelper.isValidString(prop)) {
488488
Map<String, dynamic> properties = {prop: to};
489489
_channel.invokeMethod<void>('setOnce',
490-
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
490+
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
491491
} else {
492492
developer.log('`people setOnce` failed: prop cannot be blank',
493493
name: 'Mixpanel');
@@ -504,7 +504,7 @@ class People {
504504
Map<String, dynamic> properties = {prop: by};
505505
if (_MixpanelHelper.isValidString(prop)) {
506506
_channel.invokeMethod<void>('increment',
507-
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
507+
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
508508
} else {
509509
developer.log('`people increment` failed: prop cannot be blank',
510510
name: 'Mixpanel');
@@ -521,12 +521,12 @@ class People {
521521
if (kIsWeb || Platform.isIOS) {
522522
Map<String, dynamic> properties = {name: value};
523523
_channel.invokeMethod<void>('append',
524-
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
524+
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
525525
} else {
526526
_channel.invokeMethod<void>('append', <String, dynamic>{
527527
'token': this._token,
528528
'name': name,
529-
'value': _MixpanelHelper.convertValueForWeb(value)
529+
'value': _MixpanelHelper.ensureSerializableValue(value)
530530
});
531531
}
532532
} else {
@@ -546,12 +546,12 @@ class People {
546546
if (kIsWeb || Platform.isIOS) {
547547
Map<String, dynamic> properties = {name: value};
548548
_channel.invokeMethod<void>('union',
549-
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
549+
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
550550
} else {
551551
_channel.invokeMethod<void>('union', <String, dynamic>{
552552
'token': this._token,
553553
'name': name,
554-
'value': _MixpanelHelper.convertValueForWeb(value)
554+
'value': _MixpanelHelper.ensureSerializableValue(value)
555555
});
556556
}
557557
} else {
@@ -571,12 +571,12 @@ class People {
571571
if (kIsWeb || Platform.isIOS) {
572572
Map<String, dynamic> properties = {name: value};
573573
_channel.invokeMethod<void>('remove',
574-
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.convertPropertiesForWeb(properties)});
574+
<String, dynamic>{'token': this._token, 'properties': _MixpanelHelper.ensureSerializableProperties(properties)});
575575
} else {
576576
_channel.invokeMethod<void>('remove', <String, dynamic>{
577577
'token': this._token,
578578
'name': name,
579-
'value': _MixpanelHelper.convertValueForWeb(value)
579+
'value': _MixpanelHelper.ensureSerializableValue(value)
580580
});
581581
}
582582
} else {
@@ -608,7 +608,7 @@ class People {
608608
_channel.invokeMethod<void>('trackCharge', <String, dynamic>{
609609
'token': this._token,
610610
'amount': amount,
611-
'properties': _MixpanelHelper.convertPropertiesForWeb(properties)
611+
'properties': _MixpanelHelper.ensureSerializableProperties(properties)
612612
});
613613
} else {
614614
developer.log('`people trackCharge` failed: amount cannot be blank',
@@ -664,7 +664,7 @@ class MixpanelGroup {
664664
'token': this._token,
665665
'groupKey': this._groupKey,
666666
'groupID': this._groupID,
667-
'properties': _MixpanelHelper.convertPropertiesForWeb(properties)
667+
'properties': _MixpanelHelper.ensureSerializableProperties(properties)
668668
});
669669
} else {
670670
developer.log('`group set` failed: prop cannot be blank',
@@ -684,7 +684,7 @@ class MixpanelGroup {
684684
'token': this._token,
685685
'groupKey': this._groupKey,
686686
'groupID': this._groupID,
687-
'properties': _MixpanelHelper.convertPropertiesForWeb(properties)
687+
'properties': _MixpanelHelper.ensureSerializableProperties(properties)
688688
});
689689
} else {
690690
developer.log('`group setOnce` failed: prop cannot be blank',
@@ -722,7 +722,7 @@ class MixpanelGroup {
722722
'groupKey': this._groupKey,
723723
'groupID': this._groupID,
724724
'name': name,
725-
'value': _MixpanelHelper.convertValueForWeb(value)
725+
'value': _MixpanelHelper.ensureSerializableValue(value)
726726
});
727727
} else {
728728
developer.log('`group remove` failed: name cannot be blank',
@@ -753,7 +753,7 @@ class MixpanelGroup {
753753
'groupKey': this._groupKey,
754754
'groupID': this._groupID,
755755
'name': name,
756-
'value': _MixpanelHelper.convertValueForWeb(value)
756+
'value': _MixpanelHelper.ensureSerializableValue(value)
757757
});
758758
}
759759
}
@@ -765,7 +765,7 @@ class _MixpanelHelper {
765765
}
766766

767767
/// Converts complex types to basic types for web platform
768-
static dynamic convertValueForWeb(dynamic value) {
768+
static dynamic ensureSerializableValue(dynamic value) {
769769
if (!kIsWeb) {
770770
return value;
771771
}
@@ -776,19 +776,19 @@ class _MixpanelHelper {
776776
} else if (value is Uri) {
777777
return value.toString();
778778
} else if (value is Map) {
779-
return value.map((k, v) => MapEntry(k, convertValueForWeb(v)));
779+
return value.map((k, v) => MapEntry(k, ensureSerializableValue(v)));
780780
} else if (value is List) {
781-
return value.map((v) => convertValueForWeb(v)).toList();
781+
return value.map((v) => ensureSerializableValue(v)).toList();
782782
} else {
783783
return value;
784784
}
785785
}
786786

787787
/// Converts properties map for web platform
788-
static Map<String, dynamic>? convertPropertiesForWeb(Map<String, dynamic>? properties) {
788+
static Map<String, dynamic>? ensureSerializableProperties(Map<String, dynamic>? properties) {
789789
if (!kIsWeb || properties == null) {
790790
return properties;
791791
}
792-
return properties.map((k, v) => MapEntry(k, convertValueForWeb(v)));
792+
return properties.map((k, v) => MapEntry(k, ensureSerializableValue(v)));
793793
}
794794
}

0 commit comments

Comments
 (0)