v1.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. var validator = require('../validator.js');
  2. var CONTENT_TYPES = {
  3. 'image/jpeg': 'jpeg',
  4. 'image/png': 'png'
  5. };
  6. var VALID_POST_DATA = {
  7. svg: 'string',
  8. type: 'string',
  9. width: 'string',
  10. height: 'string'
  11. };
  12. function verifyImageData(data) {
  13. if (typeof data !== 'string') {
  14. return;
  15. }
  16. if (data.substr(0, 5) === '<?xml') {
  17. // convert SVG XML to DataURL format
  18. data = 'data:image/svg+xml;utf8,' + encodeURIComponent(data);
  19. }
  20. return data;
  21. }
  22. function convert(config) {
  23. config = validator.verifyConfig(config, VALID_POST_DATA);
  24. config.data = verifyImageData(config.svg);
  25. delete config.svg;
  26. if (config.type in CONTENT_TYPES) {
  27. config.format = CONTENT_TYPES[config.type];
  28. config.contentType = config.type;
  29. } else {
  30. config.format = 'png';
  31. config.contentType = 'image/png';
  32. }
  33. config.width = config.width || 0;
  34. config.height = config.height || 0;
  35. config.scale = config.scale || 1;
  36. return config;
  37. }
  38. module.exports = {
  39. convert: convert
  40. };