sdkDirParent static method

Folder? sdkDirParent(
  1. Folder folder,
  2. ResourceProvider resourceProvider
)

If folder is inside a Dart SDK, returns the directory of the SDK, and null otherwise.

Implementation

static Folder? sdkDirParent(
    Folder folder, ResourceProvider resourceProvider) {
  var pathContext = resourceProvider.pathContext;
  var dirPathCanonical = pathContext.canonicalize(folder.path);
  if (!_sdkDirParent.containsKey(dirPathCanonical)) {
    _sdkDirParent[dirPathCanonical] = null;
    for (var dir in folder.withAncestors) {
      if (_sdkDirFilePaths.every((List<String> l) {
        return l.any((f) =>
            resourceProvider.getFile(pathContext.join(dir.path, f)).exists);
      })) {
        _sdkDirParent[dirPathCanonical] = dir;
        break;
      }
    }
  }
  return _sdkDirParent[dirPathCanonical];
}