Skip to content

Commit e7cf7cc

Browse files
committed
fix(quote): allow ETFs w/o dividendYield,netExpenseRatio (fixes #914)
1 parent f86e518 commit e7cf7cc

File tree

5 files changed

+102
-6
lines changed

5 files changed

+102
-6
lines changed

src/modules/options.schema.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,7 +1491,6 @@
14911491
}
14921492
},
14931493
"required": [
1494-
"dividendYield",
14951494
"esgPopulated",
14961495
"exchange",
14971496
"exchangeDataDelayedBy",
@@ -1503,7 +1502,6 @@
15031502
"market",
15041503
"marketState",
15051504
"netAssets",
1506-
"netExpenseRatio",
15071505
"priceHint",
15081506
"quoteType",
15091507
"region",

src/modules/quote.schema.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,7 +1418,6 @@
14181418
}
14191419
},
14201420
"required": [
1421-
"dividendYield",
14221421
"esgPopulated",
14231422
"exchange",
14241423
"exchangeDataDelayedBy",
@@ -1430,7 +1429,6 @@
14301429
"market",
14311430
"marketState",
14321431
"netAssets",
1433-
"netExpenseRatio",
14341432
"priceHint",
14351433
"quoteType",
14361434
"region",

src/modules/quote.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ describe("quote", () => {
3434
"LDO.MI", // additionalProperty: underlyingSymbol (#363)
3535
"ZRC-USD", // Low cap crypto (#403)
3636
"SOHO", // "openInterest" prop (#445)
37+
"VWRL.L", // ETF with no dividendYield, expenseRatio (#914)
3738
],
3839
});
3940

