util.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import renders from './renders';
  2. export async function readBuffer(file) {
  3. return new Promise((resolve, reject) => {
  4. const reader = new FileReader();
  5. reader.onload = loadEvent => resolve(loadEvent.target.result);
  6. reader.onerror = e => reject(e);
  7. reader.readAsArrayBuffer(file);
  8. });
  9. }
  10. export async function readDataURL(buffer) {
  11. return new Promise((resolve, reject) => {
  12. const reader = new FileReader();
  13. reader.onload = loadEvent => resolve(loadEvent.target.result);
  14. reader.onerror = e => reject(e);
  15. reader.readAsDataURL(new Blob([buffer]));
  16. });
  17. }
  18. export async function readText(buffer) {
  19. return new Promise((resolve, reject) => {
  20. const reader = new FileReader();
  21. reader.onload = loadEvent => resolve(loadEvent.target.result);
  22. reader.onerror = e => reject(e);
  23. reader.readAsText(new Blob([buffer]), 'utf-8');
  24. });
  25. }
  26. export function getExtend(name) {
  27. const dot = name.lastIndexOf('.')
  28. return name.substr(dot + 1);
  29. }
  30. export async function render(buffer, type, target) {
  31. const handler = renders[type];
  32. if (handler) {
  33. return handler(buffer, target);
  34. }
  35. return renders.error(buffer, target, type);
  36. }