Qwen2API-A / src /utils /tools.js
github-actions[bot]
Sync from GitHub Viciy2023/Qwen2API-A@ae093476e9bc5b0a599620b5925df3a20057038e
f120063
const crypto = require('crypto')
const { jwtDecode } = require('jwt-decode')
const { logger } = require('./logger')
const isJson = (str) => {
try {
JSON.parse(str)
return true
} catch (error) {
return false
}
}
const sleep = async (ms) => {
return await new Promise(resolve => setTimeout(resolve, ms))
}
const sha256Encrypt = (text) => {
if (typeof text !== 'string') {
logger.error('输入必须是字符串类型', 'TOOLS')
throw new Error('输入必须是字符串类型')
}
const hash = crypto.createHash('sha256')
hash.update(text, 'utf-8')
return hash.digest('hex')
}
const JwtDecode = (token) => {
try {
const decoded = jwtDecode(token, { complete: true })
return decoded
} catch (error) {
logger.error('解析JWT失败', 'JWT', '', error)
return null
}
}
/**
* 生成UUID v4
* 使用Node.js内置的crypto.randomUUID()
* @returns {string} UUID v4字符串
*/
const generateUUID = () => {
return crypto.randomUUID()
}
module.exports = {
isJson,
sleep,
sha256Encrypt,
JwtDecode,
generateUUID
}