src/modules/quote.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,9 @@ export interface QuoteCurrency extends QuoteBase {
157157

158158
export interface QuoteEtf extends QuoteBase {
159159
quoteType: "ETF";
160-
dividendYield: number; // 0.54
160+
dividendYield?: number; // 0.54
161161
netAssets: number; // 328302690000
162-
netExpenseRatio: number; // 0.2
162+
netExpenseRatio?: number; // 0.2
163163
}
164164

165165
export interface QuoteEquity extends QuoteBase {

tests/fixtures/http/quote-VWRL.L.json

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
{
2+
"request": {
3+
"url": "https://query2.finance.yahoo.com/v7/finance/quote?symbols=VWRL.L&crumb=haT3oykhHqZ",
4+
"method": "GET",
5+
"headers": {
6+
"cookie": "GUCS=AV78X-IQ; GUC=AQABCAFnsytn2UIgTASn&s=AQAAAEKG89vA&g=Z7HctQ; A3=d=AQABBKvcsWcCEIGLkyl67hr2YX7XekV46j4FEgABCAErs2fZZ_bPb2UB9qMAAAcIq9yxZ63aZoI&S=AQAAAtFJa---IoVh8DRgGhGzVr4; A1S=d=AQABBKvcsWcCEIGLkyl67hr2YX7XekV46j4FEgABCAErs2fZZ_bPb2UB9qMAAAcIq9yxZ63aZoI&S=AQAAAtFJa---IoVh8DRgGhGzVr4; EuConsent=CQM66kAQM66kAAOACBENBcFoAP_gAEPgACiQKptB9G7WTXFneXp2YPskOYUX0VBJ4MAwBgCBAcABzBIUIBwGVmAzJEyIICACGAIAIGBBIABtGAhAQEAAYIAFAABIAEgAIBAAIGAAACAAAABACAAAAAAAAAAQgEAXMBQgmAYEBFoIQUhAggAgAQAAAAAEAIgBCgQAEAAAQAAICAAIACgAAgAAAAAAAAAEAFAIEQAAIAECAotkdQAAAAAAAAAAAAQACAABAAAAAIKpgAkGpUQBFgSEhAIGEECAEQUBABQIAgAACBAAAATBAUIAwAVGAiAEAIAAAAAAAAACABAAABAAhAAEAAQIAAAAAIAAgAIBAAACAAAAAAAAAAAAAAAAAAAAAAAAAGIBAggAAABBAAQUAAAAAgAAAAAAAAAIgACAAAAAAAAAAAAAAIgAAAAAAAAAAAAAAAAAAIAAAAIAAAAgBEFgAAAAAAAAAAAAAACAABAAAAAIAAA; A1=d=AQABBKvcsWcCEIGLkyl67hr2YX7XekV46j4FEgABCAErs2fZZ_bPb2UB9qMAAAcIq9yxZ63aZoI&S=AQAAAtFJa---IoVh8DRgGhGzVr4",
7+
"user-agent": "@gadicc/yahoo-finance2/0.0.1 (+https://github.com/gadicc/node-yahoo-finance2)"
8+
}
9+
},
10+
"response": {
11+
"ok": true,
12+
"status": 200,
13+
"statusText": "OK",
14+
"headers": {
15+
"age": "0",
16+
"cache-control": "public, max-age=1, stale-while-revalidate=9",
17+
"content-length": "1679",
18+
"content-type": "application/json;charset=utf-8",
19+
"date": "Fri, 23 May 2025 00:37:52 GMT",
20+
"referrer-policy": "no-referrer-when-downgrade",
21+
"server": "ATS",
22+
"strict-transport-security": "max-age=31536000",
23+
"vary": "Origin,Accept-Encoding",
24+
"x-content-type-options": "nosniff",
25+
"x-envoy-decorator-operation": "finance-quote-api--mtls-baseline-production-sg3.finance-k8s:4080/*",
26+
"x-envoy-upstream-service-time": "3",
27+
"x-frame-options": "SAMEORIGIN",
28+
"x-xss-protection": "1; mode=block",
29+
"y-rid": "1nqlnnlk2vgr0"
30+
},
31+
"bodyJson": {
32+
"quoteResponse": {
33+
"result": [
34+
{
35+
"language": "en-US",
36+
"region": "US",
37+
"quoteType": "ETF",
38+
"typeDisp": "ETF",
39+
"quoteSourceName": "Delayed Quote",
40+
"triggerable": false,
41+
"customPriceAlertConfidence": "LOW",
42+
"currency": "GBP",
43+
"regularMarketChangePercent": -1.0992047,
44+
"regularMarketPrice": 106.62,
45+
"exchange": "LSE",
46+
"messageBoardId": "finmb_215299893",
47+
"exchangeTimezoneName": "Europe/London",
48+
"exchangeTimezoneShortName": "BST",
49+
"gmtOffSetMilliseconds": 3600000,
50+
"market": "gb_market",
51+
"esgPopulated": false,
52+
"regularMarketDayHigh": 0,
53+
"regularMarketDayRange": "0.0 - 0.0",
54+
"regularMarketDayLow": 0,
55+
"regularMarketVolume": 166,
56+
"regularMarketPreviousClose": 107.805,
57+
"bid": 0,
58+
"ask": 0,
59+
"bidSize": 378,
60+
"askSize": 5000,
61+
"fullExchangeName": "LSE",
62+
"regularMarketOpen": 0,
63+
"averageDailyVolume3Month": 106823,
64+
"averageDailyVolume10Day": 63811,
65+
"fiftyTwoWeekLowChange": 106.62,
66+
"fiftyTwoWeekRange": "0.0 - 115.64",
67+
"fiftyTwoWeekHighChange": -9.019997,
68+
"fiftyTwoWeekHighChangePercent": -0.078000665,
69+
"fiftyTwoWeekLow": 0,
70+
"fiftyTwoWeekHigh": 115.64,
71+
"fiftyTwoWeekChangePercent": 5.1653504,
72+
"netAssets": 37080572000,
73+
"fiftyDayAverage": 103.2779,
74+
"fiftyDayAverageChange": 3.342102,
75+
"fiftyDayAverageChangePercent": 0.03236028,
76+
"twoHundredDayAverage": 107.39438,
77+
"twoHundredDayAverageChange": -0.7743759,
78+
"twoHundredDayAverageChangePercent": -0.0072105816,
79+
"sourceInterval": 15,
80+
"exchangeDataDelayedBy": 15,
81+
"tradeable": false,
82+
"cryptoTradeable": false,
83+
"hasPrePostMarketData": false,
84+
"firstTradeDateMilliseconds": 1337670000000,
85+
"priceHint": 2,
86+
"regularMarketChange": -1.1849976,
87+
"shortName": "VANGUARD FUNDS PLC VANGUARD FTS",
88+
"longName": "Vanguard FTSE All-World UCITS ETF",
89+
"corporateActions": [],
90+
"regularMarketTime": 1747928119,
91+
"marketState": "PREPRE",
92+
"symbol": "VWRL.L"
93+
}
94+
],
95+
"error": null
96+
}
97+
}
98+
}
99+
}

0 commit comments

Comments
 (0)