uriAbsolute function

Uri uriAbsolute({
  1. required Iterable<String> pathSegments,
  2. IMap<String, String>? queryParameters,
})

/ から始まる絶対パスを作成する

uriAbsolute(pathSegments: []) // '/'
uriAbsolute(pathSegments: ['project', '4e00952222a74177b2586bfb89cb5ca7']) // '/project/4e00952222a74177b2586bfb89cb5ca7'
uriAbsolute(pathSegments: ['path'], queryParameters: IMap({'position': 'left', 'empty': '', '': 'emptyValue'})) // '/path?position=left&empty&=emptyValue'

see https://zenn.dev/koji_1009/articles/d86f1bcc775af3

Implementation

Uri uriAbsolute({
  required Iterable<String> pathSegments,
  IMap<String, String>? queryParameters,
}) {
  if (pathSegments.isEmpty) {
    return Uri(path: '/', queryParameters: queryParameters?.unlock);
  }
  return Uri(
    pathSegments: ['', ...pathSegments],
    queryParameters: queryParameters?.unlock,
  );
}