refactor: arbitrary components in _parseIdentifierIntoUri
This commit is contained in:
parent
fb0ea2efc3
commit
3b1c6e3d2b
|
|
@ -91,14 +91,13 @@ extension MatrixIdExtension on String {
|
||||||
(m) => Uri.encodeComponent(m.group(0))))
|
(m) => Uri.encodeComponent(m.group(0))))
|
||||||
.replaceAll('#', '%23'));
|
.replaceAll('#', '%23'));
|
||||||
} else {
|
} else {
|
||||||
final match =
|
|
||||||
RegExp(r'^([#!@+][^:]*:[^\/?]*)(?:\/(\$[^?]*))?(?:\?(.*))?$')
|
|
||||||
.firstMatch(this);
|
|
||||||
if (match == null) return null;
|
|
||||||
return Uri(
|
return Uri(
|
||||||
pathSegments:
|
pathSegments: RegExp(r'/((?:[#!@+][^:]*:)?[^/?]*)(?:\?.*$)?')
|
||||||
[match.group(1), match.group(2)].where((x) => x != null),
|
.allMatches('/$this')
|
||||||
query: match.group(3));
|
.map((m) => m.group(1)),
|
||||||
|
query: RegExp(r'(?:/(?:[#!@+][^:]*:)?[^/?]*)*\?(.*$)')
|
||||||
|
.firstMatch('/$this')
|
||||||
|
?.group(1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue