QueryKey<T extends Object?> constructor

QueryKey<T extends Object?>(
  1. String namespace, [
  2. Iterable<Object?> parts = const <Object?>[]
])

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(',')}]';
}