fileTypeManager.js 887 B

1234567891011121314151617181920212223242526272829303132
  1. const parsers = [
  2. require ('./filetype/sharp.js'),
  3. require ('./filetype/imagemagick.js'),
  4. require ('./filetype/meta.js')
  5. ];
  6. module.exports.createThumbnail = async function(fileObj, w, h, quality) {
  7. for (let i of parsers)
  8. {
  9. let result = await i.createThumbnail(fileObj, w, h, quality, false);
  10. if (result)
  11. return result;
  12. }
  13. return null;
  14. }
  15. module.exports.createMeta = async function(fileObj) {
  16. let result = {};
  17. for (let i of parsers)
  18. {
  19. let data = await i.parse(fileObj, Object.assign({}, result));
  20. data.value && Object.assign(result, data.value);
  21. data.reason && console.error("Failed to parse file ", fileObj.path, data.reason);
  22. }
  23. for (let i of Object.keys(result))
  24. if (result[i] === undefined)
  25. delete result[i];
  26. delete result["exifParsed"];
  27. return result;
  28. }