util.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. }