diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d7e9ceb --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# 以'#'开始的行,被视为注释. +node_modules +package-lock.json +.vscode +.svn +~* +.gitattributes +dump.rdb diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..e001ecd --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,16 @@ +/* +对 VSCode Prettier 有效;建议一直要有本配置文件,否则不同版本的 Prettier 的默认配置会不同,例如 TrailingComma +对 VSCode Prettier Standard 无效,似乎是集成了不能修改的配置。 +*/ +module.exports = { + printWidth: 160, // default 80 + tabWidth: 2, // default 2 + useTabs: false, + semi: false, // default true + singleQuote: true, // default false + trailingComma: 'es5', // none (default in v 1.*), es5 (default in v2.0.0), all + bracketSpacing: true, // default true + jsxBracketSameLine: false, // default false + arrowParens: 'always', // avoid (default in v1.9.0), always (default since v2.0.0) + quoteProps: 'as-needed', // as-needed (default), consistent, preserve +} diff --git a/README.md b/README.md index 97ec0a3..0933520 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# sol.util +# sol.tool diff --git a/index.js b/index.js new file mode 100644 index 0000000..083a840 --- /dev/null +++ b/index.js @@ -0,0 +1,25 @@ +/* 基础小工具,可通用于服务端和用户端 + */ + +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) + }, +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..4f16640 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "sol.tool", + "version": "0.1.0", + "private": true, + "dependencies": { + }, + "devDependencies": { + }, + "scripts": { + "setup": "npm install" + }, + "author": "" +}