code.mjs 951 B

123456789101112131415161718192021222324252627282930313233343536
  1. export const environment = 'browser-module'
  2. const rendererLoaders = {
  3. pdf: () => import('/src/package/vendors/pdf'),
  4. ofd: () => import('/src/package/vendors/ofd'),
  5. dxf: () => import('/src/package/vendors/cad'),
  6. json: () => import('/src/package/vendors/text')
  7. }
  8. export function getExtension(url) {
  9. return new URL(url, window.location.href)
  10. .pathname
  11. .split('.')
  12. .pop()
  13. .toLowerCase()
  14. }
  15. export async function loadRenderer(url) {
  16. const extension = getExtension(url)
  17. const loader = rendererLoaders[extension] || rendererLoaders.json
  18. const startedAt = performance.now()
  19. const module = await loader()
  20. return {
  21. extension,
  22. module,
  23. elapsed: Math.round(performance.now() - startedAt)
  24. }
  25. }
  26. export async function preview(url, target) {
  27. const { extension, module, elapsed } = await loadRenderer(url)
  28. target.dataset.extension = extension
  29. target.dataset.loadedIn = `${elapsed}ms`
  30. return module.default
  31. }