function typof (v) {
|
var s = Object.prototype.toString.call(v)
|
return s.substring(8, s.length - 1)
|
}
|
|
function isDebugMode () {
|
/* eslint-disable no-undef */
|
return typeof __channelId__ === 'string' && __channelId__
|
}
|
|
function jsonStringifyReplacer (k, p) {
|
switch (typof(p)) {
|
case 'Function':
|
return 'function() { [native code] }'
|
default :
|
return p
|
}
|
}
|
|
export function log (type) {
|
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
args[_key - 1] = arguments[_key]
|
}
|
console[type].apply(console, args)
|
}
|
|
export default function formatLog () {
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
args[_key] = arguments[_key]
|
}
|
var type = args.shift()
|
if (isDebugMode()) {
|
args.push(args.pop().replace('at ', 'uni-app:///'))
|
return console[type].apply(console, args)
|
}
|
|
var msgs = args.map(function (v) {
|
var type = Object.prototype.toString.call(v).toLowerCase()
|
|
if (type === '[object object]' || type === '[object array]') {
|
try {
|
v = '---BEGIN:JSON---' + JSON.stringify(v, jsonStringifyReplacer) + '---END:JSON---'
|
} catch (e) {
|
v = type
|
}
|
} else {
|
if (v === null) {
|
v = '---NULL---'
|
} else if (v === undefined) {
|
v = '---UNDEFINED---'
|
} else {
|
var vType = typof(v).toUpperCase()
|
|
if (vType === 'NUMBER' || vType === 'BOOLEAN') {
|
v = '---BEGIN:' + vType + '---' + v + '---END:' + vType + '---'
|
} else {
|
v = String(v)
|
}
|
}
|
}
|
|
return v
|
})
|
var msg = ''
|
|
if (msgs.length > 1) {
|
var lastMsg = msgs.pop()
|
msg = msgs.join('---COMMA---')
|
|
if (lastMsg.indexOf(' at ') === 0) {
|
msg += lastMsg
|
} else {
|
msg += '---COMMA---' + lastMsg
|
}
|
} else {
|
msg = msgs[0]
|
}
|
|
console[type](msg)
|
}
|