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. upon closing the browser context. This method throws when connected remotely.
## async method: Video.saveAs ## async method: Video.saveAs
* langs: js, csharp
* since: v1.11 * since: v1.11
Saves the video to a user-specified path. It is safe to call this method while the video 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 ## method: WebError.error
* since: v1.38 * since: v1.38
* langs: java, csharp * langs: java, csharp
- returns: <[string]> - returns: <[string]>
Unhandled error that was thrown.

View file

@ -129,10 +129,18 @@ class ApiParser {
return; return;
const existingMember = clazz.membersArray.find(m => m.name === name && m.kind === member.kind); const existingMember = clazz.membersArray.find(m => m.name === name && m.kind === member.kind);
if (existingMember && isTypeOverride(existingMember, member)) { if (existingMember) {
for (const lang of member?.langs?.only || []) { if (isTypeOverride(existingMember, member) && (member.spec === undefined || member.spec.length === 0)) {
existingMember.langs.types = existingMember.langs.types || {}; // Can only override return types if the overriding entry (`member`) has no spec content
existingMember.langs.types[lang] = returnType; 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 { } else {
clazz.membersArray.push(member); clazz.membersArray.push(member);