Fix Video.saveAs and properly error in unsupported cases

This commit is contained in:
Adam Gastineau 2025-02-03 10:24:05 -08:00
parent 6d8cfa699b
commit d2cfd4aea7
3 changed files with 14 additions and 7 deletions

View file

@ -36,6 +36,7 @@ Returns the file system path this video will be recorded to. The video is guaran
upon closing the browser context. This method throws when connected remotely.
## async method: Video.saveAs
* langs: js, csharp
* since: v1.11
Saves the video to a user-specified path. It is safe to call this method while the video

View file

@ -62,6 +62,4 @@ Unhandled error that was thrown.
## method: WebError.error
* since: v1.38
* langs: java, csharp
- returns: <[string]>
Unhandled error that was thrown.
- returns: <[string]>

View file

@ -129,10 +129,18 @@ class ApiParser {
return;
const existingMember = clazz.membersArray.find(m => m.name === name && m.kind === member.kind);
if (existingMember && isTypeOverride(existingMember, member)) {
for (const lang of member?.langs?.only || []) {
existingMember.langs.types = existingMember.langs.types || {};
existingMember.langs.types[lang] = returnType;
if (existingMember) {
if (isTypeOverride(existingMember, member) && (member.spec === undefined || member.spec.length === 0)) {
// Can only override return types if the overriding entry (`member`) has no spec content
for (const lang of member.langs.only || []) {
existingMember.langs.types = existingMember.langs.types || {};
existingMember.langs.types[lang] = returnType;
}
} else if (!existingMember.langs.only || existingMember.langs.only.some(l => member.langs.only?.includes(l))) {
throw new Error(`Duplicate member ${clazz.name}.${name} for at least one language: ${member.langs.only}`);
} else {
// This member exists alongside the current one
clazz.membersArray.push(member);
}
} else {
clazz.membersArray.push(member);