Files
YouTube.js/src/parser/classes/MultiMarkersPlayerBar.ts
LuanRT 6a4b4f3359 feat: add support for chapters & video heatmap (#263)
* feat: add support for chapters & video heatmap

* chore: add tests
2022-12-27 04:17:05 -03:00

44 lines
1007 B
TypeScript

import Parser from '..';
import type Chapter from './Chapter';
import type Heatmap from './Heatmap';
import { observe, ObservedArray, YTNode } from '../helpers';
class Marker extends YTNode {
static type = 'Marker';
marker_key: string;
value: {
heatmap?: Heatmap | null;
chapters?: Chapter[];
};
constructor (data: any) {
super();
this.marker_key = data.key;
this.value = {};
if (data.value.heatmap) {
this.value.heatmap = Parser.parseItem<Heatmap>(data.value.heatmap);
}
if (data.value.chapters) {
this.value.chapters = Parser.parseArray<Chapter>(data.value.chapters);
}
}
}
class MultiMarkersPlayerBar extends YTNode {
static type = 'MultiMarkersPlayerBar';
markers_map: ObservedArray<Marker>;
constructor(data: any) {
super();
this.markers_map = observe(data.markersMap?.map((marker: { key: string; value: { [key: string ]: any }}) => new Marker(marker)));
}
}
export { Marker };
export default MultiMarkersPlayerBar;