corexxx 1.0.18 → 1.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,25 +1,31 @@
1
1
  export declare namespace yahooFin {
2
2
  type TStockInfo = {
3
+ _id: string;
3
4
  ltp: number;
4
5
  open: number;
5
6
  symbol: string;
6
7
  name: string;
7
- exchange: string;
8
+ exchange: TExchange;
8
9
  volume: number;
9
10
  high: number;
10
11
  low: number;
11
- week52High: number;
12
- week52Low: number;
13
- avgVolume: number;
14
12
  change: number;
15
13
  pChange: number;
14
+ week52High?: number;
15
+ week52Low?: number;
16
+ avgVolume?: number;
16
17
  yAnalystRating?: string;
17
18
  pre_ltp?: number;
18
19
  pre_pChange?: number;
19
20
  post_ltp?: number;
20
21
  post_pChange?: number;
22
+ previousClose?: number;
21
23
  };
24
+ type TExchange = "NSE" | "BSE" | "NASDAQ" | "LSE";
25
+ function getExchangeFromKey(id: string): TExchange;
22
26
  function getBulkStockQuote(symbols: string[], exchange: "NSE" | "BSE" | "LSE" | "NASDAQ"): Promise<TStockInfo[]>;
27
+ function getSymbolFromFullKey(key: string): string;
28
+ function getBulkStockQuoteWithFullKey(symbols: string[]): Promise<TStockInfo[]>;
23
29
  type TInterval = "1d" | "5m" | "15m" | "1h";
24
30
  type THistoryData = {
25
31
  timestamp: number[];
@@ -28,7 +34,7 @@ export declare namespace yahooFin {
28
34
  high: number[];
29
35
  low: number[];
30
36
  volume: number[];
31
- date: Date;
37
+ date: Date[];
32
38
  };
33
39
  function getHistoryData(symbol: string, interval: TInterval, candle_count?: number): Promise<THistoryData | undefined>;
34
40
  function getBulkHistoryData(symbols: string[], interval: TInterval, candle_count?: number): Promise<Map<string, THistoryData> | undefined>;
package/dist/yahoofin.js CHANGED
@@ -15,14 +15,39 @@ const dlog_1 = require("./dlog");
15
15
  var yahooFin;
16
16
  (function (yahooFin) {
17
17
  const extMap = { NSE: ".NS", BSE: ".BS", NASDAQ: "", LSE: ".L" };
18
- // Get map
18
+ function getExchangeFromKey(id) {
19
+ if (!id) {
20
+ return "NASDAQ";
21
+ }
22
+ if (id.endsWith(".BS"))
23
+ return "BSE";
24
+ if (id.endsWith(".NS"))
25
+ return "NSE";
26
+ if (id.endsWith(".L"))
27
+ return "LSE";
28
+ return "NASDAQ";
29
+ }
30
+ yahooFin.getExchangeFromKey = getExchangeFromKey;
19
31
  function getBulkStockQuote(symbols, exchange) {
20
- var _a, _b, _c, _d, _e;
21
32
  return __awaiter(this, void 0, void 0, function* () {
22
- if (!symbols) {
33
+ return yield getBulkStockQuoteWithFullKey(symbols.map((x) => x + extMap[exchange]));
34
+ });
35
+ }
36
+ yahooFin.getBulkStockQuote = getBulkStockQuote;
37
+ function getSymbolFromFullKey(key) {
38
+ if (!key) {
39
+ return key;
40
+ }
41
+ return key.replace(".NS", "").replace(".L", "").replace(".BS", "");
42
+ }
43
+ yahooFin.getSymbolFromFullKey = getSymbolFromFullKey;
44
+ // Get map
45
+ function getBulkStockQuoteWithFullKey(symbols) {
46
+ var _a, _b, _c, _d, _e, _f;
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ if (!symbols || symbols.length == 0) {
23
49
  return [];
24
50
  }
25
- symbols = symbols.map((x) => x + extMap[exchange]);
26
51
  let result = [];
27
52
  try {
28
53
  let resp = yield axios.get(`https://query1.finance.yahoo.com/v7/finance/quote?formatted=true&symbols=${symbols.join(",")}`, {
@@ -34,9 +59,10 @@ var yahooFin;
34
59
  for (let d of data.quoteResponse.result) {
35
60
  //dlog.obj(d.postMarketChangePercent);
36
61
  result.push({
37
- symbol: d.symbol.replace(extMap[exchange], ""),
62
+ _id: d.symbol,
63
+ symbol: getSymbolFromFullKey(d.symbol),
38
64
  name: d.shortName,
39
- exchange: exchange,
65
+ exchange: getExchangeFromKey(d.symbol),
40
66
  ltp: d.regularMarketPrice.raw,
41
67
  open: d.regularMarketOpen.raw,
42
68
  low: d.regularMarketDayLow.raw,
@@ -52,6 +78,7 @@ var yahooFin;
52
78
  post_pChange: (_c = d.postMarketChangePercent) === null || _c === void 0 ? void 0 : _c.raw,
53
79
  pre_ltp: (_d = d.preMarketPrice) === null || _d === void 0 ? void 0 : _d.raw,
54
80
  pre_pChange: (_e = d.preMarketChangePercent) === null || _e === void 0 ? void 0 : _e.raw,
81
+ previousClose: (_f = d.regularMarketPreviousClose) === null || _f === void 0 ? void 0 : _f.raw,
55
82
  });
56
83
  }
57
84
  //dlog.obj(result);
@@ -63,7 +90,7 @@ var yahooFin;
63
90
  return result;
64
91
  });
65
92
  }
66
- yahooFin.getBulkStockQuote = getBulkStockQuote;
93
+ yahooFin.getBulkStockQuoteWithFullKey = getBulkStockQuoteWithFullKey;
67
94
  function getHistoryData(symbol, interval, candle_count) {
68
95
  return __awaiter(this, void 0, void 0, function* () {
69
96
  candle_count = candle_count || 14;
@@ -1 +1 @@
1
- {"version":3,"file":"yahoofin.js","sourceRoot":"","sources":["../src/yahoofin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yahoofin.js","sourceRoot":"","sources":["../src/yahoofin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "corexxx",
3
- "version": "1.0.18",
3
+ "version": "1.0.22",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/yahoofin.ts CHANGED
@@ -4,34 +4,60 @@ import { dlog } from "./dlog";
4
4
  export namespace yahooFin {
5
5
  // define types
6
6
  export type TStockInfo = {
7
+ _id: string;
7
8
  ltp: number;
8
9
  open: number;
9
10
  symbol: string;
10
11
  name: string;
11
- exchange: string;
12
+ exchange: TExchange;
12
13
  volume: number;
13
14
  high: number;
14
15
  low: number;
15
- week52High: number;
16
- week52Low: number;
17
- avgVolume: number;
18
16
  change: number;
19
17
  pChange: number;
18
+
19
+ // opt
20
+ week52High?: number;
21
+ week52Low?: number;
22
+ avgVolume?: number;
20
23
  yAnalystRating?: string;
21
24
  pre_ltp?: number;
22
25
  pre_pChange?: number;
23
26
  post_ltp?: number;
24
27
  post_pChange?: number;
28
+ previousClose?: number;
25
29
  };
26
30
 
31
+ export type TExchange = "NSE" | "BSE" | "NASDAQ" | "LSE";
32
+
27
33
  const extMap = { NSE: ".NS", BSE: ".BS", NASDAQ: "", LSE: ".L" };
28
34
 
29
- // Get map
35
+ export function getExchangeFromKey(id: string): TExchange {
36
+ if (!id) {
37
+ return "NASDAQ";
38
+ }
39
+ if (id.endsWith(".BS")) return "BSE";
40
+ if (id.endsWith(".NS")) return "NSE";
41
+ if (id.endsWith(".L")) return "LSE";
42
+ return "NASDAQ";
43
+ }
44
+
30
45
  export async function getBulkStockQuote(symbols: string[], exchange: "NSE" | "BSE" | "LSE" | "NASDAQ"): Promise<TStockInfo[]> {
31
- if (!symbols) {
46
+ return await getBulkStockQuoteWithFullKey(symbols.map((x) => x + extMap[exchange]));
47
+ }
48
+
49
+ export function getSymbolFromFullKey(key: string) {
50
+ if (!key) {
51
+ return key;
52
+ }
53
+ return key.replace(".NS", "").replace(".L", "").replace(".BS", "");
54
+ }
55
+
56
+ // Get map
57
+ export async function getBulkStockQuoteWithFullKey(symbols: string[]): Promise<TStockInfo[]> {
58
+ if (!symbols || symbols.length == 0) {
32
59
  return [];
33
60
  }
34
- symbols = symbols.map((x) => x + extMap[exchange]);
35
61
  let result: TStockInfo[] = [];
36
62
  try {
37
63
  let resp = await axios.get(`https://query1.finance.yahoo.com/v7/finance/quote?formatted=true&symbols=${symbols.join(",")}`, {
@@ -43,9 +69,10 @@ export namespace yahooFin {
43
69
  for (let d of data.quoteResponse.result) {
44
70
  //dlog.obj(d.postMarketChangePercent);
45
71
  result.push({
46
- symbol: d.symbol.replace(extMap[exchange], ""),
72
+ _id: d.symbol,
73
+ symbol: getSymbolFromFullKey(d.symbol),
47
74
  name: d.shortName,
48
- exchange: exchange,
75
+ exchange: getExchangeFromKey(d.symbol),
49
76
  ltp: d.regularMarketPrice.raw,
50
77
  open: d.regularMarketOpen.raw,
51
78
  low: d.regularMarketDayLow.raw,
@@ -61,6 +88,7 @@ export namespace yahooFin {
61
88
  post_pChange: d.postMarketChangePercent?.raw,
62
89
  pre_ltp: d.preMarketPrice?.raw,
63
90
  pre_pChange: d.preMarketChangePercent?.raw,
91
+ previousClose: d.regularMarketPreviousClose?.raw,
64
92
  });
65
93
  }
66
94
  //dlog.obj(result);
@@ -72,7 +100,7 @@ export namespace yahooFin {
72
100
  }
73
101
 
74
102
  export type TInterval = "1d" | "5m" | "15m" | "1h";
75
- export type THistoryData = { timestamp: number[]; open: number[]; close: number[]; high: number[]; low: number[]; volume: number[]; date: Date };
103
+ export type THistoryData = { timestamp: number[]; open: number[]; close: number[]; high: number[]; low: number[]; volume: number[]; date: Date[] };
76
104
 
77
105
  export async function getHistoryData(symbol: string, interval: TInterval, candle_count?: number): Promise<THistoryData | undefined> {
78
106
  candle_count = candle_count || 14;