blob: 32d90f29fc9d642773f25a9205d0a7408d36293b [file] [log] [blame]
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
extension UriExtension on Uri {
/// Whether this URI represents a path in a package's private "implementation"
/// directory.
bool get isImplementation =>
(isScheme('package') || !hasAbsolutePath) &&
pathSegments.length > 2 &&
pathSegments[1] == 'src';
/// Whether this URI and [other] are each 'package:' URIs referencing the same
/// package name.
bool isSamePackageAs(Uri other) {
return isScheme('package') &&
other.isScheme('package') &&
pathSegments.isNotEmpty &&
other.pathSegments.isNotEmpty &&
pathSegments.first == other.pathSegments.first;
}
}