resolveGeneratorTenantId function

String resolveGeneratorTenantId(
  1. WhiteLabelConfig config, {
  2. String? explicitTenantId,
  3. Map<String, String>? environment,
})

Resolves which tenant a generate run is for: explicitTenantId (the CLI's --tenant flag) wins if given; otherwise the TENANT_ID environment variable (same variable name this ecosystem's apps already use for String.fromEnvironment('TENANT_ID', ...) in the compiled app itself — set by whatever build script invokes generate, e.g. tool/build_runner.dart's regenerateWhiteLabelG); otherwise default_tenant, so a plain dart run white_label_kit:generate with no flag/environment variable still works during day-to-day development.

Implementation

String resolveGeneratorTenantId(
  WhiteLabelConfig config, {
  String? explicitTenantId,
  Map<String, String>? environment,
}) {
  if (explicitTenantId != null) {
    if (config.has(explicitTenantId)) {
      return explicitTenantId;
    }
    throw ArgumentError.value(
      explicitTenantId,
      'explicitTenantId',
      'No such tenant in white_label.yaml',
    );
  }
  final Map<String, String> env = environment ?? Platform.environment;
  final String? envTenantId = env['TENANT_ID'];
  if (envTenantId != null && config.has(envTenantId)) {
    return envTenantId;
  }
  return config.defaultTenant;
}