encode method

Map<String, List<String>> encode(
  1. S value
)

Encodes typed state into a canonical URI query multimap.

Implementation

Map<String, List<String>> encode(S value) {
  final encode = _encode;
  if (encode == null) {
    throw StateError('SearchParams.schema() has not been compiled.');
  }
  final output = SearchOutput();
  encode(value, output);
  final encoded = output._take();
  final undeclared = encoded.keys.toSet().difference(_keys!);
  if (undeclared.isNotEmpty) {
    throw StateError(
      'SearchParams.codec() encoded undeclared keys $undeclared.',
    );
  }
  return encoded;
}