import path from 'path' import { ObjectType } from '../enum' import { PojoType } from '../type/type' function getDate(format: string = 'yyyy-MM-dd', d: string = ''): string{ const date = d ? new Date(d) : new Date() const year = String(date.getFullYear()) const month = String(date.getMonth() + 1) const day = String(date.getDate()) const hour = String(date.getHours()) const min = String(date.getMinutes()) const sec = String(date.getSeconds()) return format .replace('yyyy', year) .replace('MM', month) .replace('dd', day) .replace('hh', hour) .replace('mm', min) .replace('ss', sec) } function exception(...param: Array): void{ //console.error(' %s', getDate('yyyy-MM-dd hh:mm:ss'), param.join('')) } function wran(...param: Array): void{ //console.warn(' %s', getDate('yyyy-MM-dd hh:mm:ss'), param.join('')) } function info(...param: Array): void{ //console.info(' %s', getDate('yyyy-MM-dd hh:mm:ss'), param.join('')) } function str2SmallCamel(str: string = ''): string{ if(str){ return str.slice(0, 1).toLowerCase() + str.slice(1) } return str } function getFilePackageName(filePath: string = ''): string{ if(filePath){ const sysPath = process.cwd() const dir = path.dirname(filePath) const fileName = path.basename(filePath) let packageName = dir.replace(sysPath, '') if(packageName.startsWith('\\')){ packageName = packageName.slice(1).replace(/\\/g, '.') } return packageName } return '' } function getInstanceMethods(instance: PojoType): PojoType{ if(instance){ const ownMethods = _getObjectFunctionalMethod(instance) const prototypeMethods = _getObjectFunctionalMethod(instance.__proto__) return { ownMethods, prototypeMethods } } return {} } function _getObjectFunctionalMethod(obj: PojoType): Array{ const keys = > Reflect.ownKeys(obj).filter(key => key !== 'constructor') const methods: Array = [] keys.forEach((key: string): void => { const propValue = obj[key] if(typeof propValue === ObjectType.FUNCTION){ methods.push(propValue) } }) return methods } function str2Base64(str: string = ''): string{ return Buffer.from(str).toString('base64') } function base642Str(str: string = ''): string{ return (Buffer.from(str, 'base64').toString()) } export { getDate, exception, wran, info, str2SmallCamel, getFilePackageName, getInstanceMethods, str2Base64, base642Str }