PagePath constructor
Implementation
factory PagePath(
String path, {
bool? isAbsolute,
Map<String, dynamic>? extra,
}) {
path = path.trim();
var pathAndQuery = path.split('?');
path = pathAndQuery.first;
isAbsolute ??= path.startsWith('/');
path = _trimSlashes(path);
var segments = path.split('/').where((e) => e.isNotEmpty).toList();
if (segments.isNotEmpty) {
var normalized = p.url.normalize(segments.join('/'));
segments = p.url.split(normalized);
}
Map<String, String>? queryParameters;
if (pathAndQuery.length > 1) {
var query = pathAndQuery[1];
queryParameters = Uri(query: query).queryParameters;
}
return PagePath._(
segments,
isAbsolute: isAbsolute,
queryParameters: queryParameters,
extra: extra,
);
}