@@ -4,6 +4,12 @@ export default function override(converter: Converter) {
4
4
// Remove test namespace since it's not exposed in api
5
5
converter . removeNamespace ( 'test' ) ;
6
6
7
+ // Fix extensionTypes.Date
8
+ converter . edit ( 'extensionTypes' , 'types' , 'Date' , ( Date ) => {
9
+ Date . choices ! [ 2 ] . isInstanceOf = 'globalThis.Date'
10
+ return Date ;
11
+ } )
12
+
7
13
// browser.runtime.getManifest should return WebExtensionManifest
8
14
converter . edit ( 'runtime' , 'functions' , 'getManifest' , ( x ) => {
9
15
x . returns = { $ref : 'manifest.WebExtensionManifest' } ;
@@ -12,8 +18,8 @@ export default function override(converter: Converter) {
12
18
13
19
// Fix dupe _NativeManifestType
14
20
converter . edit ( '_manifest' , 'types' , 'NativeManifest' , ( x ) => {
15
- x . choices [ 0 ] . properties . type . converterTypeOverride = '"pkcs11"| "stdio"' ;
16
- x . choices [ 1 ] . properties . type . converterTypeOverride = '"storage"' ;
21
+ x . choices ! [ 0 ] . properties ! . type . converterTypeOverride = '"pkcs11"| "stdio"' ;
22
+ x . choices ! [ 1 ] . properties ! . type . converterTypeOverride = '"storage"' ;
17
23
return x ;
18
24
} ) ;
19
25
@@ -75,7 +81,7 @@ export default function override(converter: Converter) {
75
81
76
82
// Additional fix for webrequest.onAuthRequired
77
83
converter . edit ( 'webRequest' , 'events' , 'onAuthRequired' , ( x ) => {
78
- x . parameters = x . parameters . filter ( ( y : TypeSchema ) => y . name !== 'callback' ) ;
84
+ x . parameters = x . parameters ! . filter ( ( y : TypeSchema ) => y . name !== 'callback' ) ;
79
85
return x ;
80
86
} ) ;
81
87
@@ -210,11 +216,11 @@ export default function override(converter: Converter) {
210
216
}
211
217
212
218
// Prevent some of Event from being promisified
213
- converter . edit ( 'events' , 'types' , 'Event' , ( x ) => {
214
- for ( let f of x . functions . slice ( 0 , 3 ) ) {
219
+ converter . edit ( 'events' , 'types' , 'Event' , ( Event ) => {
220
+ for ( let f of Event . functions ! . slice ( 0 , 3 ) ) {
215
221
f . async = false ;
216
222
}
217
- return x ;
223
+ return Event ;
218
224
} ) ;
219
225
220
226
// Remove bookmarks.import and bookmarks.export as it breaks things
@@ -227,8 +233,8 @@ export default function override(converter: Converter) {
227
233
// Fix runtime.Port.postMessage
228
234
// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/23542
229
235
converter . edit ( 'runtime' , 'types' , 'Port' , ( Port ) => {
230
- Port . properties . postMessage . parameters = [ { type : 'object' , name : 'message' } ] ;
231
- Port . properties . error = { converterTypeOverride : 'Error' , optional : true } ;
236
+ Port . properties ! . postMessage . parameters = [ { type : 'object' , name : 'message' } ] ;
237
+ Port . properties ! . error = { converterTypeOverride : 'Error' , optional : true } ;
232
238
Port . events = [
233
239
{
234
240
name : 'onMessage' ,
@@ -241,8 +247,8 @@ export default function override(converter: Converter) {
241
247
parameters : [ { $ref : 'Port' , name : 'port' } ] ,
242
248
} ,
243
249
] ;
244
- delete Port . properties . onDisconnect ;
245
- delete Port . properties . onMessage ;
250
+ delete Port . properties ! . onDisconnect ;
251
+ delete Port . properties ! . onMessage ;
246
252
247
253
return Port ;
248
254
} ) ;
@@ -269,7 +275,7 @@ export default function override(converter: Converter) {
269
275
270
276
// Fix error return type in some proxy events
271
277
converter . edit ( 'proxy' , 'events' , 'onError' , ( onError ) => {
272
- onError . parameters [ 0 ] . converterTypeOverride = 'Error' ;
278
+ onError . parameters ! [ 0 ] . converterTypeOverride = 'Error' ;
273
279
return onError ;
274
280
} ) ;
275
281
@@ -279,14 +285,14 @@ export default function override(converter: Converter) {
279
285
'PersistentBackgroundProperty' ,
280
286
( PersistentBackgroundProperty ) => {
281
287
PersistentBackgroundProperty . type = 'boolean' ;
282
- PersistentBackgroundProperty . deprecated = PersistentBackgroundProperty . choices [ 1 ] . deprecated ;
288
+ PersistentBackgroundProperty . deprecated = PersistentBackgroundProperty . choices ! [ 1 ] . deprecated ;
283
289
delete PersistentBackgroundProperty . choices ;
284
290
return PersistentBackgroundProperty ;
285
291
}
286
292
) ;
287
293
288
294
converter . edit ( 'permissions' , 'functions' , 'remove' , ( remove ) => {
289
- remove . parameters [ 1 ] . parameters = [
295
+ remove . parameters ! [ 1 ] . parameters = [
290
296
{
291
297
type : 'boolean' ,
292
298
} ,
@@ -296,17 +302,118 @@ export default function override(converter: Converter) {
296
302
297
303
// https://github.com/jsmnbom/definitelytyped-firefox-webext-browser/issues/35
298
304
converter . edit ( 'alarms' , 'functions' , 'get' , ( get ) => {
299
- get . parameters [ 1 ] . converterPromiseOptional = true ;
305
+ get . parameters ! [ 1 ] . converterPromiseOptional = true ;
300
306
return get ;
301
307
} ) ;
302
308
303
309
// These methods can return null for some reason
304
310
converter . edit ( 'cookies' , 'functions' , 'get' , ( get ) => {
305
- get . parameters [ 1 ] . converterPromiseOptionalNull = true ;
311
+ get . parameters ! [ 1 ] . converterPromiseOptionalNull = true ;
306
312
return get ;
307
313
} ) ;
308
314
converter . edit ( 'cookies' , 'functions' , 'remove' , ( remove ) => {
309
- remove . parameters [ 1 ] . converterPromiseOptionalNull = true ;
315
+ remove . parameters ! [ 1 ] . converterPromiseOptionalNull = true ;
310
316
return remove ;
311
317
} ) ;
318
+
319
+ // Add runtime.PlatformNaclArch
320
+ converter . add ( 'runtime' , 'types' , {
321
+ id : 'PlatformNaclArch' ,
322
+ type : 'string' ,
323
+ enum : [ 'arm' , 'x86-32' , 'x86-64' ] ,
324
+ } ) ;
325
+
326
+ // Add webrequest.StreamFilter
327
+ converter . add ( 'webRequest' , 'types' , {
328
+ id : 'StreamFilter' ,
329
+ type : 'object' ,
330
+ description : 'An object you can use to monitor and modify HTTP responses.' ,
331
+ functions : [
332
+ {
333
+ name : 'close' ,
334
+ type : 'function' ,
335
+ description : 'Closes the request.' ,
336
+ async : 'callback' ,
337
+ } ,
338
+ {
339
+ name : 'disconnect' ,
340
+ type : 'function' ,
341
+ description : 'Disconnects the filter from the request.' ,
342
+ async : 'callback' ,
343
+ } ,
344
+ {
345
+ name : 'suspend' ,
346
+ type : 'function' ,
347
+ description : 'Suspends processing of the request.' ,
348
+ async : 'callback' ,
349
+ } ,
350
+ {
351
+ name : 'resume' ,
352
+ type : 'function' ,
353
+ description : 'Resumes processing of the request.' ,
354
+ async : 'callback' ,
355
+ } ,
356
+ {
357
+ name : 'write' ,
358
+ type : 'function' ,
359
+ description : 'Writes some data to the output stream.' ,
360
+ async : 'callback' ,
361
+ parameters : [
362
+ {
363
+ name : 'data' ,
364
+ choices : [ { $ref : 'Uint8Array' } , { $ref : 'ArrayBuffer' } ] ,
365
+ } ,
366
+ ] ,
367
+ } ,
368
+ ] ,
369
+ properties : {
370
+ status : {
371
+ type : 'string' ,
372
+ description : 'Describes the current status of the stream.' ,
373
+ enum : [
374
+ 'uninitialized' ,
375
+ 'transferringdata' ,
376
+ 'finishedtransferringdata' ,
377
+ 'suspended' ,
378
+ 'closed' ,
379
+ 'disconnected' ,
380
+ 'failed' ,
381
+ ] ,
382
+ } ,
383
+ error : {
384
+ type : 'string' ,
385
+ description :
386
+ 'A string that will contain an error message after the onerror event has fired.' ,
387
+ } ,
388
+ onerror : {
389
+ description : 'Event handler which is called when an error has occurred.' ,
390
+ converterTypeOverride : '((event: Event) => void) | null' ,
391
+ } ,
392
+ onstop : {
393
+ description :
394
+ 'Event handler which is called when the stream has no more data to deliver and has closed.' ,
395
+ converterTypeOverride : '((event: Event) => void) | null' ,
396
+ } ,
397
+ onstart : {
398
+ description :
399
+ 'Event handler which is called when the stream is about to start receiving data.' ,
400
+ converterTypeOverride : '((event: Event) => void) | null' ,
401
+ } ,
402
+ ondata : {
403
+ description : 'Event handler which is called when incoming data is available.' ,
404
+ converterTypeOverride : '((event: _StreamFilterOndataEvent) => void) | null' ,
405
+ converterAdditionalType : 'interface _StreamFilterOndataEvent extends Event { data: ArrayBuffer }'
406
+ } ,
407
+ } ,
408
+ } ) ;
409
+ // converter.add('webRequest', 'types', {
410
+ // type: 'object',
411
+ // id: '_StreamFilterOndataEvent',
412
+ // $extend: 'Event',
413
+ // properties: {
414
+ // data: {
415
+ // $ref: 'ArrayBuffer'
416
+ // }
417
+ // }
418
+ // });
312
419
}
0 commit comments