DecodeOptions class final
Options that configure the output of QS.decode.
- Mixed-in types
Constructors
- DecodeOptions.new({bool? allowDots, Decoder? decoder, bool? decodeDotInKeys, bool allowEmptyLists = false, int listLimit = 20, Encoding charset = utf8, bool charsetSentinel = false, bool comma = false, Pattern delimiter = '&', int depth = 5, Duplicates duplicates = Duplicates.combine, bool ignoreQueryPrefix = false, bool interpretNumericEntities = false, num parameterLimit = 1000, bool parseLists = true, bool strictDepth = false, bool strictNullHandling = false, bool throwOnLimitExceeded = false})
-
const
Properties
- allowDots → bool
-
When
true
, decode dot notation in keys:a.b=c
→{a: {b: "c"}}
.final - allowEmptyLists → bool
-
When
true
, allow empty list values to be produced from inputs likea[]=
without coercing or discarding them.final - charset → Encoding
-
Character encoding used to decode percent‑encoded bytes in the input.
Only utf8 and latin1 are supported.
final
- charsetSentinel → bool
-
Enable opt‑in charset detection via the
utf8=✓
sentinel.final - comma → bool
-
Parse the entire input as a comma‑separated value instead of key/value
pairs. Nested maps (e.g.,
a={b:1},{c:d}
) are not supported in this mode.final - decodeDotInKeys → bool
-
Decode dots that appear in keys (e.g.,
a.b=c
).final - delimiter → Pattern
-
Delimiter used to split key/value pairs. May be a String (e.g.,
"&"
) or a RegExp for pattern‑based splitting.final - depth → int
-
Maximum nesting depth when constructing maps from bracket notation.
The default (5) is a protective limit against abuse; raise it only when
you control the inputs.
final
- duplicates → Duplicates
-
Strategy to apply when the same key appears multiple times.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- ignoreQueryPrefix → bool
-
Ignore a leading
?
query prefix if present.final - interpretNumericEntities → bool
-
Interpret HTML numeric entities like
&#...;
in tokens before decoding.final - listLimit → int
-
Maximum list index that will be honored when decoding bracket indices.
final
- parameterLimit → num
-
Maximum number of parameters to parse before applying limits.
Defaults to 1000 to guard against excessively long inputs.
final
- parseLists → bool
-
Disable list parsing entirely when
false
(treat bracket indices as string keys).final -
props
→ List<
Object?> -
The list of properties that will be used to determine whether
two instances are equal.
no setteroverride
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- strictDepth → bool
-
When
true
, exceeding depth results in a thrown error instead of a soft limit.final - strictNullHandling → bool
-
When
true
, tokens without an=
(e.g.,?flag
) decode tonull
rather than""
.final - stringify → bool?
-
If set to
true
, the toString method will be overridden to output this instance's props.no setterinherited - throwOnLimitExceeded → bool
-
When
true
, exceeding any limit (like parameterLimit or listLimit) throws instead of applying a soft cap.final
Methods
-
copyWith(
{bool? allowDots, bool? allowEmptyLists, int? listLimit, Encoding? charset, bool? charsetSentinel, bool? comma, bool? decodeDotInKeys, Pattern? delimiter, int? depth, Duplicates? duplicates, bool? ignoreQueryPrefix, bool? interpretNumericEntities, num? parameterLimit, bool? parseLists, bool? strictNullHandling, bool? strictDepth, Decoder? decoder}) → DecodeOptions - Return a new DecodeOptions with the provided overrides.
-
decoder(
String? value, {Encoding? charset}) → dynamic -
Decode a single scalar using either the custom Decoder or the default
implementation in
Utils.decode
. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited