@@ -355,7 +355,7 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
355
355
return obj . nullable ? makeNullable ( resolvedType ) : resolvedType ;
356
356
}
357
357
358
- function nameWithForwardedTypes ( i : Browser . Interface ) {
358
+ function nameWithForwardedTypes ( i : Browser . Interface ) {
359
359
const typeParameters = i [ "type-parameters" ] ;
360
360
361
361
if ( ! typeParameters ) return i . name ;
@@ -389,7 +389,7 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
389
389
}
390
390
391
391
function processInterfaceType ( i : Browser . Interface | Browser . Dictionary | Browser . CallbackFunction , name : string ) {
392
- function typeParameterWithDefault ( type : Browser . TypeParameter ) {
392
+ function typeParameterWithDefault ( type : Browser . TypeParameter ) {
393
393
return `${ type . name } `
394
394
+ ( type . extends ? ` extends ${ type . extends } ` : `` )
395
395
+ ( type . default ? ` = ${ type . default } ` : `` )
@@ -497,8 +497,11 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
497
497
/// Generate the parameters string for function signatures
498
498
function paramsToString ( ps : Browser . Param [ ] ) {
499
499
function paramToString ( p : Browser . Param ) {
500
+ if ( p . type === "Promise" && ! Array . isArray ( p . subtype ) ) {
501
+ p = { name : p . name , type : [ p . subtype ! , p ] }
502
+ }
500
503
const isOptional = ! p . variadic && p . optional ;
501
- const pType = isOptional ? convertDomTypeToTsType ( p ) : convertDomTypeToNullableTsType ( p ) ;
504
+ const pType = convertDomTypeToNullableTsType ( p ) ;
502
505
const variadicParams = p . variadic && pType . indexOf ( '|' ) !== - 1 ;
503
506
return ( p . variadic ? "..." : "" ) +
504
507
adjustParamName ( p . name ) +
@@ -1076,9 +1079,6 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
1076
1079
. forEach ( i => emitCallBackInterface ( i ) ) ;
1077
1080
emitNonCallbackInterfaces ( ) ;
1078
1081
1079
- // // Add missed interface definition from the spec
1080
- // InputJson.getAddedItems InputJson.Interface flavor |> Array.iter EmitAddedInterface
1081
-
1082
1082
printer . printLine ( "declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;" ) ;
1083
1083
printer . printLine ( "" ) ;
1084
1084
0 commit comments