From 36f69291f0fcebc2b5fee71f72792f0ae7357095 Mon Sep 17 00:00:00 2001 From: luk Date: Mon, 23 Sep 2024 11:09:34 +0800 Subject: [PATCH] standard format --- coretool.js | 61 ++++++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/coretool.js b/coretool.js index c36e0ac..925b59c 100644 --- a/coretool.js +++ b/coretool.js @@ -19,25 +19,19 @@ module.exports = { } Object.freeze(obj) const propNames = Object.getOwnPropertyNames(obj) - propNames.forEach(prop => { + propNames.forEach((prop) => { const propValue = obj[prop] // for nested object - if ( - propValue && typeof propValue === 'object' && - !Object.isFrozen(propValue) - ) { + if (propValue && typeof propValue === 'object' && !Object.isFrozen(propValue)) { deepFreeze(propValue) } // for nested array if (Array.isArray(propValue)) { - propValue.forEach(item => { - if ( - item && typeof item === 'object' && - !Object.isFrozen(item) - ) { + propValue.forEach((item) => { + if (item && typeof item === 'object' && !Object.isFrozen(item)) { deepFreeze(item) } - }); + }) Object.freeze(propValue) // Freeze the array itself } }) @@ -316,30 +310,34 @@ module.exports = { }, number_precision (number, precision = 4) { - if (isFinite(number)) // null, '', '0', [] + if (isFinite(number)) { + // 包括 null, '', '0', [] 都 isFinite return Number(Number(number).toFixed(precision)) - else // undefined, NaN, Infinity, {} + } else { + // undefined, NaN, Infinity, {} return 0 + } }, // 返回新的数组 filter_story (story) { if (Array.isArray(story)) { - return story.filter(section => Object.values(section || {}).some(val => !this.is_empty(val))) // (section.text || section.image || section.video)?.trim?.() + return story.filter((section) => Object.values(section || {}).some((val) => !this.is_empty(val))) // (section.text || section.image || section.video)?.trim?.() } else { return [] } }, - is_empty (data) { // empty: undefined, null, false, 0, NaN, '', '空格,tab, \n等', [], {} + is_empty (data) { + // empty: undefined, null, false, 0, NaN, '', '空格,tab, \n等', [], {} if (data) { - if (typeof (data) === 'string' && data.trim() === '') { + if (typeof data === 'string' && data.trim() === '') { return true } if (Array.isArray(data) && data.length === 0) { return true } - if (typeof (data) === 'object' && Object.keys(data).length === 0) { + if (typeof data === 'object' && Object.keys(data).length === 0) { return true } return false @@ -351,12 +349,13 @@ module.exports = { * 对数组中的对象,按对象的key进行sortType排序 */ keysort_array (arr, key, order = 'ASC') { - if (Array.isArray(arr) && typeof (key) === 'string' && key) { - return arr.sort((a, b) => { // 负数: a, b. 正数: b, a - if (typeof (a[key]) === 'number' && typeof (b[key]) === 'number') { - return (order === 'DESC') ? b[key] - a[key] : a[key] - b[key] - } else if (typeof (a[key]) === 'string' && typeof (b[key]) === 'string') { - return (order === 'DESC') ? b[key].localeCompare(a[key]) : a[key].localeCompare(b[key]) + if (Array.isArray(arr) && typeof key === 'string' && key) { + return arr.sort((a, b) => { + // 负数: a, b. 正数: b, a + if (typeof a[key] === 'number' && typeof b[key] === 'number') { + return order === 'DESC' ? b[key] - a[key] : a[key] - b[key] + } else if (typeof a[key] === 'string' && typeof b[key] === 'string') { + return order === 'DESC' ? b[key].localeCompare(a[key]) : a[key].localeCompare(b[key]) } else { return 0 } @@ -366,7 +365,8 @@ module.exports = { } }, - objectize_array (arr, key) { // 是 Object.keys/values/entries 的反向操作,相当于 Array.objectize,把数据转成对象 + objectize_array (arr, key) { + // 是 Object.keys/values/entries 的反向操作,相当于 Array.objectize,把数据转成对象 return arr.reduce((obj, item) => ({ ...obj, [item[key]]: item }), {}) }, @@ -381,15 +381,16 @@ module.exports = { }, has_module (module) { - if (typeof (module) === 'string' && module) { - return module.paths.some(modulesPath => fs.existsSync(path.join(modulesPath, module))) + if (typeof module === 'string' && module) { + return module.paths.some((modulesPath) => fs.existsSync(path.join(modulesPath, module))) } else { return false } }, - segment_number (sizeBytes = '') { // segment a number with a space between each 3 digits - let segmented = (sizeBytes).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ') + segment_number (sizeBytes = '') { + // segment a number with a space between each 3 digits + let segmented = sizeBytes.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ') const parts = segmented.split(' ') parts[parts.length - 3] += 'm' parts[parts.length - 2] += 'k' @@ -408,12 +409,11 @@ module.exports = { // 如果用 path.extname: // if (/^\./.test(filename)) filename = `added$filename` // path.extname('.abc') 结果为 '',所以要添加前缀 // return path.extname(filename).toLowerCase() // openAi*Ext 是包含 . 的,所以用 path.extname - }, delete_undefined (obj, { depth } = {}) { // delete all undefined properties recursively inside an obect - Object.keys(obj).forEach(key => { + Object.keys(obj).forEach((key) => { if (typeof obj[key] === 'undefined') { delete obj[key] } else if (typeof obj[key] === 'object') { @@ -421,5 +421,4 @@ module.exports = { } }) }, - }