sunmao-sdk
Version:
榫卯-开箱即用赋能-sdk
97 lines (91 loc) • 2.8 kB
JavaScript
import { message } from "antd";
import { sunmaoLog } from "./net/api";
import { isObject } from "lodash";
import * as localStorageUtils from "./utils/localStorageUtils";
import * as commonUtils from "./utils/commonUtils";
import { initLog } from "./fetchLogUtils";
const DEFAULTCPINFO = JSON.stringify({
host: "", // 服务器请求域名
projectId: 0, // 项目id
appId: 0, // 应用id
user: "", // 当前用户
errorToast: false, // 报错提示形式, 默认打印log
requestFunc: null, // 自定义请求函数
extParams: {}, // 额外请求传参,例如hsf所需参数
sunmao_Params: {
projectId: 0, // 项目id
appId: 0, // 应用id
user: "", // 当前用户
env: "" // 网络环境
},
postOk: "" // 报错提示形式.请求返回自定义数据结构,未设则根据sdk,ok:true,status:200为请求成功
});
const CP = {
logConfigMap: {}, // 日志缓存
customConfigMap: {}, // 用户自定义配置缓存
schemaConfigMap: {}, // 页面配置缓存
info: JSON.parse(DEFAULTCPINFO),
getSunmaoParams: () => CP.getCPInfo().sunmao_Params || {},
getCPInfo: () => CP.info || JSON.parse(DEFAULTCPINFO),
init: config => {
// 获取 ext 缓存
CP.info.extParams = localStorageUtils.getObject(
"bucInfo-CP.info.extParams"
);
if (isObject(config)) {
// 初始化 应用 信息
CP.info = {
...CP.getCPInfo(),
...config
};
// 榫卯平台所需参数
CP.info.sunmao_Params = {
// 初始化常量, 不常修改
projectId: CP.info.projectId, // 项目id
appId: CP.info.appId, // 应用id
user: CP.info.user, // 当前用户
env: CP.info.env // 网络环境
};
}
},
setExtParams: extParams => {
if (isObject(extParams)) {
CP.info.extParams = extParams;
// 设置 ext 缓存
localStorageUtils.setObject(
"bucInfo-CP.info.extParams",
extParams,
false
);
}
},
error: msg => {
if (msg.includes(sunmaoLog)) return;
if (CP.getCPInfo().errorToast) message.error(msg);
else console.error(msg);
},
openLog: async (whiteList, whiteMatch) => {
const oldFetch = fetch;
//whiteMatch 支持自定义拦截函数
initLog(whiteList, oldFetch, whiteMatch);
},
behaviorLog: behaviorName => {
// 行为日志
setTimeout(() => {
commonUtils.behaviorLog(behaviorName);
}, 1);
}
};
initAsync();
async function initAsync() {
CP.logConfigMap = await localStorageUtils.getObjectAsync(
"sunmao_logConfigMap"
);
CP.customConfigMap = await localStorageUtils.getObjectAsync(
"sunmao_customConfigMap"
);
CP.schemaConfigMap = await localStorageUtils.getObjectAsync(
"sunmao_schemaConfigMap"
);
}
export default CP;