From 392b8a8d094f5e09110e58db26b82ae1b165ce7a Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 14 Oct 2026 13:23:15 +0300 Subject: [PATCH] perf: start bond search prices with details (WealthLedger/backend#71) --- .../application/catalog-discovery.service.ts | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/modules/investments/instruments/application/catalog-discovery.service.ts b/src/modules/investments/instruments/application/catalog-discovery.service.ts index 93901be..f1c62c4 100644 --- a/src/modules/investments/instruments/application/catalog-discovery.service.ts +++ b/src/modules/investments/instruments/application/catalog-discovery.service.ts @@ -304,16 +304,18 @@ export class CatalogDiscoveryService { input.query, input.instrumentType, ).slice(FIRST_RESULT_OFFSET, input.exactTicker ? tickerAmbiguityLimit : catalogSearchLimit); - const details = await Promise.all( - instruments.map((item) => - input.instrumentType === 'share' - ? this.tbank.getShare(token, item.uid) - : this.tbank.getBond(token, item.uid), + const [details, prices] = await Promise.all([ + Promise.all( + instruments.map((item) => + input.instrumentType === 'share' + ? this.tbank.getShare(token, item.uid) + : this.tbank.getBond(token, item.uid), + ), ), - ); - const prices = instruments.length - ? await this.tbank.getLastPrices(token, instruments.map((item) => item.uid)) - : []; + instruments.length + ? this.tbank.getLastPrices(token, instruments.map((item) => item.uid)) + : [], + ]); const fetchedAt = new Date(); const data = instruments.flatMap((item, index) => { const detail = details.at(index); -- 2.54.0