Skip to content

Commit c937863

Browse files
BryanBryan
authored andcommitted
Release. Bump version number
1 parent 683ae14 commit c937863

File tree

3 files changed

+120
-78
lines changed

3 files changed

+120
-78
lines changed

example/browser/example.js

Lines changed: 107 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -2882,6 +2882,8 @@ const convertDateToDayCode = require('../../../utilities/convert/dateToDayCode')
28822882
convertDayCodeToNumber = require('../../../utilities/convert/dayCodeToNumber'),
28832883
convertBaseCodeToUnitCode = require('../../../utilities/convert/baseCodeToUnitCode');
28842884

2885+
const LoggerFactory = require('./../../../logging/LoggerFactory');
2886+
28852887
module.exports = (() => {
28862888
'use strict';
28872889

@@ -2899,6 +2901,7 @@ module.exports = (() => {
28992901
regex.c3.currencies.rub = /^(RUB)\/(.*)$/i;
29002902
regex.c3.currencies.uah = /^(UAH)\/(.*)$/i;
29012903
regex.c3.currencies.usd = /^(USD|Usc|\$|)\/(.*)$/i;
2904+
let logger = null;
29022905
/**
29032906
* Executes an HTTP request for a quote snapshot(s) and returns a
29042907
* promise of quote refresh message(s) (suitable for processing by
@@ -2915,6 +2918,10 @@ module.exports = (() => {
29152918

29162919
function retrieveSnapshots(symbols, username, password) {
29172920
return Promise.resolve().then(() => {
2921+
if (logger === null) {
2922+
logger = LoggerFactory.getLogger('@barchart/marketdata-api-js');
2923+
}
2924+
29182925
let symbolsToUse;
29192926

29202927
if (is.string(symbols)) {
@@ -2991,67 +2998,73 @@ module.exports = (() => {
29912998
};
29922999
return Promise.resolve(axios(options)).then(response => {
29933000
const results = response.data.results || [];
2994-
const messages = results.map(result => {
2995-
const message = {};
2996-
message.type = 'REFRESH_QUOTE';
2997-
message.symbol = result.symbol.toUpperCase();
2998-
message.name = result.name;
2999-
message.exchange = result.exchange;
3000-
3001-
if (result.unitCode !== null) {
3002-
message.unitcode = convertBaseCodeToUnitCode(parseInt(result.unitCode));
3003-
} else {
3004-
message.unitcode = '2';
3005-
}
3001+
const messages = results.reduce((accumulator, result) => {
3002+
try {
3003+
const message = {};
3004+
message.type = 'REFRESH_QUOTE';
3005+
message.symbol = result.symbol.toUpperCase();
3006+
message.name = result.name;
3007+
message.exchange = result.exchange;
30063008

3007-
message.tradeTime = new Date(result.tradeTimestamp);
3008-
let dayCode;
3009+
if (result.unitCode !== null) {
3010+
message.unitcode = convertBaseCodeToUnitCode(parseInt(result.unitCode));
3011+
} else {
3012+
message.unitcode = '2';
3013+
}
30093014

3010-
if (is.string(result.dayCode) && result.dayCode.length === 1) {
3011-
dayCode = result.dayCode;
3012-
} else {
3013-
dayCode = convertDateToDayCode(message.tradeTime);
3014-
}
3015+
message.tradeTime = new Date(result.tradeTimestamp);
3016+
let dayCode;
30153017

3016-
message.day = dayCode;
3017-
message.dayNum = convertDayCodeToNumber(dayCode);
3018-
message.flag = result.flag;
3019-
message.mode = result.mode;
3020-
message.lastPrice = result.lastPrice;
3021-
message.tradeSize = result.tradeSize;
3022-
message.numberOfTrades = result.numTrades;
3023-
message.bidPrice = result.bid;
3024-
message.bidSize = result.bidSize;
3025-
message.askPrice = result.ask;
3026-
message.askSize = result.askSize;
3027-
message.settlementPrice = result.settlement;
3028-
message.previousPrice = result.previousLastPrice;
3029-
message.openPrice = result.open;
3030-
message.highPrice = result.high;
3031-
message.lowPrice = result.low;
3032-
message.volume = result.volume;
3033-
message.lastUpdate = message.tradeTime;
3034-
3035-
if (regex.c3.symbol.test(message.symbol)) {
3036-
const c3 = {};
3037-
c3.currency = null;
3038-
c3.delivery = null;
3039-
3040-
if (result.commodityDataCurrency) {
3041-
c3.currency = getC3Currency(result.commodityDataCurrency);
3018+
if (is.string(result.dayCode) && result.dayCode.length === 1) {
3019+
dayCode = result.dayCode;
3020+
} else {
3021+
dayCode = convertDateToDayCode(message.tradeTime);
30423022
}
30433023

3044-
if (result.commodityDataDelivery) {
3045-
c3.delivery = result.commodityDataDelivery;
3024+
message.day = dayCode;
3025+
message.dayNum = convertDayCodeToNumber(dayCode);
3026+
message.flag = result.flag;
3027+
message.mode = result.mode;
3028+
message.lastPrice = result.lastPrice;
3029+
message.tradeSize = result.tradeSize;
3030+
message.numberOfTrades = result.numTrades;
3031+
message.bidPrice = result.bid;
3032+
message.bidSize = result.bidSize;
3033+
message.askPrice = result.ask;
3034+
message.askSize = result.askSize;
3035+
message.settlementPrice = result.settlement;
3036+
message.previousPrice = result.previousLastPrice;
3037+
message.openPrice = result.open;
3038+
message.highPrice = result.high;
3039+
message.lowPrice = result.low;
3040+
message.volume = result.volume;
3041+
message.lastUpdate = message.tradeTime;
3042+
3043+
if (regex.c3.symbol.test(message.symbol)) {
3044+
const c3 = {};
3045+
c3.currency = null;
3046+
c3.delivery = null;
3047+
3048+
if (result.commodityDataCurrency) {
3049+
c3.currency = getC3Currency(result.commodityDataCurrency);
3050+
}
3051+
3052+
if (result.commodityDataDelivery) {
3053+
c3.delivery = result.commodityDataDelivery;
3054+
}
3055+
3056+
message.additional = {
3057+
c3: c3
3058+
};
30463059
}
30473060

3048-
message.additional = {
3049-
c3: c3
3050-
};
3061+
accumulator.push(message);
3062+
} catch (e) {
3063+
logger.warn(`Snapshot: Failed to process for symbol`);
30513064
}
30523065

3053-
return message;
3054-
});
3066+
return accumulator;
3067+
}, []);
30553068
return messages;
30563069
});
30573070
});
@@ -3066,37 +3079,42 @@ module.exports = (() => {
30663079
return Promise.resolve(axios(options)).then(response => {
30673080
const results = response.data.results || [];
30683081
const messages = symbols.reduce((accumulator, symbol) => {
3069-
const result = results.find(result => result.symbol === symbol || result.shortSymbol === symbol);
3082+
try {
3083+
const result = results.find(result => result.symbol === symbol || result.shortSymbol === symbol);
30703084

3071-
if (!result) {
3072-
return accumulator;
3073-
}
3085+
if (!result) {
3086+
return accumulator;
3087+
}
30743088

3075-
const match = result.tradeTimestamp.match(regex.day);
3076-
const date = new Date(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3]));
3077-
const dayCode = convertDateToDayCode(date);
3078-
const message = {};
3079-
message.type = 'REFRESH_QUOTE';
3089+
const match = result.tradeTimestamp.match(regex.day);
3090+
const date = new Date(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3]));
3091+
const dayCode = convertDateToDayCode(date);
3092+
const message = {};
3093+
message.type = 'REFRESH_QUOTE';
30803094

3081-
if (regex.cmdty.long.test(symbol)) {
3082-
message.symbol = result.symbol.toUpperCase();
3083-
} else {
3084-
message.symbol = result.shortSymbol.toUpperCase();
3085-
}
3095+
if (regex.cmdty.long.test(symbol)) {
3096+
message.symbol = result.symbol.toUpperCase();
3097+
} else {
3098+
message.symbol = result.shortSymbol.toUpperCase();
3099+
}
30863100

3087-
message.name = result.shortName;
3088-
message.exchange = 'CSTATS';
3089-
message.unitcode = '2';
3090-
message.day = dayCode;
3091-
message.dayNum = convertDayCodeToNumber(dayCode);
3092-
message.lastPrice = result.lastPrice;
3101+
message.name = result.shortName;
3102+
message.exchange = 'CSTATS';
3103+
message.unitcode = '2';
3104+
message.day = dayCode;
3105+
message.dayNum = convertDayCodeToNumber(dayCode);
3106+
message.lastPrice = result.lastPrice;
3107+
3108+
if (result.previousClose) {
3109+
message.previousPrice = result.previousClose;
3110+
}
30933111

3094-
if (result.previousClose) {
3095-
message.previousPrice = result.previousClose;
3112+
message.lastUpdate = date;
3113+
accumulator.push(message);
3114+
} catch (e) {
3115+
logger.warn(`Snapshot: Failed to process response for cmdtyStats symbol [ ${symbol} ]`);
30963116
}
30973117

3098-
message.lastUpdate = date;
3099-
accumulator.push(message);
31003118
return accumulator;
31013119
}, []);
31023120
return messages;
@@ -3131,7 +3149,7 @@ module.exports = (() => {
31313149
return retrieveSnapshots;
31323150
})();
31333151

3134-
},{"../../../utilities/convert/baseCodeToUnitCode":20,"../../../utilities/convert/dateToDayCode":21,"../../../utilities/convert/dayCodeToNumber":22,"@barchart/common-js/lang/array":41,"@barchart/common-js/lang/is":43,"axios":46}],10:[function(require,module,exports){
3152+
},{"../../../utilities/convert/baseCodeToUnitCode":20,"../../../utilities/convert/dateToDayCode":21,"../../../utilities/convert/dayCodeToNumber":22,"./../../../logging/LoggerFactory":12,"@barchart/common-js/lang/array":41,"@barchart/common-js/lang/is":43,"axios":46}],10:[function(require,module,exports){
31353153
const axios = require('axios');
31363154

31373155
const is = require('@barchart/common-js/lang/is');
@@ -8789,6 +8807,18 @@ module.exports = (() => {
87898807
return this.number(candidate) && candidate < 0;
87908808
},
87918809

8810+
/**
8811+
* Returns true if the argument is iterable.
8812+
*
8813+
* @static
8814+
* @public
8815+
* @param {*} candidate
8816+
* @returns {boolean}
8817+
*/
8818+
iterable(candidate) {
8819+
return !this.null(candidate) && !this.undefined(candidate) && this.fn(candidate[Symbol.iterator]);
8820+
},
8821+
87928822
/**
87938823
* Returns true if the argument is a string.
87948824
*

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@barchart/marketdata-api-js",
3-
"version": "5.1.1",
3+
"version": "5.1.2",
44
"description": "SDK for streaming market data from Barchart.com",
55
"author": {
66
"name": "Eero Pikat",

test/dist/barchart-marketdata-api-tests-5.1.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4048,6 +4048,18 @@ module.exports = (() => {
40484048
return this.number(candidate) && candidate < 0;
40494049
},
40504050

4051+
/**
4052+
* Returns true if the argument is iterable.
4053+
*
4054+
* @static
4055+
* @public
4056+
* @param {*} candidate
4057+
* @returns {boolean}
4058+
*/
4059+
iterable(candidate) {
4060+
return !this.null(candidate) && !this.undefined(candidate) && this.fn(candidate[Symbol.iterator]);
4061+
},
4062+
40514063
/**
40524064
* Returns true if the argument is a string.
40534065
*

0 commit comments

Comments
 (0)