A JavaScript port of pydexcom
This has been tested from Node 14 to Node 18, but may work in earlier versions as well.
const Dexcom = require("cgm.js");For ESM, set "type": "module", in your package.json.
import Dexcom from "cgm.js";Most recent reading:
const dexcom = new Dexcom("user", "pass");
const latestGlucoseReading = await dexcom.getLatestGlucoseReading();getCurrentGlucoseReading() should return the same result but is maintained for parity with the original package.
GlucoseReading {
value: 143,
mgdL: 143,
mmolL: 7.9,
trend: 4,
trendDescription: 'steady',
trendArrow: '→',
time: 2023-02-26T00:48:54.000Z,
json: { WT: 'Date(1677372534000)', Value: 143, Trend: 'Flat' }
}const dexcom = new Dexcom("user", "pass");
const glucoseReadings = await dexcom.getGlucoseReadings(15, 3); // minutes and number of readings readingsThe service will return the minimum of the two parameters (minutes and maxCount of readings), so if your readings take place every five minutes and you request 30 minutes and 3 readings, you will only see three readings returned.
[
GlucoseReading {
value: 112,
mgdL: 112,
mmolL: 6.2,
trend: 3,
trendDescription: 'rising slightly',
trendArrow: '↗',
time: 2023-02-27T03:23:59.000Z,
json: { WT: 'Date(1677468239000)', Value: 112, Trend: 'FortyFiveUp' }
},
GlucoseReading {
value: 105,
mgdL: 105,
mmolL: 5.8,
trend: 3,
trendDescription: 'rising slightly',
trendArrow: '↗',
time: 2023-02-27T03:18:59.000Z,
json: { WT: 'Date(1677467939000)', Value: 105, Trend: 'FortyFiveUp' }
},
GlucoseReading {
value: 93,
mgdL: 93,
mmolL: 5.2,
trend: 4,
trendDescription: 'steady',
trendArrow: '→',
time: 2023-02-27T03:14:00.000Z,
json: { WT: 'Date(1677467640000)', Value: 93, Trend: 'Flat' }
},
]