Parse your .FIT files easily, directly from JS. Written in ES6.
$ npm install easy-fit --save
See in examples folder:
// Require the module
var EasyFit = require('./../dist/easy-fit.js').default;
// Read a .FIT file
var fs = require('fs');
fs.readFile('./example.fit', function (err, content) {
  // Create a EasyFit instance (options argument is optional)
  var easyFit = new EasyFit({
    force: true,
    speedUnit: 'km/h',
    lengthUnit: 'km',
    temperatureUnit: 'kelvin',
    elapsedRecordField: true,
    mode: 'cascade',
  });
  
  // Parse your file
  easyFit.parse(content, function (error, data) {
  
    // Handle result of parse method
    if (error) {
      console.log(error);
    } else {
      console.log(JSON.stringify(data));
    }
    
  });
  
});Needed to create a new instance. options is optional, and is used to customize the returned object.
Allowed properties :
mode: Stringcascade: Returned object is organized as a tree, eg. each lap contains arecordsfields, that is an array of its records (default)list: Returned object is organized as lists of sessions, laps, records, etc..., without parent-child relationboth: A mix of the two other modes, eg.recordsare available inside the root field as well as inside each laps
lengthUnit: Stringm: Lengths are in meters (default)km: Lengths are in kilometersmi: Lengths are in miles
temperatureUnit: Stringcelsius:Temperatures are in °C (default)kelvin: Temperatures are in °Kfarhenheit: Temperatures are in °F
speedUnit: Stringm/s: Speeds are in meters per seconds (default)km/h: Speeds are in kilometers per hourmph: Speeds are in miles per hour
force: Booleantrue: Continues even if they are errors (default for now)false: Stops if an error occurs
elapsedRecordField: Booleantrue: Includes aelapsed_timefield inside eachrecordfield, containing the elapsed time in seconds since the first record (default)false
callback receives two arguments, the first as a error String, and the second as Object, result of parsing.
Big thanks to Mikael Lofjärd for his early prototype. See CONTRIBUTORS.
MIT license; see LICENSE.
(c) 2016 by Pierre Jacquier