/* 基础小工具,可通用于服务端和用户端 */ module.exports = { sleep: (ms) => new Promise((resolve, reject) => setTimeout(resolve, ms)), parseJsonPossible(value) { try { return JSON.parse(value) } catch (e) { return value } }, sortAndFilterJson({ fields, entity, exclude = [] } = {}) { const newEntity = {} for (let key of Object.keys(fields).sort()) { if (typeof (entity[key] !== 'undefined') && !Number.isNaN(entity[key]) && entity[key] !== Infinity) { newEntity[key] = entity[key] } } for (let exkey of exclude) { delete newEntity[exkey] } return JSON.stringify(newEntity) }, name2port(name='') { let port = name.toLowerCase() .replace(/[abc]/g, 2) .replace(/[def]/g, 3) .replace(/[ghi]/g, 4) .replace(/[jkl]/g, 5) .replace(/[mno]/g, 6) .replace(/[pqrs]/g, 7) .replace(/[tuv]/g, 8) .replace(/[wxyz]/g, 9) return parseInt(port) } }