mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-30 09:55:18 +00:00
refactor: clean up parser and tests (#387)
* tests: improve coverage * refactor: clean up nodes * chore: lint * feat(parser): ignore `BrandVideoShelf` Seems to be used for ads. * feat(parser): ignore `BrandVideoSingleton` too
This commit is contained in:
@@ -1,24 +1,26 @@
|
||||
import Parser from '../../index.js';
|
||||
import { YTNode } from '../../helpers.js';
|
||||
import { ObservedArray, YTNode } from '../../helpers.js';
|
||||
import type { RawNode } from '../../index.js';
|
||||
class Menu extends YTNode {
|
||||
|
||||
export default class Menu extends YTNode {
|
||||
static type = 'Menu';
|
||||
|
||||
items;
|
||||
top_level_buttons;
|
||||
label;
|
||||
items: ObservedArray<YTNode>;
|
||||
top_level_buttons: ObservedArray<YTNode>;
|
||||
label?: string;
|
||||
|
||||
constructor(data: RawNode) {
|
||||
super();
|
||||
this.items = Parser.parseArray(data.items);
|
||||
this.top_level_buttons = Parser.parseArray(data.topLevelButtons);
|
||||
this.label = data.accessibility?.accessibilityData?.label || null;
|
||||
|
||||
if (Reflect.has(data, 'accessibility') && Reflect.has(data.accessibility, 'accessibilityData')) {
|
||||
this.label = data.accessibility.accessibilityData.label;
|
||||
}
|
||||
}
|
||||
|
||||
// XXX: alias for consistency
|
||||
get contents() {
|
||||
return this.items;
|
||||
}
|
||||
}
|
||||
|
||||
export default Menu;
|
||||
}
|
||||
Reference in New Issue
Block a user