feat(phone-sms): support 5sim provider
(cherry picked from commit 7d10cab9765ed662b5088f791c8635fd8cc63e44)
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
// phone-sms/providers/registry.js — 接码平台注册表
|
||||
(function attachPhoneSmsProviderRegistry(root, factory) {
|
||||
root.PhoneSmsProviderRegistry = factory(root);
|
||||
})(typeof self !== 'undefined' ? self : globalThis, function createPhoneSmsProviderRegistry(root) {
|
||||
const PROVIDER_HERO_SMS = 'hero-sms';
|
||||
const PROVIDER_FIVE_SIM = '5sim';
|
||||
const DEFAULT_PROVIDER = PROVIDER_HERO_SMS;
|
||||
|
||||
function normalizeProviderId(value = '') {
|
||||
const normalized = String(value || '').trim().toLowerCase();
|
||||
return normalized === PROVIDER_FIVE_SIM ? PROVIDER_FIVE_SIM : PROVIDER_HERO_SMS;
|
||||
}
|
||||
|
||||
function getProviderModule(providerId = DEFAULT_PROVIDER) {
|
||||
const normalized = normalizeProviderId(providerId);
|
||||
if (normalized === PROVIDER_FIVE_SIM) {
|
||||
return root.PhoneSmsFiveSimProvider || null;
|
||||
}
|
||||
return root.PhoneSmsHeroSmsProvider || null;
|
||||
}
|
||||
|
||||
function createProvider(providerId = DEFAULT_PROVIDER, deps = {}) {
|
||||
const module = getProviderModule(providerId);
|
||||
if (!module || typeof module.createProvider !== 'function') {
|
||||
throw new Error(`Phone SMS provider is not loaded: ${normalizeProviderId(providerId)}`);
|
||||
}
|
||||
return module.createProvider(deps);
|
||||
}
|
||||
|
||||
function getProviderLabel(providerId = DEFAULT_PROVIDER) {
|
||||
return normalizeProviderId(providerId) === PROVIDER_FIVE_SIM ? '5sim' : 'HeroSMS';
|
||||
}
|
||||
|
||||
return {
|
||||
PROVIDER_HERO_SMS,
|
||||
PROVIDER_FIVE_SIM,
|
||||
DEFAULT_PROVIDER,
|
||||
normalizeProviderId,
|
||||
getProviderModule,
|
||||
createProvider,
|
||||
getProviderLabel,
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user