diff --git a/src/api.js b/src/api.js
index f6bedd0..1ec5758 100644
--- a/src/api.js
+++ b/src/api.js
@@ -9,7 +9,7 @@ const convert = ({ files, outputPath, outputType, name }) => {
execS('which convert', (error) => {
if (error) reject(error)
- const outputName = name || createOutputFileName(files, outputType)
+ const outputName = name || createOutputFileName(outputType)(files)
const command = [
'convert',
...files.map(replaceSpaceCharacters), // input files
diff --git a/src/components/Converter.jsx b/src/components/Converter.jsx
index 58ff148..73c30b0 100644
--- a/src/components/Converter.jsx
+++ b/src/components/Converter.jsx
@@ -21,8 +21,7 @@ import {
STAGING,
CONVERTING,
FAILED,
- DONE,
- operations
+ DONE
} from '../helpers/constants'
const drop = (props, monitor, component) => {
@@ -132,7 +131,7 @@ class Sanitizer extends Component {
{/* TODO make this compose better */}
diff --git a/src/helpers/functional.js b/src/helpers/functional.js
new file mode 100644
index 0000000..cf47361
--- /dev/null
+++ b/src/helpers/functional.js
@@ -0,0 +1,11 @@
+const pluck = key => obj => obj[key]
+
+const map = f => mappable => mappable.map(f)
+
+const compose = (...fns) => res => fns.reduce((accum, next) => next(accum), res)
+
+module.exports = {
+ pluck,
+ map,
+ compose
+}
diff --git a/src/helpers/util.js b/src/helpers/util.js
index 01321e3..0b4cd33 100644
--- a/src/helpers/util.js
+++ b/src/helpers/util.js
@@ -1,3 +1,5 @@
+const { pluck, compose, map } = require('./functional')
+
const replaceSpaceCharacters = str =>
str.replace(/\s/g, '\\ ')
@@ -13,7 +15,7 @@ const filterImages = files => Object.keys(files)
.map(key => files[key])
.filter(file => file.type.includes('image'))
-const createOutputFileName = (files, outputType) => `ALCHEMY-${concatFiles(files)}.${outputType || 'pdf'}`
+const createOutputFileName = outputType => files => `ALCHEMY-${concatFiles(files)}.${outputType || 'pdf'}`
function centerEllipsis(str, length = 7) {
return (str.length > (length * 2) + 1) ?
@@ -21,9 +23,8 @@ function centerEllipsis(str, length = 7) {
str
}
-// TODO curry?
-const displayOutputFileName = (files, outputType) =>
- centerEllipsis(createOutputFileName(filterImages(files).map(f => f.path), outputType))
+const displayOutputFileName = outputType =>
+ compose(filterImages, map(pluck('path')), createOutputFileName(outputType), centerEllipsis)
const uniqueFiles = (files, newArray) =>
newArray.reduce((accum, next) => {