32 lines
1017 B
TypeScript
32 lines
1017 B
TypeScript
/**
|
|
* On-ramp provider registry — discovers available providers and selects defaults.
|
|
*
|
|
* Priority order: transak > coinbase > ramp (first available wins as default).
|
|
*/
|
|
|
|
import type { OnrampProvider, OnrampProviderId } from './onramp-provider';
|
|
import { TransakOnrampAdapter } from './transak-onramp';
|
|
import { CoinbaseOnrampAdapter } from './coinbase-onramp';
|
|
import { RampOnrampAdapter } from './ramp-onramp';
|
|
|
|
const providers: OnrampProvider[] = [
|
|
new TransakOnrampAdapter(),
|
|
new CoinbaseOnrampAdapter(),
|
|
new RampOnrampAdapter(),
|
|
];
|
|
|
|
export function getAvailableProviders(): { id: OnrampProviderId; name: string }[] {
|
|
return providers
|
|
.filter((p) => p.isAvailable())
|
|
.map((p) => ({ id: p.id, name: p.name }));
|
|
}
|
|
|
|
export function getProvider(id: OnrampProviderId): OnrampProvider | null {
|
|
const p = providers.find((p) => p.id === id);
|
|
return p && p.isAvailable() ? p : null;
|
|
}
|
|
|
|
export function getDefaultProvider(): OnrampProvider | null {
|
|
return providers.find((p) => p.isAvailable()) || null;
|
|
}
|