// Lazy pdfmake loader with the vfs-fonts resolution quirks handled in one
// place (the vfs export shape differs between pdfmake builds). Shared by the
// client-side PDF builders (relabel report, parcel-contents report, ...).
export const loadPdfMake = async () => {
  const pdfMakeModule: any = await import('pdfmake/build/pdfmake.js')
  const pdfFontsModule: any = await import('pdfmake/build/vfs_fonts.js')
  const pdfMake = pdfMakeModule.default || pdfMakeModule

  let vfs: any = null
  if (pdfFontsModule.pdfMake?.vfs) vfs = pdfFontsModule.pdfMake.vfs
  else if (pdfFontsModule.default?.pdfMake?.vfs) vfs = pdfFontsModule.default.pdfMake.vfs
  else if (pdfFontsModule.default?.vfs) vfs = pdfFontsModule.default.vfs
  else if (pdfFontsModule.default) {
    const keys = Object.keys(pdfFontsModule.default)
    if (keys.some(k => k.endsWith('.ttf'))) vfs = pdfFontsModule.default
  }
  pdfMake.vfs = vfs
  return pdfMake
}
