diff --git a/utils/Tools.ts b/utils/Tools.ts new file mode 100644 index 0000000..81772a5 --- /dev/null +++ b/utils/Tools.ts @@ -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 } diff --git a/utils/index.ts b/utils/index.ts index 839316b..df7ac30 100644 --- a/utils/index.ts +++ b/utils/index.ts @@ -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 }