QueryKey<T extends Object?> constructor
Creates a key from a stable namespace and optional JSON-like parts.
Implementation
QueryKey(this.namespace, [Iterable<Object?> parts = const <Object?>[]])
: parts = _freezeParts(parts) {
if (namespace.isEmpty) {
throw ArgumentError.value(namespace, 'namespace', 'Must not be empty.');
}
_encodedParts = List<String>.generate(
this.parts.length,
(index) => jsonEncode(this.parts[index]),
growable: false,
);
final encodedNamespace = jsonEncode(namespace);
_canonical = _encodedParts.isEmpty
? '[$encodedNamespace]'
: '[$encodedNamespace,${_encodedParts.join(',')}]';
}