diff options
author | Sam Wilkins <samwilkins333@gmail.com> | 2019-09-30 11:38:38 -0400 |
---|---|---|
committer | Sam Wilkins <samwilkins333@gmail.com> | 2019-09-30 11:38:38 -0400 |
commit | 205f29bf7379f631027022bca968e3c3bee4278d (patch) | |
tree | 8c28b81f3ab4ce81186e26b8522256463584c62e | |
parent | b70adb7d18d307f9723abbc145135ca84d9ae7a2 (diff) |
await server pdf operations
-rw-r--r-- | src/server/index.ts | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/index.ts b/src/server/index.ts index 49fc78191..a265853ff 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -52,6 +52,7 @@ import { Opt } from '../new_fields/Doc'; import { DashUploadUtils } from './DashUploadUtils'; import { BatchedArray, TimeUnit } from 'array-batcher'; import { ParsedPDF } from "./PdfTypes"; +import { reject } from 'bluebird'; const download = (url: string, dest: fs.PathLike) => request.get(url).pipe(fs.createWriteStream(dest)); let youtubeApiKey: string; @@ -608,10 +609,11 @@ app.post( const { type, path: location, name } = files[key]; const filename = path.basename(location); if (filename.endsWith(".pdf")) { - var filePath = uploadDirectory + filename; - let dataBuffer = fs.readFileSync(filePath); - pdf(dataBuffer).then(async function (data: ParsedPDF) { - fs.createWriteStream(pdfDirectory + "/" + filename.substring(0, filename.length - ".pdf".length) + ".txt").write(data.text); + let dataBuffer = fs.readFileSync(uploadDirectory + filename); + const result: ParsedPDF = await pdf(dataBuffer); + await new Promise<void>(resolve => { + const path = pdfDirectory + "/" + filename.substring(0, filename.length - ".pdf".length) + ".txt"; + fs.createWriteStream(path).write(result.text, error => error === null ? resolve() : reject(error)); }); } else { await DashUploadUtils.UploadImage(uploadDirectory + filename, filename).catch(() => console.log(`Unable to process ${filename}`)); |