@antmove/alipay-wx
Version:
transform alipay miniprogram to wx miniprogram tool.
204 lines (195 loc) • 5.59 kB
JavaScript
const env = "dev"; // prod, 生产环境不输出
module.exports = {
info () {},
// 生命周期报错警告记录函数
/**
* msg 为发出的警告信息
* lifeName 为发出警告的生命周期名字
* **/
warnLife (msg, lifeName) {
if (env === "prod") return false;
let logInfo = {
appName: "",
appVersion: "",
pages: []
};
let page = {
pageName: "",
path: "",
open: false,
logs: []
};
let log = {
type: "",
errorType: "",
name: "",
message: "",
custom: ""
};
let p = false;
let l = false;
let a = -1;
let res = wx.getStorageSync("__antmove_loginfo");
if (res) {
logInfo = res;
}
let rs = wx.getStorageSync("_pageMsg");
page.pageName = rs.pageName;
page.path = rs.pagePath;
log.type = "life";
let reg = "";
if (msg.match(/support (\S*) attribute/)) {
reg = msg.match(/support (\S*) attribute/)[1];
}
let _name = "";
if (reg) {
_name = lifeName + "/" + reg;
} else {
_name = lifeName;
}
log.name = _name;
log.message = msg;
if (res) {
for (let i = 0; i < res.pages.length; i++) {
if (rs.pagePath === res.pages[i].path) {
p = true;
a = i;
for (let j = 0; j < res.pages[i].logs.length; j++) {
if (_name === res.pages[i].logs[j].name) {
l = true;
if (l) break;
}
}
} else {
l = true;
}
}
if (p && !l) {
logInfo.pages[a].logs.push(log);
}
if (!p && l) {
page.logs.push(log);
logInfo.pages.push(page);
}
} else {
page.logs.push(log);
logInfo.pages.push(page);
}
wx.setStorage({
key: "__antmove_loginfo",
data: logInfo
});
console.warn(msg);
},
/**
* warn 为api报警的就函数
* _desc = {
* apiName: 报警的api的名字
* errorType: 报警的api警告等级
* type: 警告描述
* }
* errorType等级分为:
* 0 - missing - 不支持该属性
* 1 - diff - 命名及格式不同
* 3 - diffType - 类型不同
* 4 - defaultValue - 默认值不同
* 5 - wrapComponent - 使用自定义组件代替
* 6 - diff tagName
* 7 - equal - 完全支持
*/
warn (
msg,
_desc = {
apiName: "",
errorType: "",
type: ""
}
) {
if (env === "prod") return false;
let logInfo = {
appName: "",
appVersion: "",
pages: []
};
let page = {
pageName: "",
path: "",
open: "",
logs: []
};
let log = {
type: "",
errorType: "",
name: "",
message: "",
custom: ""
};
let res = wx.getStorageSync("__antmove_loginfo" );
if (res) {
logInfo = res;
}
let rs = wx.getStorageSync("_pageMsg");
page.pageName = rs.pageName;
page.path = rs.pagePath;
log.type = _desc.type;
let reg = "";
if (msg.match(/support (\S*) attribute/)) {
reg = msg.match(/support (\S*) attribute/)[1];
}
let _name = "";
if (reg) {
_name = _desc.apiName + "/" + reg;
} else {
_name = _desc.apiName;
}
log.name = _name;
log.message = msg;
log.errorType = _desc.errorType;
if (!_desc.errorType && _desc.errorType !== 0) {
log.custom = "No missing attribute";
} else if (_desc.errorType === 0) {
log.custom = "不支持该属性";
} else if (_desc.errorType === 1) {
log.custom = "命名及格式不同";
} else if (_desc.errorType === 2) {
log.custom = "类型不同";
} else if (_desc.errorType === 3) {
log.custom = "默认值不同";
}
let p = false;
let l = false;
let a = -1;
if (res) {
for (let i = 0; i < res.pages.length; i++) {
if (rs.pagePath === res.pages[i].path) {
p = true;
a = i;
for (let j = 0; j < res.pages[i].logs.length; j++) {
if (_name === res.pages[i].logs[j].name) {
l = true;
if (l) break;
}
}
} else {
l = true;
}
}
if (p && !l) {
logInfo.pages[a].logs.push(log);
}
if (!p && l) {
page.logs.push(log);
logInfo.pages.push(page);
}
} else {
page.logs.push(log);
logInfo.pages.push(page);
}
wx.setStorageSync(
"__antmove_loginfo",
logInfo
);
console.warn(msg);
},
error () {}
};