lamassu-server/new-lamassu-admin/src/utils/config.js
2020-05-09 20:14:46 +01:00

40 lines
1,005 B
JavaScript

import * as R from 'ramda'
const namespaces = {
CASH_OUT: 'denominations',
WALLETS: 'wallets',
OPERATOR_INFO: 'operatorInfo',
NOTIFICATIONS: 'notifications',
SERVICES: 'services',
LOCALE: 'locale',
COMMISSIONS: 'commissions',
CONTACT_INFO: 'operatorInfo',
RECEIPT: 'receipt',
COIN_ATM_RADAR: 'coinAtmRadar',
TERMS_CONDITIONS: 'termsConditions'
}
const mapKeys = R.curry((fn, obj) =>
R.fromPairs(R.map(R.adjust(0, fn), R.toPairs(obj)))
)
const filterByKey = R.curry((fn, obj) =>
R.fromPairs(R.filter(it => fn(it[0]), R.toPairs(obj)))
)
const stripl = R.curry((q, str) =>
R.startsWith(q, str) ? str.slice(q.length) : str
)
const filtered = key => filterByKey(R.startsWith(`${key}_`))
const stripped = key => mapKeys(stripl(`${key}_`))
const fromNamespace = R.curry((key, config) =>
R.compose(stripped(key), filtered(key))(config)
)
const toNamespace = R.curry((key, config) =>
mapKeys(it => `${key}_${it}`)(config)
)
export { fromNamespace, toNamespace, namespaces }