Don’t repeat yourself
You can create one transform function for repeat usage. For example for receive data from API.
let op = require('apop/op');
let formula = op(
op.toCamelCase(),
op.update({
'createdDate': state => new Date(state.createdDate),
'fullName': state => `${state.firstName} ${state.lastName}`
}),
);
formula({first_name: "petya", last_name: "ivanov", created_date: '2017-07-20T13:53:24.225Z'});
// => {
// firstName: "petya",
// lastName: "ivanov",
// createdDate: new Date('2017-07-20T13:53:24.225Z',
// fullName: "petya ivanov"
// }
formula({first_name: "katya", last_name: "petrova", created_date: '2017-07-21T14:51:23.215Z'});
// => {
// firstName: "katya",
// lastName: "petrova",
// createdDate: new Date('2017-07-21T14:51:23.215Z',
// fullName: "katya petrova"
// }
formula({first_name: "kolya", last_name: "sidorov", created_date: '2017-07-22T11:57:14.725Z'});
// => {
// firstName: "kolya",
// lastName: "sidorov",
// createdDate: new Date('2017-07-22T11:57:14.725Z',
// fullName: "kolya sidorov"
// }