jsmp-infra-plotnikov
Version:
jsmp test package that contains some mutations
36 lines (25 loc) • 722 B
JavaScript
import { isString } from 'lodash';
const operationTypes = {
Uppercase: 'uppercase',
Lowercase: 'lowercase'
};
const toUppercase = string => string.toUpperCase();
const toLowerCase = string => string.toLowerCase();
const operationToActionMap = new Map([
[operationTypes.Uppercase, toUppercase],
[operationTypes.Lowercase, toLowerCase]
]);
export default function transformString (string, operation) {
try {
if (!isString(string)) {
return null;
}
const isSupportedOperation = Object.values(operationTypes).includes(operation);
if (!isSupportedOperation) {
return string;
}
return operationToActionMap.get(operation)(string);
} catch (e) {
console.log(e);
}
}