createWorkspace method

Future<MelosWorkspace> createWorkspace({
  1. GlobalOptions? global,
  2. PackageFilter? filter,
})
inherited

Implementation

Future<MelosWorkspace> createWorkspace({
  GlobalOptions? global,
  PackageFilter? filter,
}) async {
  var filterWithEnv = filter;

  if (currentPlatform.environment.containsKey(envKeyMelosPackages)) {
    // MELOS_PACKAGES environment variable is a comma delimited list of
    // package names - used instead of filters if it is present.
    // This can be user defined or can come from package selection in
    // `melos run`.
    filterWithEnv = PackageFilter(
      scope: currentPlatform.environment[envKeyMelosPackages]!
          .split(',')
          .map(
            (e) => createGlob(e, currentDirectoryPath: config.path),
          )
          .toList(),
    );
  }

  return (await MelosWorkspace.fromConfig(
    config,
    global: global,
    filter: filterWithEnv,
    logger: logger,
  ))
    ..validate();
}