feat: added tools for client

This commit is contained in:
원더 2021-01-08 22:18:09 +09:00
parent 7bee44c955
commit 436ed20473
2 changed files with 31 additions and 22 deletions

29
utils/Tools.ts Normal file
View File

@ -0,0 +1,29 @@
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 }

View File

@ -1,26 +1,6 @@
import * as Query from './Query'
import * as Constants from './Constants'
import { formatNumber } from './Tools'
import ResponseWrapper from './ResponseWrapper'
import Fetch from './Fetch'
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
}
export { Query, Constants, Fetch, ResponseWrapper, formatNumber }
export { Query, Fetch, ResponseWrapper, formatNumber }