Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
4f56c52
Implement orderBy util to remove lodash totally
ZIMkaRU Apr 23, 2026
6211193
Add order-by util to helpers
ZIMkaRU Apr 23, 2026
240b8dc
Move order-by util into separate file
ZIMkaRU Apr 23, 2026
79ae680
Move push-large-arr util into separate file
ZIMkaRU Apr 23, 2026
2bc4f69
Move sum-array-volumes util into separate file
ZIMkaRU Apr 23, 2026
601f4bd
Move sum-all-objects-numbers util into separate file
ZIMkaRU Apr 23, 2026
d9bc9b0
Move pick-all-lower-objects-numbers util into separate file
ZIMkaRU Apr 24, 2026
39cdc2b
Move pick-lower-objects-numbers util into separate file
ZIMkaRU Apr 24, 2026
3c05524
Move sum-objects-numbers util into separate file
ZIMkaRU Apr 24, 2026
da0c08f
Move is-not-sync-required util into separate file
ZIMkaRU Apr 24, 2026
7fa647c
Move get-date-string util into separate file
ZIMkaRU Apr 24, 2026
d22a2ca
Move coll-obj-to-arr util into separate file
ZIMkaRU Apr 24, 2026
5ff25d0
Move try-parse-json util into separate file
ZIMkaRU Apr 24, 2026
b090f70
Move check-params-auth util into separate file
ZIMkaRU Apr 24, 2026
1a6f646
Use own orderBy implementation instead of lodash
ZIMkaRU Apr 24, 2026
3f745e4
Remove lodash dep
ZIMkaRU Apr 24, 2026
b89bffd
Add desc order test case for util
ZIMkaRU Apr 27, 2026
7364970
Add asc order test case for util
ZIMkaRU Apr 27, 2026
26360ac
Add desc and asc order test case for util
ZIMkaRU Apr 27, 2026
30bfe48
Add default asc order test case for util
ZIMkaRU Apr 27, 2026
9391967
Order array of objects by name prop in desc using dot syntax
ZIMkaRU Apr 27, 2026
1690eb1
Add test case for desc array ordering using fn
ZIMkaRU Apr 27, 2026
a8f5068
Add test case for desc array ordering using index
ZIMkaRU Apr 27, 2026
1e8500a
Add test case for iterable obj ordering (Set)
ZIMkaRU Apr 27, 2026
ad49ac5
Add test case for iterable obj ordering (Map)
ZIMkaRU Apr 27, 2026
6187dd7
Add desc order test case for util with equal values
ZIMkaRU Apr 27, 2026
cd93f49
Add desc order test case for util with null and undefined
ZIMkaRU Apr 27, 2026
de8b8f2
Add asc order test case for util with null and undefined
ZIMkaRU Apr 27, 2026
4c45272
Add test case for simple array
ZIMkaRU Apr 27, 2026
e2cbc1f
Add test case for throwing err if non-iterable object is ordered
ZIMkaRU Apr 28, 2026
66b5230
Add test case for throwing err if non-iterable object is prop name list
ZIMkaRU Apr 28, 2026
b716f8f
Add desc order test case for util with null and undefined items
ZIMkaRU Apr 28, 2026
10a5ae3
Apply npm audit fix
ZIMkaRU Apr 30, 2026
90b78aa
Merge pull request #508 from ZIMkaRU/feature/implement-order-by-util-…
btrdnch May 4, 2026
0ed3cd2
Point grenache-grape to npm repository
ZIMkaRU May 1, 2026
3feab11
Point bfx-api-mock-srv to npm repository
ZIMkaRU May 1, 2026
480e6e1
Point grenache-nodejs-ws to npm repository
ZIMkaRU May 1, 2026
1347afa
Merge pull request #512 from ZIMkaRU/feature/point-grenache-grape-to-…
btrdnch May 5, 2026
fd96757
Implement timeout handling for printing pdf with puppeteer
ZIMkaRU May 5, 2026
e0ba186
Send ws event to ui if pdf gen fails with puppeteer
ZIMkaRU May 5, 2026
04d93c4
Provide common timeout param for pdf gen
ZIMkaRU May 6, 2026
4a3b792
Merge pull request #513 from ZIMkaRU/feature/implement-timeout-handli…
btrdnch May 8, 2026
d60e33f
Bump version up to 5.2.0
ZIMkaRU May 18, 2026
4280553
Update @bitfinex/bfx-report dep
ZIMkaRU May 18, 2026
b63e5f2
Update @bitfinex/bfx-report-express dep
ZIMkaRU May 18, 2026
b76dad8
Update bfx-report-ui sub-module
ZIMkaRU May 18, 2026
691eb64
Merge pull request #514 from ZIMkaRU/feature/release-version
btrdnch May 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 15 additions & 16 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 4 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bitfinex/bfx-reports-framework",
"version": "5.1.0",
"version": "5.2.0",
"description": "Bitfinex reports framework",
"main": "worker.js",
"engines": {
Expand All @@ -15,9 +15,8 @@
"@bitfinex/lib-js-util-base": "git+https://github.com/bitfinexcom/lib-js-util-base.git",
"bignumber.js": "9.1.2",
"csv": "5.5.3",
"grenache-nodejs-ws": "git+https://github.com/bitfinexcom/grenache-nodejs-ws.git",
"grenache-nodejs-ws": "1.0.0",
"inversify": "6.0.1",
"lodash": "4.17.23",
"mathjs": "14.8.1",
"moment": "2.29.4",
"puppeteer": "24.1.0",
Expand All @@ -26,11 +25,11 @@
},
"devDependencies": {
"@bitfinex/bfx-report-express": "git+https://github.com/bitfinexcom/bfx-report-express.git",
"bfx-api-mock-srv": "git+https://github.com/bitfinexcom/bfx-api-mock-srv.git",
"bfx-api-mock-srv": "2.0.0",
"chai": "4.3.4",
"concurrently": "9.2.1",
"cross-env": "10.1.0",
"grenache-grape": "git+https://github.com/bitfinexcom/grenache-grape.git",
"grenache-grape": "1.0.0",
"mocha": "11.1.0",
"nodemon": "3.1.14",
"standard": "17.0.0",
Expand Down
8 changes: 6 additions & 2 deletions workers/api.framework.report.wrk.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ const argv = require('yargs')
.argv

const {
PDFBufferUnderElectronCreationError
PDFBufferUnderElectronCreationError,
PDFBufferUnderFrameworkCreationError
} = require('@bitfinex/bfx-report/workers/loc.api/errors')

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

processorQueue.on('error:base', (err, job) => {
if (!(err instanceof PDFBufferUnderElectronCreationError)) {
if (
!(err instanceof PDFBufferUnderElectronCreationError) &&
!(err instanceof PDFBufferUnderFrameworkCreationError)
) {
return
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use strict'

const { orderBy } = require('lodash')
const { orderBy } = require('../../../helpers')

module.exports = (migrationFileDirents) => {
const metadata = migrationFileDirents.reduce((accum, dirent) => {
Expand Down
78 changes: 44 additions & 34 deletions workers/loc.api/generate-report-file/pdf-writer/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ const {

const TEMPLATE_FILE_NAMES = require('./template-file-names')
const {
PDFBufferUnderElectronCreationError
PDFBufferUnderElectronCreationError,
PDFBufferUnderFrameworkCreationError
} = require('@bitfinex/bfx-report/workers/loc.api/errors')

const { decorateInjectable } = require('../../di/utils')
Expand Down Expand Up @@ -59,43 +60,51 @@ class PdfWriter extends MainPdfWriter {
* @override
*/
async createPDFBuffer (args) {
const {
template = 'No data',
format = 'portrait',
orientation = 'Letter'
} = args ?? {}
const _args = {
template: 'No data',
format: 'portrait',
orientation: 'Letter',
timeout: 10 * 60 * 1000,
...args
}

if (this.isElectronjsEnv) {
return await this.createPDFBufferUnderElectron({
template,
format,
orientation
})
return await this.createPDFBufferUnderElectron(_args)
}

const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-gpu']
})
const page = await browser.newPage()
await page.setContent(template, {
waitUntil: 'domcontentloaded'
})
await page.emulateMediaType('print')
const u8ArrayPdf = await page.pdf({
landscape: format !== 'portrait',
format: orientation,
margins: {
top: 0,
bottom: 0,
left: 0,
right: 0
},
displayHeaderFooter: true,
footerTemplate: this.#getFooterTemplate(args)
})
await browser.close()
return await this.createPDFBufferUnderFramework(_args)
}

async createPDFBufferUnderFramework (args) {
try {
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-gpu'],
protocolTimeout: args?.timeout,
timeout: 60_000
})
const page = await browser.newPage()
await page.setContent(args?.template, {
waitUntil: 'domcontentloaded'
})
await page.emulateMediaType('print')
const u8ArrayPdf = await page.pdf({
landscape: args?.format !== 'portrait',
format: args?.orientation,
margins: {
top: 0,
bottom: 0,
left: 0,
right: 0
},
displayHeaderFooter: true,
footerTemplate: this.#getFooterTemplate(args)
})
await browser.close()

return Buffer.from(u8ArrayPdf)
return Buffer.from(u8ArrayPdf)
} catch (err) {
throw new PDFBufferUnderFrameworkCreationError(err)
}
}

async createPDFBufferUnderElectron (args) {
Expand All @@ -117,7 +126,8 @@ class PdfWriter extends MainPdfWriter {
templateFilePath: uniqueFileName,
format: args?.format,
orientation: args?.orientation,
uid
uid,
timeout: args?.timeout
}
)

Expand Down
4 changes: 3 additions & 1 deletion workers/loc.api/helpers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ const {
sumAllObjectsNumbers,
pickAllLowerObjectsNumbers,
sumArrayVolumes,
pushLargeArr
pushLargeArr,
orderBy
} = require('./utils')
const {
isSubAccountApiKeys,
Expand All @@ -35,5 +36,6 @@ module.exports = {
pickAllLowerObjectsNumbers,
sumArrayVolumes,
pushLargeArr,
orderBy,
isBfxApiStaging
}
Loading
Loading