@@ -355,7 +355,7 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
355355 return obj . nullable ? makeNullable ( resolvedType ) : resolvedType ;
356356 }
357357
358- function nameWithForwardedTypes ( i : Browser . Interface ) {
358+ function nameWithForwardedTypes ( i : Browser . Interface ) {
359359 const typeParameters = i [ "type-parameters" ] ;
360360
361361 if ( ! typeParameters ) return i . name ;
@@ -389,7 +389,7 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
389389 }
390390
391391 function processInterfaceType ( i : Browser . Interface | Browser . Dictionary | Browser . CallbackFunction , name : string ) {
392- function typeParameterWithDefault ( type : Browser . TypeParameter ) {
392+ function typeParameterWithDefault ( type : Browser . TypeParameter ) {
393393 return `${ type . name } `
394394 + ( type . extends ? ` extends ${ type . extends } ` : `` )
395395 + ( type . default ? ` = ${ type . default } ` : `` )
@@ -497,8 +497,11 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
497497 /// Generate the parameters string for function signatures
498498 function paramsToString ( ps : Browser . Param [ ] ) {
499499 function paramToString ( p : Browser . Param ) {
500+ if ( p . type === "Promise" && ! Array . isArray ( p . subtype ) ) {
501+ p = { name : p . name , type : [ p . subtype ! , p ] }
502+ }
500503 const isOptional = ! p . variadic && p . optional ;
501- const pType = isOptional ? convertDomTypeToTsType ( p ) : convertDomTypeToNullableTsType ( p ) ;
504+ const pType = convertDomTypeToNullableTsType ( p ) ;
502505 const variadicParams = p . variadic && pType . indexOf ( '|' ) !== - 1 ;
503506 return ( p . variadic ? "..." : "" ) +
504507 adjustParamName ( p . name ) +
@@ -1076,9 +1079,6 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
10761079 . forEach ( i => emitCallBackInterface ( i ) ) ;
10771080 emitNonCallbackInterfaces ( ) ;
10781081
1079- // // Add missed interface definition from the spec
1080- // InputJson.getAddedItems InputJson.Interface flavor |> Array.iter EmitAddedInterface
1081-
10821082 printer . printLine ( "declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;" ) ;
10831083 printer . printLine ( "" ) ;
10841084
0 commit comments