@megalo/api
Version:
重新封装各个端中的API,由 megalo 统一对外抛出方法名。目前微信小程序端提供的 API 最为丰富,所以 API 名称以微信小程序为准。
37 lines (31 loc) • 857 B
JavaScript
function adaptApi(key, options = {}, apiDiffs) {
let rawApi = key;
Object.keys(apiDiffs).forEach(item => {
const apiDiff = apiDiffs[item];
if (key === item) {
if (apiDiff.alias) {
rawApi = apiDiff.alias;
}
if (apiDiff.options) {
const changes = apiDiff.options.changes;
if (changes) {
changes.forEach(change => {
options[change.indv] = options[change.std];
delete options[change.std];
});
}
const set = apiDiff.options.set;
if (set) {
set.forEach(setItem => {
options[setItem.key] = typeof setItem.value === 'function' ? setItem.value(options) : setItem.value;
});
}
}
}
});
return {
rawApi,
options
};
}
export default adaptApi;