Skip to content

Commit d7720f3

Browse files
authored
fix: Export required plugin meta-data types. (#226)
BEGIN_COMMIT_OVERRIDE fix: Export required plugin meta-data types. fix: Change hook data values to `dynamic` from `LDValue`. END_COMMIT_OVERRIDE A few types required for implementing hooks were exported in the common package, but not from the flutter SDK. The hook data type needs to be able to hold spans and it was an oversight to use LDValue.
1 parent 5bd9ce7 commit d7720f3

File tree

6 files changed

+52
-49
lines changed

6 files changed

+52
-49
lines changed

packages/common_client/lib/src/hooks/hook.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,9 @@ abstract base class Hook {
136136
/// newData['new-key'] = LDValue.ofString('new-value');
137137
/// return UnmodifiableMapView(newData);
138138
/// ```
139-
UnmodifiableMapView<String, LDValue> beforeEvaluation(
139+
UnmodifiableMapView<String, dynamic> beforeEvaluation(
140140
EvaluationSeriesContext hookContext,
141-
UnmodifiableMapView<String, LDValue> data) {
141+
UnmodifiableMapView<String, dynamic> data) {
142142
return data;
143143
}
144144

@@ -162,9 +162,9 @@ abstract base class Hook {
162162
/// newData['new-key'] = LDValue.ofString('new-value');
163163
/// return UnmodifiableMapView(newData);
164164
/// ```
165-
UnmodifiableMapView<String, LDValue> afterEvaluation(
165+
UnmodifiableMapView<String, dynamic> afterEvaluation(
166166
EvaluationSeriesContext hookContext,
167-
UnmodifiableMapView<String, LDValue> data,
167+
UnmodifiableMapView<String, dynamic> data,
168168
LDEvaluationDetail<LDValue> detail) {
169169
return data;
170170
}
@@ -188,9 +188,9 @@ abstract base class Hook {
188188
/// newData['new-key'] = LDValue.ofString('new-value');
189189
/// return UnmodifiableMapView(newData);
190190
/// ```
191-
UnmodifiableMapView<String, LDValue> beforeIdentify(
191+
UnmodifiableMapView<String, dynamic> beforeIdentify(
192192
IdentifySeriesContext hookContext,
193-
UnmodifiableMapView<String, LDValue> data) {
193+
UnmodifiableMapView<String, dynamic> data) {
194194
return data;
195195
}
196196

@@ -210,12 +210,12 @@ abstract base class Hook {
210210
///
211211
/// ```dart
212212
/// Map<String, LDValue> newData = Map.from(data);
213-
/// newData['new-key'] = LDValue.ofString('new-value');
213+
/// newData['new-key'] = 'new-value';
214214
/// return UnmodifiableMapView(newData);
215215
/// ```
216-
UnmodifiableMapView<String, LDValue> afterIdentify(
216+
UnmodifiableMapView<String, dynamic> afterIdentify(
217217
IdentifySeriesContext hookContext,
218-
UnmodifiableMapView<String, LDValue> data,
218+
UnmodifiableMapView<String, dynamic> data,
219219
IdentifyResult result) {
220220
return data;
221221
}

packages/common_client/lib/src/hooks/hook_runner.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ enum HookMethodNames {
2424
}
2525

2626
// Shared instance to use whenever an empty unmodifiable map is required.
27-
UnmodifiableMapView<String, LDValue> _baseData = UnmodifiableMapView({});
27+
UnmodifiableMapView<String, dynamic> _baseData = UnmodifiableMapView({});
2828

2929
/// Safely executes a hook stage method and handles any exceptions that occur.
3030
T _tryExecuteStage<T>(
@@ -44,13 +44,13 @@ T _tryExecuteStage<T>(
4444
}
4545

4646
/// Executes the beforeEvaluation stage for all hooks.
47-
List<UnmodifiableMapView<String, LDValue>> _executeBeforeEvaluation(
47+
List<UnmodifiableMapView<String, dynamic>> _executeBeforeEvaluation(
4848
LDLogger logger,
4949
List<Hook> hooks,
5050
EvaluationSeriesContext hookContext,
5151
) {
52-
final results = <UnmodifiableMapView<String, LDValue>>[];
53-
UnmodifiableMapView<String, LDValue> currentData = _baseData;
52+
final results = <UnmodifiableMapView<String, dynamic>>[];
53+
UnmodifiableMapView<String, dynamic> currentData = _baseData;
5454

5555
for (final hook in hooks) {
5656
currentData = _tryExecuteStage(
@@ -71,7 +71,7 @@ void _executeAfterEvaluation(
7171
LDLogger logger,
7272
List<Hook> hooks,
7373
EvaluationSeriesContext hookContext,
74-
List<UnmodifiableMapView<String, LDValue>> hookData,
74+
List<UnmodifiableMapView<String, dynamic>> hookData,
7575
LDEvaluationDetail<LDValue> detail,
7676
) {
7777
for (int i = hooks.length - 1; i >= 0; i--) {
@@ -89,13 +89,13 @@ void _executeAfterEvaluation(
8989
}
9090

9191
/// Executes the beforeIdentify stage for all hooks.
92-
List<UnmodifiableMapView<String, LDValue>> _executeBeforeIdentify(
92+
List<UnmodifiableMapView<String, dynamic>> _executeBeforeIdentify(
9393
LDLogger logger,
9494
List<Hook> hooks,
9595
IdentifySeriesContext hookContext,
9696
) {
97-
final results = <UnmodifiableMapView<String, LDValue>>[];
98-
UnmodifiableMapView<String, LDValue> currentData = _baseData;
97+
final results = <UnmodifiableMapView<String, dynamic>>[];
98+
UnmodifiableMapView<String, dynamic> currentData = _baseData;
9999

100100
for (final hook in hooks) {
101101
currentData = _tryExecuteStage(
@@ -116,7 +116,7 @@ void _executeAfterIdentify(
116116
LDLogger logger,
117117
List<Hook> hooks,
118118
IdentifySeriesContext hookContext,
119-
List<UnmodifiableMapView<String, LDValue>> hookData,
119+
List<UnmodifiableMapView<String, dynamic>> hookData,
120120
IdentifyResult result,
121121
) {
122122
for (int i = hooks.length - 1; i >= 0; i--) {

packages/common_client/test/hooks/hook_runner_test.dart

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ class MockLogAdapter extends Mock implements LDLogAdapter {}
1111

1212
final class TestHook extends Hook {
1313
final List<String> callLog = [];
14-
final Map<String, LDValue> dataToReturn;
14+
final Map<String, dynamic> dataToReturn;
1515
final bool shouldThrow;
1616
final String? errorMessage;
17-
final List<UnmodifiableMapView<String, LDValue>> receivedBeforeData = [];
18-
final List<UnmodifiableMapView<String, LDValue>> receivedAfterData = [];
17+
final List<UnmodifiableMapView<String, dynamic>> receivedBeforeData = [];
18+
final List<UnmodifiableMapView<String, dynamic>> receivedAfterData = [];
1919
final HookMetadata _metadata;
2020

2121
// For tracking execution order across multiple hooks
@@ -37,25 +37,25 @@ final class TestHook extends Hook {
3737
}
3838

3939
@override
40-
UnmodifiableMapView<String, LDValue> beforeEvaluation(
40+
UnmodifiableMapView<String, dynamic> beforeEvaluation(
4141
EvaluationSeriesContext hookContext,
42-
UnmodifiableMapView<String, LDValue> data,
42+
UnmodifiableMapView<String, dynamic> data,
4343
) {
4444
if (shouldThrow) {
4545
throw Exception(errorMessage ?? 'Test error in beforeEvaluation');
4646
}
4747
callLog.add('beforeEvaluation');
4848
globalExecutionOrder.add('${metadata.name}-before');
4949
receivedBeforeData.add(data);
50-
final newData = Map<String, LDValue>.from(data);
50+
final newData = Map<String, dynamic>.from(data);
5151
newData.addAll(dataToReturn);
5252
return UnmodifiableMapView(newData);
5353
}
5454

5555
@override
56-
UnmodifiableMapView<String, LDValue> afterEvaluation(
56+
UnmodifiableMapView<String, dynamic> afterEvaluation(
5757
EvaluationSeriesContext hookContext,
58-
UnmodifiableMapView<String, LDValue> data,
58+
UnmodifiableMapView<String, dynamic> data,
5959
LDEvaluationDetail<LDValue> detail,
6060
) {
6161
if (shouldThrow) {
@@ -68,24 +68,24 @@ final class TestHook extends Hook {
6868
}
6969

7070
@override
71-
UnmodifiableMapView<String, LDValue> beforeIdentify(
71+
UnmodifiableMapView<String, dynamic> beforeIdentify(
7272
IdentifySeriesContext hookContext,
73-
UnmodifiableMapView<String, LDValue> data,
73+
UnmodifiableMapView<String, dynamic> data,
7474
) {
7575
if (shouldThrow) {
7676
throw Exception(errorMessage ?? 'Test error in beforeIdentify');
7777
}
7878
callLog.add('beforeIdentify');
7979
globalExecutionOrder.add('${metadata.name}-beforeIdentify');
80-
final newData = Map<String, LDValue>.from(data);
80+
final newData = Map<String, dynamic>.from(data);
8181
newData.addAll(dataToReturn);
8282
return UnmodifiableMapView(newData);
8383
}
8484

8585
@override
86-
UnmodifiableMapView<String, LDValue> afterIdentify(
86+
UnmodifiableMapView<String, dynamic> afterIdentify(
8787
IdentifySeriesContext hookContext,
88-
UnmodifiableMapView<String, LDValue> data,
88+
UnmodifiableMapView<String, dynamic> data,
8989
IdentifyResult result,
9090
) {
9191
if (shouldThrow) {

packages/common_client/test/hooks/ld_common_client_hooks_test.dart

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,19 @@ final class TestHook extends Hook {
2323
super();
2424

2525
@override
26-
UnmodifiableMapView<String, LDValue> beforeEvaluation(
26+
UnmodifiableMapView<String, dynamic> beforeEvaluation(
2727
EvaluationSeriesContext hookContext,
28-
UnmodifiableMapView<String, LDValue> data,
28+
UnmodifiableMapView<String, dynamic> data,
2929
) {
3030
callLog.add('beforeEvaluation');
3131
evaluationContexts.add(hookContext);
3232
return data;
3333
}
3434

3535
@override
36-
UnmodifiableMapView<String, LDValue> afterEvaluation(
36+
UnmodifiableMapView<String, dynamic> afterEvaluation(
3737
EvaluationSeriesContext hookContext,
38-
UnmodifiableMapView<String, LDValue> data,
38+
UnmodifiableMapView<String, dynamic> data,
3939
LDEvaluationDetail<LDValue> detail,
4040
) {
4141
callLog.add('afterEvaluation');
@@ -45,19 +45,19 @@ final class TestHook extends Hook {
4545
}
4646

4747
@override
48-
UnmodifiableMapView<String, LDValue> beforeIdentify(
48+
UnmodifiableMapView<String, dynamic> beforeIdentify(
4949
IdentifySeriesContext hookContext,
50-
UnmodifiableMapView<String, LDValue> data,
50+
UnmodifiableMapView<String, dynamic> data,
5151
) {
5252
callLog.add('beforeIdentify');
5353
identifyContexts.add(hookContext);
5454
return data;
5555
}
5656

5757
@override
58-
UnmodifiableMapView<String, LDValue> afterIdentify(
58+
UnmodifiableMapView<String, dynamic> afterIdentify(
5959
IdentifySeriesContext hookContext,
60-
UnmodifiableMapView<String, LDValue> data,
60+
UnmodifiableMapView<String, dynamic> data,
6161
IdentifyResult result,
6262
) {
6363
callLog.add('afterIdentify');

packages/flutter_client_sdk/lib/launchdarkly_flutter_client_sdk.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,11 @@ export 'package:launchdarkly_common_client/launchdarkly_common_client.dart'
5050
IdentifySeriesContext,
5151
EvaluationSeriesContext,
5252
TrackSeriesContext,
53-
CredentialType;
53+
CredentialType,
54+
PluginSdkMetadata,
55+
PluginCredentialInfo,
56+
PluginEnvironmentMetadata,
57+
PluginMetadata;
5458

5559
export 'src/ld_client.dart' show LDClient;
5660
export 'src/config/ld_config.dart' show LDConfig, ApplicationEvents;

packages/flutter_client_sdk/test/ld_client_plugin_test.dart

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import 'dart:async';
99
import 'dart:collection';
1010

1111
import 'package:flutter_test/flutter_test.dart';
12-
import 'package:launchdarkly_common_client/launchdarkly_common_client.dart';
1312
import 'package:launchdarkly_flutter_client_sdk/launchdarkly_flutter_client_sdk.dart';
1413

1514
import 'package:flutter/widgets.dart' as widgets;
@@ -27,34 +26,34 @@ final class TestHook extends Hook {
2726
HookMetadata get metadata => _metadata;
2827

2928
@override
30-
UnmodifiableMapView<String, LDValue> beforeEvaluation(
29+
UnmodifiableMapView<String, dynamic> beforeEvaluation(
3130
EvaluationSeriesContext hookContext,
32-
UnmodifiableMapView<String, LDValue> data) {
31+
UnmodifiableMapView<String, dynamic> data) {
3332
callLog.add('beforeEvaluation:$hookContext:$data');
3433
return super.beforeEvaluation(hookContext, data);
3534
}
3635

3736
@override
38-
UnmodifiableMapView<String, LDValue> afterEvaluation(
37+
UnmodifiableMapView<String, dynamic> afterEvaluation(
3938
EvaluationSeriesContext hookContext,
40-
UnmodifiableMapView<String, LDValue> data,
39+
UnmodifiableMapView<String, dynamic> data,
4140
LDEvaluationDetail<LDValue> detail) {
4241
callLog.add('afterEvaluation:$hookContext:$data:$detail');
4342
return super.afterEvaluation(hookContext, data, detail);
4443
}
4544

4645
@override
47-
UnmodifiableMapView<String, LDValue> beforeIdentify(
46+
UnmodifiableMapView<String, dynamic> beforeIdentify(
4847
IdentifySeriesContext hookContext,
49-
UnmodifiableMapView<String, LDValue> data) {
48+
UnmodifiableMapView<String, dynamic> data) {
5049
callLog.add('beforeIdentify:$hookContext:$data');
5150
return super.beforeIdentify(hookContext, data);
5251
}
5352

5453
@override
55-
UnmodifiableMapView<String, LDValue> afterIdentify(
54+
UnmodifiableMapView<String, dynamic> afterIdentify(
5655
IdentifySeriesContext hookContext,
57-
UnmodifiableMapView<String, LDValue> data,
56+
UnmodifiableMapView<String, dynamic> data,
5857
IdentifyResult result) {
5958
callLog.add('afterIdentify:$hookContext:$data:$result');
6059
return super.afterIdentify(hookContext, data, result);

0 commit comments

Comments
 (0)