Skip to content

Commit e26bbea

Browse files
authored
Merge pull request #515 from bitfinexcom/staging
Release version to master
2 parents 63060fc + 691eb64 commit e26bbea

30 files changed

Lines changed: 815 additions & 370 deletions

package-lock.json

Lines changed: 15 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@bitfinex/bfx-reports-framework",
3-
"version": "5.1.0",
3+
"version": "5.2.0",
44
"description": "Bitfinex reports framework",
55
"main": "worker.js",
66
"engines": {
@@ -15,9 +15,8 @@
1515
"@bitfinex/lib-js-util-base": "git+https://github.com/bitfinexcom/lib-js-util-base.git",
1616
"bignumber.js": "9.1.2",
1717
"csv": "5.5.3",
18-
"grenache-nodejs-ws": "git+https://github.com/bitfinexcom/grenache-nodejs-ws.git",
18+
"grenache-nodejs-ws": "1.0.0",
1919
"inversify": "6.0.1",
20-
"lodash": "4.17.23",
2120
"mathjs": "14.8.1",
2221
"moment": "2.29.4",
2322
"puppeteer": "24.1.0",
@@ -26,11 +25,11 @@
2625
},
2726
"devDependencies": {
2827
"@bitfinex/bfx-report-express": "git+https://github.com/bitfinexcom/bfx-report-express.git",
29-
"bfx-api-mock-srv": "git+https://github.com/bitfinexcom/bfx-api-mock-srv.git",
28+
"bfx-api-mock-srv": "2.0.0",
3029
"chai": "4.3.4",
3130
"concurrently": "9.2.1",
3231
"cross-env": "10.1.0",
33-
"grenache-grape": "git+https://github.com/bitfinexcom/grenache-grape.git",
32+
"grenache-grape": "1.0.0",
3433
"mocha": "11.1.0",
3534
"nodemon": "3.1.14",
3635
"standard": "17.0.0",

workers/api.framework.report.wrk.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ const argv = require('yargs')
3636
.argv
3737

3838
const {
39-
PDFBufferUnderElectronCreationError
39+
PDFBufferUnderElectronCreationError,
40+
PDFBufferUnderFrameworkCreationError
4041
} = require('@bitfinex/bfx-report/workers/loc.api/errors')
4142

4243
const appDeps = require('./loc.api/di/app.deps')
@@ -208,7 +209,10 @@ class WrkReportFrameWorkApi extends WrkReportServiceApi {
208209
await wsTransport.start()
209210

210211
processorQueue.on('error:base', (err, job) => {
211-
if (!(err instanceof PDFBufferUnderElectronCreationError)) {
212+
if (
213+
!(err instanceof PDFBufferUnderElectronCreationError) &&
214+
!(err instanceof PDFBufferUnderFrameworkCreationError)
215+
) {
212216
return
213217
}
214218

workers/loc.api/di/factories/helpers/get-migration-file-metadata.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict'
22

3-
const { orderBy } = require('lodash')
3+
const { orderBy } = require('../../../helpers')
44

55
module.exports = (migrationFileDirents) => {
66
const metadata = migrationFileDirents.reduce((accum, dirent) => {

workers/loc.api/generate-report-file/pdf-writer/index.js

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ const {
1616

1717
const TEMPLATE_FILE_NAMES = require('./template-file-names')
1818
const {
19-
PDFBufferUnderElectronCreationError
19+
PDFBufferUnderElectronCreationError,
20+
PDFBufferUnderFrameworkCreationError
2021
} = require('@bitfinex/bfx-report/workers/loc.api/errors')
2122

2223
const { decorateInjectable } = require('../../di/utils')
@@ -59,43 +60,51 @@ class PdfWriter extends MainPdfWriter {
5960
* @override
6061
*/
6162
async createPDFBuffer (args) {
62-
const {
63-
template = 'No data',
64-
format = 'portrait',
65-
orientation = 'Letter'
66-
} = args ?? {}
63+
const _args = {
64+
template: 'No data',
65+
format: 'portrait',
66+
orientation: 'Letter',
67+
timeout: 10 * 60 * 1000,
68+
...args
69+
}
6770

6871
if (this.isElectronjsEnv) {
69-
return await this.createPDFBufferUnderElectron({
70-
template,
71-
format,
72-
orientation
73-
})
72+
return await this.createPDFBufferUnderElectron(_args)
7473
}
7574

76-
const browser = await puppeteer.launch({
77-
args: ['--no-sandbox', '--disable-gpu']
78-
})
79-
const page = await browser.newPage()
80-
await page.setContent(template, {
81-
waitUntil: 'domcontentloaded'
82-
})
83-
await page.emulateMediaType('print')
84-
const u8ArrayPdf = await page.pdf({
85-
landscape: format !== 'portrait',
86-
format: orientation,
87-
margins: {
88-
top: 0,
89-
bottom: 0,
90-
left: 0,
91-
right: 0
92-
},
93-
displayHeaderFooter: true,
94-
footerTemplate: this.#getFooterTemplate(args)
95-
})
96-
await browser.close()
75+
return await this.createPDFBufferUnderFramework(_args)
76+
}
77+
78+
async createPDFBufferUnderFramework (args) {
79+
try {
80+
const browser = await puppeteer.launch({
81+
args: ['--no-sandbox', '--disable-gpu'],
82+
protocolTimeout: args?.timeout,
83+
timeout: 60_000
84+
})
85+
const page = await browser.newPage()
86+
await page.setContent(args?.template, {
87+
waitUntil: 'domcontentloaded'
88+
})
89+
await page.emulateMediaType('print')
90+
const u8ArrayPdf = await page.pdf({
91+
landscape: args?.format !== 'portrait',
92+
format: args?.orientation,
93+
margins: {
94+
top: 0,
95+
bottom: 0,
96+
left: 0,
97+
right: 0
98+
},
99+
displayHeaderFooter: true,
100+
footerTemplate: this.#getFooterTemplate(args)
101+
})
102+
await browser.close()
97103

98-
return Buffer.from(u8ArrayPdf)
104+
return Buffer.from(u8ArrayPdf)
105+
} catch (err) {
106+
throw new PDFBufferUnderFrameworkCreationError(err)
107+
}
99108
}
100109

101110
async createPDFBufferUnderElectron (args) {
@@ -117,7 +126,8 @@ class PdfWriter extends MainPdfWriter {
117126
templateFilePath: uniqueFileName,
118127
format: args?.format,
119128
orientation: args?.orientation,
120-
uid
129+
uid,
130+
timeout: args?.timeout
121131
}
122132
)
123133

workers/loc.api/helpers/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ const {
1111
sumAllObjectsNumbers,
1212
pickAllLowerObjectsNumbers,
1313
sumArrayVolumes,
14-
pushLargeArr
14+
pushLargeArr,
15+
orderBy
1516
} = require('./utils')
1617
const {
1718
isSubAccountApiKeys,
@@ -35,5 +36,6 @@ module.exports = {
3536
pickAllLowerObjectsNumbers,
3637
sumArrayVolumes,
3738
pushLargeArr,
39+
orderBy,
3840
isBfxApiStaging
3941
}

0 commit comments

Comments
 (0)