diff --git a/packages/techdocs-common/src/stages/publish/awsS3.ts b/packages/techdocs-common/src/stages/publish/awsS3.ts index 861a11ed93..031658bd47 100644 --- a/packages/techdocs-common/src/stages/publish/awsS3.ts +++ b/packages/techdocs-common/src/stages/publish/awsS3.ts @@ -24,13 +24,18 @@ import { PublisherBase, PublishRequest } from './types'; import fs from 'fs-extra'; import { Readable } from 'stream'; -const streamToString = (stream: Readable): Promise => - new Promise((resolve, reject) => { - const chunks: any[] = []; - stream.on('data', chunk => chunks.push(chunk)); - stream.on('error', reject); - stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8'))); - }); +const streamToString = (stream: Readable): Promise => { + try { + return new Promise((resolve, reject) => { + const chunks: any[] = []; + stream.on('data', chunk => chunks.push(chunk)); + stream.on('error', reject); + stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8'))); + }); + } catch (e) { + throw new Error(`Unable to parse the response data, ${e.message}`); + } +}; export class AwsS3Publish implements PublisherBase { static fromConfig(config: Config, logger: Logger): PublisherBase {