async function parsePDF()

in resume-extraction/app/api/extract_resume/route.ts [48:87]


async function parsePDF(uploadedFiles: FormDataEntryValue[]): Promise<string> {
  return new Promise((resolve, reject) => {
    if (uploadedFiles && uploadedFiles.length > 0) {
      const uploadedFile = uploadedFiles[0]
      if (uploadedFile instanceof File) {
        const tempFilePath = `/tmp/resume.pdf`

        uploadedFile.arrayBuffer().then(arrayBuffer => {
          const fileBuffer = Buffer.from(arrayBuffer)

          fs.writeFile(tempFilePath, fileBuffer)
            .then(() => {
              // Parse the pdf using pdf2json
              const pdfParser = new (PDFParser as any)(null, 1)

              pdfParser.on('pdfParser_dataError', (errData: any) => {
                console.log(errData.parserError)
                reject(errData.parserError)
              })

              pdfParser.on('pdfParser_dataReady', () => {
                const rawTextContent = (pdfParser as any).getRawTextContent()
                resolve(rawTextContent)
              })

              pdfParser.loadPDF(tempFilePath)
            })
            .catch(error => {
              console.error('Error writing file:', error)
              reject(error)
            })
        })
      } else {
        reject(new Error('Uploaded file is not of type File'))
      }
    } else {
      reject(new Error('No files uploaded'))
    }
  })
}