core/utils/Tools.ts
2021-01-08 22:18:09 +09:00

30 lines
878 B
TypeScript

import { UserPemissionFlags } from '../types'
import { perms } from './Constants'
function formatNumber(num: number, digits = 1) {
const si = [
{ value: 1, symbol: '' },
{ value: 1e3, symbol: '천' },
{ value: 1e4, symbol: '만' },
{ value: 1e8, symbol: '억' },
{ value: 1e12, symbol: '조' },
{ value: 1e16, symbol: '해' },
]
const rx = /\.0+$|(\.[0-9]*[1-9])0+$/
let i
for (i = si.length - 1; i > 0; i--) {
if (num >= si[i].value) {
break
}
}
return (num / si[i].value).toFixed(digits).replace(rx, '$1') + si[i].symbol
}
function checkPerm(base: number, required: number | UserPemissionFlags) {
required = typeof required === 'number' ? required : perms[required]
if (typeof required !== 'number' && !required) throw new Error('올바르지 않은 권한입니다.')
return (base & required) === required
}
export { formatNumber, checkPerm }