mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-14 07:26:52 +00:00
siteConfig MAX_SAFE_INTEGER
This commit is contained in:
@@ -102,50 +102,47 @@ export const siteConfig = (key, defaultVal = null, extendConfig = {}) => {
|
||||
* @returns
|
||||
*/
|
||||
export const convertVal = val => {
|
||||
// 如果传入参数本身就是obj、数组、boolean 就无需处理
|
||||
// 如果传入参数本身就是 obj、数组、boolean,就无需处理
|
||||
if (typeof val !== 'string' || !val) {
|
||||
return val
|
||||
}
|
||||
|
||||
// 解析数字,parseInt将字符串转换为数字
|
||||
// 检测是否数字并避免数值溢出
|
||||
if (/^\d+$/.test(val)) {
|
||||
return parseInt(val)
|
||||
const parsedNum = Number(val)
|
||||
// 如果数值大于 JavaScript 最大安全整数,则作为字符串返回
|
||||
if (parsedNum > Number.MAX_SAFE_INTEGER) {
|
||||
return val + ''
|
||||
}
|
||||
return parsedNum
|
||||
}
|
||||
|
||||
// 检测是否url
|
||||
if (isUrl(val)) {
|
||||
return val
|
||||
}
|
||||
// 检测是否url
|
||||
// 检测是否为布尔值
|
||||
if (val === 'true' || val === 'false') {
|
||||
return JSON.parse(val)
|
||||
}
|
||||
|
||||
// 检测是否为 URL
|
||||
if (isUrl(val)) {
|
||||
return val
|
||||
}
|
||||
|
||||
// 配置值前可能有污染的空格
|
||||
if (val.indexOf('[') < 0 && val.indexOf('{') < 0) {
|
||||
return val
|
||||
}
|
||||
|
||||
// 转换 [] , {} , true/false 这类字符串为对象
|
||||
// 转换 [] , {} 这类字符串为对象
|
||||
try {
|
||||
// 尝试解析json
|
||||
const parsedJson = JSON.parse(val)
|
||||
if (parsedJson !== null) {
|
||||
return parsedJson
|
||||
}
|
||||
} catch (error) {
|
||||
// try {
|
||||
// // 尝试解析对象,对象解析能力不如上一步的json
|
||||
// const evalObj = eval('(' + val + ')')
|
||||
// if (evalObj !== null) {
|
||||
// return evalObj
|
||||
// }
|
||||
// } catch (error) {
|
||||
// // Ojbject 解析失败,返回原始字符串值
|
||||
// return val
|
||||
// }
|
||||
// 解析失败,返回原始字符串
|
||||
return val
|
||||
}
|
||||
|
||||
return val
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user