mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-25 07:42:11 +00:00
fix(Text#fromAttributed): Fix StyleRun assuming that the startIndex and length always exist (#862)
In AttributedText, styleRuns may not always include the `startIndex` or `length` properties - If `startIndex` is missing, we assume the style applies from the beginning of the text - If `length` is missing, we assume the style applies to the entire text
This commit is contained in:
@@ -54,7 +54,6 @@ export default class Text {
|
||||
static fromAttributed(data: AttributedText) {
|
||||
const {
|
||||
content,
|
||||
styleRuns: style_runs,
|
||||
commandRuns: command_runs,
|
||||
attachmentRuns: attachment_runs
|
||||
} = data;
|
||||
@@ -66,6 +65,16 @@ export default class Text {
|
||||
}
|
||||
];
|
||||
|
||||
// In AttributedText, styleRuns may not always include the `startIndex` or `length` properties
|
||||
// - If `startIndex` is missing, we assume the style applies from the beginning of the text
|
||||
// - If `length` is missing, we assume the style applies to the entire text
|
||||
// The following code ensures default values are provided for these properties
|
||||
const style_runs = data.styleRuns?.map((run) => ({
|
||||
...run,
|
||||
startIndex: run.startIndex ?? 0,
|
||||
length: run.length ?? content.length
|
||||
}) as StyleRun & ResponseRun);
|
||||
|
||||
if (style_runs || command_runs || attachment_runs) {
|
||||
if (style_runs) {
|
||||
for (const style_run of style_runs) {
|
||||
@@ -271,7 +280,7 @@ interface ResponseRun {
|
||||
length: number;
|
||||
}
|
||||
|
||||
interface StyleRun extends ResponseRun {
|
||||
interface StyleRun extends Partial<ResponseRun> {
|
||||
italic?: boolean;
|
||||
weightLabel?: string;
|
||||
strikethrough?: string;
|
||||
|
||||
Reference in New Issue
Block a user