-
Notifications
You must be signed in to change notification settings - Fork 0
/
caller.js
31 lines (28 loc) · 1.04 KB
/
caller.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const exec = require('child_process').execFile;
/**
* Convert wrapper
* @param {String} converter - path to the image sourse
* @param {Object} query
* @param {String} query.inputImage
* @param {String=} query.options
* @param {String=} query.outputImage
* @return {Promise}
*/
function defaultCaller(converter, query) {
if (query.inputImage.slice(0, 1) === '-') {
return Promise.reject({error: 'Please do not use file name starts with "-"'})
}
return new Promise((resolve, reject) => {
const options = query.options ? query.options.split(/\s+/) : [];
const command = [...options, query.inputImage, '-o', query.outputImage];
exec(converter, command, { encoding:'hex' }, (error, stdout, stderr) => {
if (error) {
console.log(error, stdout, stderr)
reject({error, stdout, stderr});
} else {
resolve(query.outputImage === '-' || !query.outputImage ? stdout : query.outputImage);
}
});
})
}
module.exports = defaultCaller;