@morjs/runtime-mini
Version:
mor runtime for miniprogram
86 lines • 3.35 kB
JavaScript
import * as apisToAlipay from './alipay/apisToAlipay';
import * as apisToOther from './alipay/apisToOther';
import * as otherComponentToAlipay from './alipay/componentToAlipay';
import * as alipayComponentToOther from './alipay/componentToOther';
import * as pageToAlipay from './alipay/pageToAlipay';
import * as alipayPageToOther from './alipay/pageToOther';
import * as apisToBaidu from './baidu/apis';
import * as apisToByteDance from './bytedance/apis';
import * as apisToKuaishou from './kuaishou/apis';
import * as apisToQQ from './qq/apis';
import * as apisToWechat from './wechat/apis';
import * as wechatComponentToOther from './wechat/componentToOther';
import * as wechatPageToOther from './wechat/pageToOther';
/**
* 初始化转端适配逻辑
* @param sourceType - 源码类型
* @param target - 目标平台
*/
export function initAdapters(options) {
var _a = options || {}, sourceType = _a.sourceType, target = _a.target, createApi = _a.createApi, registerComponentAdapters = _a.registerComponentAdapters, registerPageAdapters = _a.registerPageAdapters;
// 源码和目标平台一致时不转换
if (sourceType === target)
return;
// target 的 adapter 需要放在 source adapter 之前
// 和编译时自动注入逻辑保持一致
var componentAdapters = [];
var pageAdapters = [];
var apiAdapters = [];
// 支付宝转其他端
if (sourceType === 'alipay') {
switch (target) {
case 'wechat':
apiAdapters.push(apisToWechat);
break;
case 'baidu':
apiAdapters.push(apisToBaidu);
break;
case 'bytedance':
apiAdapters.push(apisToByteDance);
break;
case 'qq':
apiAdapters.push(apisToQQ);
break;
case 'kuaishou':
apiAdapters.push(apisToKuaishou);
break;
}
componentAdapters.push(alipayComponentToOther);
pageAdapters.push(alipayPageToOther);
apiAdapters.push(apisToOther);
}
// 微信转其他端
else if (sourceType === 'wechat') {
switch (target) {
case 'alipay':
componentAdapters.push(otherComponentToAlipay);
pageAdapters.push(pageToAlipay);
apiAdapters.push(apisToAlipay);
break;
case 'baidu':
apiAdapters.push(apisToBaidu);
break;
case 'bytedance':
componentAdapters.push(otherComponentToAlipay);
pageAdapters.push(pageToAlipay);
apiAdapters.push(apisToByteDance);
break;
case 'qq':
apiAdapters.push(apisToQQ);
break;
case 'kuaishou':
componentAdapters.push(wechatComponentToOther);
pageAdapters.push(wechatPageToOther);
apiAdapters.push(apisToKuaishou);
break;
}
}
// 注入多端适配
if (componentAdapters.length)
registerComponentAdapters(componentAdapters);
if (pageAdapters.length)
registerPageAdapters(pageAdapters);
if (apiAdapters.length)
createApi(apiAdapters, {}).override();
}
//# sourceMappingURL=index.js.map