fit-file-parser
Version:
Parse your .FIT files easily, directly from JS (Garmin, Polar, Suunto)
56 lines (55 loc) • 1.76 kB
TypeScript
export interface ParsedElement {
[key: string]: any;
message_index?: Record<string, any>;
}
export interface ParsedTimestampableElement extends ParsedElement {
timestamp: string;
}
export interface ParsedLap extends ParsedTimestampableElement {
records?: ParsedTimestampableElement[];
lengths?: ParsedTimestampableElement[];
}
export interface ParsedActivity extends ParsedTimestampableElement {
sessions?: ParsedSession[];
events?: ParsedTimestampableElement[];
hrv?: ParsedHrv[];
device_infos?: ParsedTimestampableElement[];
developer_data_ids?: any[];
field_descriptions?: any[];
sports?: ParsedElement[];
}
export interface ParsedSession extends ParsedTimestampableElement {
laps?: ParsedLap[];
}
export interface ParsedHrv {
time: number[];
}
export interface ParsedFit {
protocolVersion: number;
profileVersion: number;
software?: unknown;
user_profile: ParsedElement;
laps?: ParsedLap[];
records?: ParsedTimestampableElement[];
sessions?: ParsedSession[];
activity: ParsedActivity;
lengths?: ParsedElement[];
events?: ParsedTimestampableElement[];
device_infos?: ParsedTimestampableElement[];
developer_data_ids?: ParsedElement[];
field_descriptions?: ParsedElement[];
hrv?: ParsedHrv[];
hr_zone?: ParsedElement[];
power_zone?: ParsedElement[];
dive_gases?: ParsedTimestampableElement[];
course_points?: ParsedElement[];
sports?: ParsedElement[];
devices?: ParsedElement[];
monitors?: ParsedElement[];
stress?: ParsedElement[];
file_ids?: ParsedElement[];
monitor_info?: ParsedElement[];
definitions?: ParsedElement[];
tank_updates?: ParsedElement[];
tank_summaries?: ParsedElement[];
}