refactor(parser): improve typings and do some refactoring (#305)

* dev: add response types

* dev: refactor `Parser#parseResponse()`

* dev: update YouTube parsers

* dev: update YouTube Music classes

* dev: update YouTube Kids classes

* dev: update core classes

* dev(Parser): fix some inconsistencies

* chore: update docs

* chore: update docs x2

* fix: export response types 

* chore(docs): update parser example
This commit is contained in:
LuanRT
2023-02-12 07:04:17 -03:00
committed by GitHub
parent 2ccbe2ce62
commit eb72c2f6ef
61 changed files with 1116 additions and 571 deletions

View File

@@ -1,17 +1,18 @@
import Parser, { ParsedResponse } from '../index.js';
import type { ApiResponse } from '../../core/Actions.js';
import Parser from '../index.js';
import Element from '../classes/Element.js';
import type { ApiResponse } from '../../core/Actions.js';
import type { IBrowseResponse } from '../types/ParsedResponse.js';
class Analytics {
#page: ParsedResponse;
#page: IBrowseResponse;
sections;
constructor(response: ApiResponse) {
this.#page = Parser.parseResponse(response.data);
this.sections = this.#page.contents_memo?.getType(Element).map((el) => el.model?.item());
this.#page = Parser.parseResponse<IBrowseResponse>(response.data);
this.sections = this.#page.contents_memo?.getType(Element).map((el) => el.model?.item()).flatMap((el) => !el ? [] : el);
}
get page(): ParsedResponse {
get page(): IBrowseResponse {
return this.#page;
}
}