fromConfig static method

Future<MelosWorkspace> fromConfig(
  1. MelosWorkspaceConfig workspaceConfig, {
  2. GlobalOptions? global,
  3. PackageFilters? packageFilters,
  4. required MelosLogger logger,
})

Build a MelosWorkspace from a workspace configuration.

Implementation

static Future<MelosWorkspace> fromConfig(
  MelosWorkspaceConfig workspaceConfig, {
  GlobalOptions? global,
  PackageFilters? packageFilters,
  required MelosLogger logger,
}) async {
  final allPackages = await PackageMap.resolvePackages(
    workspacePath: workspaceConfig.path,
    packages: workspaceConfig.packages,
    ignore: workspaceConfig.ignore,
    logger: logger,
  );
  final dependencyOverridePackages = await PackageMap.resolvePackages(
    workspacePath: workspaceConfig.path,
    packages: workspaceConfig.commands.bootstrap.dependencyOverridePaths,
    ignore: const [],
    logger: logger,
  );

  final filteredPackages = await allPackages.applyFilters(packageFilters);

  return MelosWorkspace(
    name: workspaceConfig.name,
    path: workspaceConfig.path,
    config: workspaceConfig,
    allPackages: allPackages,
    logger: logger,
    filteredPackages: filteredPackages,
    dependencyOverridePackages: dependencyOverridePackages,
    sdkPath: resolveSdkPath(
      configSdkPath: workspaceConfig.sdkPath,
      envSdkPath:
          currentPlatform.environment[EnvironmentVariableKey.melosSdkPath],
      commandSdkPath: global?.sdkPath,
      workspacePath: workspaceConfig.path,
    ),
  );
}