UNPKG

egg-orm-ts

Version:

Simple orm with Typeorm, for egg plugin.

237 lines 13.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getFileType = exports.isType = exports.getValid = exports.isValid = exports.padStart = exports.desensitize = exports.generateChars = exports.getRandomStr = exports.upperCamelize = exports.lowerCamelize = exports.upperFirst = exports.lowerFirst = exports.underlineCase = exports.formatCode = exports.formatPaths = exports.getModelName = void 0; const tslib_1 = require("tslib"); const path_1 = require("path"); const prettier = tslib_1.__importStar(require("prettier")); function getModelName(file) { const filename = file.split(path_1.sep).pop() || ''; return upperFirst(filename.replace(/\.ts$|\.js$/g, '')); } exports.getModelName = getModelName; function formatPaths(files) { return files.map(file => { const name = getModelName(file); file = file.split(path_1.sep).join('/'); const importPath = `../${file}`.replace(/\.ts$|\.js$/g, ''); // .replace('test/fixtures/apps/orm-ts-test/', ''); return { name, importPath, }; }); } exports.formatPaths = formatPaths; function formatCode(text) { return prettier.format(text, { semi: false, tabWidth: 2, singleQuote: true, parser: 'typescript', trailingComma: 'all', }); } exports.formatCode = formatCode; /** * 大/小驼峰式转下划线 * @param str 字符串参数 */ function underlineCase(str) { // testTest/TestTest => test_test let res = str.replace(/[A-Z]/g, s => `_${s[0].toLowerCase()}`); // 首字母大写 if (res[0] === '_') { res = res.substring(1); } return res; } exports.underlineCase = underlineCase; /** * 首字母转小写 * @param str 字符串参数 */ function lowerFirst(str) { return str[0].toLowerCase() + str.substring(1); } exports.lowerFirst = lowerFirst; /** * 首字母转大写 * @param str 字符串参数 */ function upperFirst(str) { return str[0].toUpperCase() + str.substring(1); } exports.upperFirst = upperFirst; /** * 小驼峰式 * @param str 字符串参数 */ function lowerCamelize(str) { // test-test/test_test => testTest let res = str.replace(/[_-][a-z]/ig, s => s[1].toUpperCase()); // user2role => user2Role res = res.replace(/[2][a-z]/ig, s => s[0] + s[1].toUpperCase()); // 保证首字母为小写 return lowerFirst(res); } exports.lowerCamelize = lowerCamelize; /** * 大驼峰式(即帕斯卡命名法) * @param str 字符串参数 */ function upperCamelize(str) { // 小驼峰式 const res = lowerCamelize(str); // 保证首字母为大写 return upperFirst(res); } exports.upperCamelize = upperCamelize; /** * 获取随机字符串 * - 默认大小写字母和数字 * @param len 长度 默认32 * @param extraChr 额外字符串 * @returns string */ function getRandomStr(len, extraChr) { const num = !len ? 32 : len; let baseChars = 'ABCDEFJHIJKLMNOPQRSTUVWXYZabcdefjhijklmnopqrstuvwxyz0123456789'; if (!extraChr) { baseChars += extraChr; } const bLen = baseChars.length; let randomStr = ''; for (let i = 0; i < num; i++) { randomStr += baseChars.charAt(Math.floor(Math.random() * bLen)); } return randomStr; } exports.getRandomStr = getRandomStr; /** * 替换指定字符串为等长相同字符 * - 默认用 ’*‘ 替换 * @param str 被替换字符串 * @param replaceChar 替换字符,default '*' * @returns */ function generateChars(str, replaceChar = '*') { if (!str) { return str; } return new Array(str.length + 1).join(replaceChar); } exports.generateChars = generateChars; /** * 脱敏字符串 * - 至少脱敏1位 * - charFunc 支持扩展替换规则 * @param str 字符串 * @param start 开始位数,default 1 * @param end 结束位数,default 1 * @param charFunc 脱敏函数,默认用 @function generateChars * @returns 脱敏后字符串 */ function desensitize(str, start = 1, end = 1, charFunc = generateChars) { if (!str) { return str; } if (str.length === 1) { return charFunc(str); } // 至少脱敏一位 let starLen = 1; let iStart = start; let iEnd = end; if (str.length <= iStart) { iStart = str.length - starLen; } if (str.length <= iStart + iEnd) { iEnd = str.length - iStart - starLen; } starLen = str.length - iStart - iEnd; return str.substring(0, iStart) + charFunc(str.substring(iStart, iStart + starLen)) + str.substring(str.length - iEnd); } exports.desensitize = desensitize; /** * 左补齐 * @param val 原值,默认为 '' * @param len 位数,默认 1 * @param chr 补位字符,默认‘0’ * @returns string */ function padStart(val, len, chr = '0') { if (!val || !len) { return val; } return (Array(len).join(chr) + val).slice(-(!len ? 1 : len)); } exports.padStart = padStart; /** * 判断合法值(非空) * - null, undefined, '', NaN, 0 * @param val 参数 * @returns boolean */ function isValid(val) { // 判断空白字符(fnrtv) if (typeof val === 'string' && val.replace(/(^\s*)|(\s*$)/g, '').length === 0) { return false; } return !(!val && val !== 0 && typeof val !== 'boolean'); } exports.isValid = isValid; /** * 获取合法值 * @param val 参数 * @param defaultValue 指定默认值 * @returns any */ function getValid(val, defaultValue) { if (isValid(val)) { return val; } return defaultValue; } exports.getValid = getValid; /** * 判断数据类型 * @param val 参数 * @param type 判断类型 * @returns boolean */ function isType(val, type) { if (typeof val != "object") { return (typeof val).toString() === type; } return Object.prototype.toString.call(val).replace(/^\[object (\S+)\]$/, '$1') === type; } exports.isType = isType; /** * 获取文件类型 * - 图片(image), 语音(voice), 视频(video), 普通文件(file) * - 钉钉/企业微信接口使用 * @param fileName 文件名称 * @returns fileType */ function getFileType(fileName) { if (!isValid(fileName) || fileName.indexOf('.') === -1) { return 'file'; } // 根据后缀判断类型 let suffix = fileName.substring(fileName.indexOf('.') + 1); if (suffix) { suffix = suffix.toLowerCase(); } if ('_png_jpg_jpeg_gif_'.indexOf(suffix) !== -1) { return 'image'; } else if ('_wma_mp3_wav_amr_aud_'.indexOf(suffix) !== -1) { return 'voice'; } else if ('_mp4_'.indexOf(suffix) !== -1) { return 'video'; } return 'file'; } exports.getFileType = getFileType; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBMkI7QUFDM0IsMkRBQXFDO0FBS3JDLFNBQWdCLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzdDLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUhELG9DQUdDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLEtBQWU7SUFDekMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFELG1EQUFtRDtRQUNyRCxPQUFPO1lBQ0wsSUFBSTtZQUNKLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBWkQsa0NBWUM7QUFFRCxTQUFnQixVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQzNCLElBQUksRUFBRSxLQUFLO1FBQ1gsUUFBUSxFQUFFLENBQUM7UUFDWCxXQUFXLEVBQUUsSUFBSTtRQUNqQixNQUFNLEVBQUUsWUFBWTtRQUNwQixhQUFhLEVBQUUsS0FBSztLQUNyQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBUkQsZ0NBUUM7QUFF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