Skip to content

Instantly share code, notes, and snippets.

@idealley
Last active July 18, 2017 06:16
Show Gist options
  • Save idealley/3691634227195f6d26027e93b9485849 to your computer and use it in GitHub Desktop.
Save idealley/3691634227195f6d26027e93b9485849 to your computer and use it in GitHub Desktop.
Currying in the real world
parseAttachements: (item, baseUrl, images, documents) => {
images = images || []
documents = documents || []
return _.mapValues(item, (v, k) => {
const parse = baseUrl => type => (attachement, size) =>
self.attachementUrl(baseUrl, type, attachement, size);
const parsePreview = parse(baseUrl)('preview')
const parseStatic = parse(baseUrl)('static')
if(images.includes(k) && k === 'highResImage' && v) {
return parsePreview(v, 1800)
}
if(images.includes(k)) {
if(_.isArray(v)) {
return _.map(v, c => {
if(c.image) {
c.image = parsePreview(c.image, 500)
}
return c;
})
}
if(k !== 'highResImage') { return parsePreview(v, 500) }
}
if(documents.includes(k) && v) {
return parseStatic(v)
}
//make sure to return false for those properties that were untouched
if(documents.includes(k) || images.includes(k) !== -1)
{
return false
}
//make sure to return all other values untouched
return v
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment