This example demonstrates several concepts:
- modules
- partially applied functions
- functional programming techniques
The
partialGetElID
function creates a partially applied function that replaces hyphenated, underscored, or dotted names with their camelCased variant.
module.exports = {
partialGetElID: (wf, pg) =>el=>`${sepsToCamelCase(wf)}-${sepsToCamelCase(pg)}-${sepsToCamelCase(el)}`
};
var sepsToCamelCase = function(arg) {
var upperFirst = s => s.replace(s.charAt(0), s.charAt(0).toUpperCase());
var lowerFirst = s => s.replace(s.charAt(0), s.charAt(0).toLowerCase());
return (
R.pipe(
R.split(/[._-]/g),
R.map(upperFirst),
R.join(''),
lowerFirst
)(arg)
);
};
Usage:
var X = require('path/to/module');
var getID = X.partialGetElId('workflow.name', 'step_name');
getID('element-name') // returns workflowName-stepName-elementName