@obstinado/gpx-builder
Version:
Builder of GPX files
80 lines (73 loc) • 1.36 kB
JavaScript
;
class Track {
/**
* @see http://www.topografix.com/gpx/1/1/#type_trkType
*/
// eslint-disable-next-line complexity
constructor(trkseg, {
name,
cmt,
desc,
src,
link,
number,
type,
extensions
} = {}) {
this.name = name || null;
this.cmt = cmt || null;
this.desc = desc || null;
this.src = src || null;
this.link = link || null;
this.number = number || null;
this.type = type || null;
this.extensions = extensions || null;
this.trkseg = trkseg || null;
}
setSegments(trkseg) {
this.trkseg = trkseg;
return this;
} // eslint-disable-next-line complexity
toObject() {
const {
name,
cmt,
desc,
src,
link,
number,
type,
extensions,
trkseg
} = this;
return { ...(name ? {
name
} : {}),
...(cmt ? {
cmt
} : {}),
...(desc ? {
desc
} : {}),
...(src ? {
src
} : {}),
...(link ? {
link: link.toObject()
} : {}),
...(number ? {
number
} : {}),
...(type ? {
type
} : {}),
...(extensions ? {
extensions
} : {}),
...(trkseg ? {
trkseg: trkseg.map(segment => segment.toObject())
} : {})
};
}
}
module.exports = Track;