export type AdapterName = 'legacy' | 'platform';

export interface HarnessOptions {
  adapter: AdapterName;
  baseUrl: string;
}

export function parseHarnessOptions(argv: string[], env: NodeJS.ProcessEnv): HarnessOptions {
  const value = argv.find((argument) => argument.startsWith('--adapter='))?.split('=', 2)[1] ?? env.CAPABILITY_ADAPTER;
  if (value !== 'legacy' && value !== 'platform') {
    throw new Error('Required flag: --adapter=legacy|platform');
  }
  const baseUrl = value === 'legacy' ? 'https://api.press.zone' : env.CAPABILITY_BASE_URL ?? env.BASE_URL;
  if (!baseUrl) throw new Error('BASE_URL is required for platform adapter');
  return { adapter: value, baseUrl: baseUrl.replace(/\/$/, '') };
}
