UNPKG

@dashevo/wallet-lib

Version:
22 lines (18 loc) 748 B
const _ = require('lodash'); const { is } = require('../../utils'); const { InvalidStrategy, UnknownStrategy } = require('../../errors'); const buildInStrategies = require('../../utils/coinSelections/strategies'); const fromString = function fromString(strategyName) { if (!_.has(buildInStrategies, strategyName)) return new UnknownStrategy(`Unknown strategy ${strategyName}`); return buildInStrategies[strategyName]; }; const fromFunction = function fromFunction(arg) { return arg; }; /* eslint-disable no-underscore-dangle */ const _loadStrategy = function _loadStrategy(arg) { if (is.string(arg)) return fromString(arg); if (is.fn(arg)) return fromFunction(arg); throw new InvalidStrategy(arg); }; module.exports = _loadStrategy;