Description.fromRuns constructor
Create Description from descriptionRuns
List.
Implementation
factory Description.fromRuns(List<JsonMap> descriptionRuns) {
final elements = <DescriptionElement>[];
for (final run in descriptionRuns) {
final navigationEndpoint = nav(run, [
'navigationEndpoint',
], nullIfAbsent: true);
DescriptionElement element;
if (navigationEndpoint != null) {
element = DescriptionElement(text: '');
if ((navigationEndpoint as Map).containsKey('urlEndpoint')) {
element = Link(
text: run['text'] as String,
url:
(navigationEndpoint['urlEndpoint'] as JsonMap)['url'] as String,
);
} else if (navigationEndpoint.containsKey('watchEndpoint')) {
element = Timestamp(
text: run['text'] as String,
seconds:
nav(navigationEndpoint, ['watchEndpoint', 'startTimeSeconds'])
as int,
);
}
} else {
element = DescriptionElement(
text: (nav(run, ['text'], nullIfAbsent: true) ?? '') as String,
);
}
elements.add(element);
}
return Description(elements);
}