UNPKG

sunmao-sdk

Version:

榫卯-开箱即用赋能-sdk

97 lines (91 loc) 2.8 kB
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;