Skip to content

Commit 788b0d5

Browse files
Cleanup of some dead or unnecessary code
1 parent b20c30c commit 788b0d5

File tree

4 files changed

+58
-88
lines changed

4 files changed

+58
-88
lines changed

packages/firebase_data_connect/firebase_data_connect/lib/src/cache/cache_data_types.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,6 @@ class ResultTree {
8181
/// The timestamp when the result was last accessed.
8282
DateTime lastAccessed;
8383

84-
/// A reference to the root `EntityNode` of the dehydrated tree.
85-
//final EntityNode rootObject;
86-
8784
/// Checks if cached data is stale
8885
bool isStale() {
8986
return DateTime.now().difference(cachedAt) > ttl;

packages/firebase_data_connect/firebase_data_connect/lib/src/cache/cache_manager.dart

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,12 @@ class Cache {
9999
Map<String, dynamic> dehydratedMap =
100100
rootNode.toJson(mode: EncodingMode.dehydrated);
101101

102-
Duration ttl = serverResponse.ttl != null
103-
? serverResponse.ttl!
104-
: Duration(seconds: 10);
102+
// if we have server ttl, that overrides maxAge from cacheSettings
103+
Duration ttl =
104+
serverResponse.ttl != null ? serverResponse.ttl! : _settings.maxAge;
105105
final resultTree = ResultTree(
106106
data: dehydratedMap,
107-
ttl: ttl, // Default TTL
107+
ttl: ttl,
108108
cachedAt: DateTime.now(),
109109
lastAccessed: DateTime.now());
110110

@@ -122,8 +122,7 @@ class Cache {
122122
}
123123

124124
// we have a provider lets ensure its initialized
125-
bool? initialized = await providerInitialization;
126-
if (initialized == null || initialized == false) {
125+
if (await providerInitialization != true) {
127126
developer.log('CacheProvider not initialized. Cache not functional');
128127
return null;
129128
}

packages/firebase_data_connect/firebase_data_connect/lib/src/cache/result_tree_processor.dart

Lines changed: 53 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -44,72 +44,60 @@ class ResultTreeProcessor {
4444
EntityNode _dehydrateNode(String queryId, dynamic data,
4545
CacheProvider cacheProvider, Set<String> impactedQueryIds) {
4646
if (data is Map<String, dynamic>) {
47-
if (data.containsKey(kGlobalIDKey)) {
48-
// data contains a unique entity id. we can normalize
49-
final guid = data[kGlobalIDKey] as String;
50-
51-
final serverValues = <String, dynamic>{};
52-
final nestedObjects = <String, EntityNode>{};
53-
final nestedObjectLists = <String, List<EntityNode>>{};
54-
55-
for (final entry in data.entries) {
56-
final key = entry.key;
57-
final value = entry.value;
58-
59-
if (value is Map<String, dynamic>) {
60-
EntityNode en =
61-
_dehydrateNode(queryId, value, cacheProvider, impactedQueryIds);
62-
nestedObjects[key] = en;
63-
} else if (value is List) {
64-
final nodeList = <EntityNode>[];
65-
for (final item in value) {
47+
// data contains a unique entity id. we can normalize
48+
final guid = data[kGlobalIDKey] as String?;
49+
50+
final serverValues = <String, dynamic>{};
51+
final nestedObjects = <String, EntityNode>{};
52+
final nestedObjectLists = <String, List<EntityNode>>{};
53+
54+
for (final entry in data.entries) {
55+
final key = entry.key;
56+
final value = entry.value;
57+
58+
if (value is Map<String, dynamic>) {
59+
EntityNode en =
60+
_dehydrateNode(queryId, value, cacheProvider, impactedQueryIds);
61+
nestedObjects[key] = en;
62+
} else if (value is List) {
63+
final nodeList = <EntityNode>[];
64+
final scalarValueList = <dynamic>[];
65+
for (final item in value) {
66+
if (item is Map<String, dynamic>) {
6667
nodeList.add(_dehydrateNode(
6768
queryId, item, cacheProvider, impactedQueryIds));
69+
} else {
70+
// assuming scalar - we don't handle array of arrays
71+
scalarValueList.add(item);
6872
}
73+
}
74+
75+
// we either do object lists or scalar lists stored with scalars
76+
// we don't handle mixed lists.
77+
if (nodeList.isNotEmpty) {
6978
nestedObjectLists[key] = nodeList;
7079
} else {
71-
serverValues[key] = value;
80+
serverValues[key] = scalarValueList;
7281
}
82+
} else {
83+
serverValues[key] = value;
7384
}
85+
}
7486

87+
if (guid != null) {
7588
final existingEdo = cacheProvider.getEntityDataObject(guid);
76-
existingEdo.referencedFrom.add(queryId);
77-
impactedQueryIds.addAll(existingEdo.referencedFrom);
89+
//existingEdo.referencedFrom.add(queryId);
7890
existingEdo.setServerValues(serverValues, queryId);
7991
cacheProvider.saveEntityDataObject(existingEdo);
92+
impactedQueryIds.addAll(existingEdo.referencedFrom);
8093

8194
return EntityNode(
8295
entity: existingEdo,
8396
nestedObjects: nestedObjects,
8497
nestedObjectLists: nestedObjectLists);
8598
} else {
86-
// GlobalID check
87-
// no entity id. scalar data must be stored inline.
88-
final scalarValues = <String, dynamic>{};
89-
final nestedObjects = <String, EntityNode>{};
90-
final nestedObjectLists = <String, List<EntityNode>>{};
91-
92-
for (final entry in data.entries) {
93-
final key = entry.key;
94-
final value = entry.value;
95-
96-
if (value is Map<String, dynamic>) {
97-
nestedObjects[key] =
98-
_dehydrateNode(queryId, value, cacheProvider, impactedQueryIds);
99-
} else if (value is List) {
100-
final nodeList = <EntityNode>[];
101-
for (final item in value) {
102-
nodeList.add(_dehydrateNode(
103-
queryId, item, cacheProvider, impactedQueryIds));
104-
}
105-
nestedObjectLists[key] = nodeList;
106-
} else {
107-
scalarValues[key] = value;
108-
}
109-
}
110-
11199
return EntityNode(
112-
scalarValues: scalarValues,
100+
scalarValues: serverValues,
113101
nestedObjects: nestedObjects,
114102
nestedObjectLists: nestedObjectLists);
115103
}
@@ -129,47 +117,34 @@ class ResultTreeProcessor {
129117

130118
Future<dynamic> _hydrateNode(
131119
EntityNode node, CacheProvider cacheProvider) async {
120+
final Map<String, dynamic> data = {};
132121
if (node.entity != null) {
133122
final edo = cacheProvider.getEntityDataObject(node.entity!.guid);
134-
final data = Map<String, dynamic>.from(edo.fields());
135-
136-
if (node.nestedObjects != null) {
137-
for (final entry in node.nestedObjects!.entries) {
138-
data[entry.key] = await _hydrateNode(entry.value, cacheProvider);
139-
}
140-
}
141-
142-
if (node.nestedObjectLists != null) {
143-
for (final entry in node.nestedObjectLists!.entries) {
144-
final list = <dynamic>[];
145-
for (final item in entry.value) {
146-
list.add(await _hydrateNode(item, cacheProvider));
147-
}
148-
data[entry.key] = list;
149-
}
150-
}
123+
data.addAll(edo.fields());
124+
}
151125

152-
return data;
153-
} else if (node.scalarValues != null) {
126+
if (node.scalarValues != null) {
154127
if (node.scalarValues!.containsKey('value')) {
155128
return node.scalarValues!['value'];
156129
}
157130
return node.scalarValues;
158-
} else if (node.nestedObjects != null) {
159-
final data = <String, dynamic>{};
131+
}
132+
if (node.nestedObjects != null) {
160133
for (final entry in node.nestedObjects!.entries) {
161134
data[entry.key] = await _hydrateNode(entry.value, cacheProvider);
162135
}
163-
return data;
164-
} else if (node.nestedObjectLists != null &&
165-
node.nestedObjectLists!.containsKey('list')) {
166-
final list = <dynamic>[];
167-
for (final item in node.nestedObjectLists!['list']!) {
168-
list.add(await _hydrateNode(item, cacheProvider));
136+
}
137+
138+
if (node.nestedObjectLists != null) {
139+
for (final entry in node.nestedObjectLists!.entries) {
140+
final list = <dynamic>[];
141+
for (final item in entry.value) {
142+
list.add(await _hydrateNode(item, cacheProvider));
143+
}
144+
data[entry.key] = list;
169145
}
170-
return list;
171-
} else {
172-
return {};
173146
}
147+
148+
return data;
174149
}
175150
}

packages/firebase_data_connect/firebase_data_connect/lib/src/core/ref.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,6 @@ class QueryRef<Data, Variables> extends OperationRef<Data, Variables> {
235235
}
236236
}
237237

238-
//String get _queryId => '$operationName::${serializer(variables as Variables)}';
239238
String get _queryId =>
240239
QueryManager.createQueryId(operationName, variables, serializer);
241240

0 commit comments

Comments
 (0)