Skip to content

Commit 66a1ef9

Browse files
committed
Change the type of IDBIndex.openCursor IDBIndex.openKeyCursor and IDBObjectStore.openCursor
1 parent 896cb98 commit 66a1ef9

File tree

7 files changed

+70
-14
lines changed

7 files changed

+70
-14
lines changed

Shared.fsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,15 @@ module JsonItems =
6060
// This is the kind of items in the external json files that are used as a
6161
// correction for the spec.
6262
type ItemKind =
63-
Property | Method | Constant | Constructor | Interface | Callback | Indexer | SignatureOverload
63+
| Property
64+
| Method
65+
| Constant
66+
| Constructor
67+
| Interface
68+
| Callback
69+
| Indexer
70+
| SignatureOverload
71+
| TypeDef
6472
override x.ToString() = (unionToString x).ToLower()
6573

6674
let findItem (allItems: ItemsType.Root []) (itemName: string) (kind: ItemKind) otherFilter =

TS.fsx

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ open Shared
66
open Shared.Comments
77
open Shared.JsonItems
88
open System.IO
9+
open System.Web
910

1011
// Global print target
1112
let Pt = StringPrinter()
@@ -61,7 +62,7 @@ let rec DomTypeToTsType (objDomType: string) =
6162
if Seq.contains "any" allTypes then "any" else String.concat " | " allTypes
6263
else
6364
// Check if is array type, which looks like "sequence<DOMString>"
64-
let unescaped = objDomType.Replace("&lt;", "<").Replace("&gt;", ">")
65+
let unescaped = System.Web.HttpUtility.HtmlDecode(objDomType)
6566
let genericMatch = Regex.Match(unescaped, @"^(\w+)<(\w+)>$")
6667
if genericMatch.Success then
6768
let tName = DomTypeToTsType (genericMatch.Groups.[1].Value)
@@ -610,10 +611,17 @@ let EmitAddedInterface (ai: JsonItems.ItemsType.Root) =
610611
Pt.printl "}"
611612
Pt.printl ""
612613

613-
let EmitTypeDefs () =
614+
let EmitTypeDefs flavor =
614615
let EmitTypeDef (typeDef: Browser.Typedef) =
615616
Pt.printl "type %s = %s;" typeDef.NewType (DomTypeToTsType typeDef.Type)
616-
browser.Typedefs |> Array.iter EmitTypeDef
617+
let EmitTypeDefFromJson (typeDef: ItemsType.Root) =
618+
Pt.printl "type %s = %s;" typeDef.Name.Value typeDef.Type.Value
619+
620+
if flavor <> Flavor.Worker then
621+
browser.Typedefs |> Array.iter EmitTypeDef
622+
623+
JsonItems.getAddedItems ItemKind.TypeDef flavor
624+
|> Array.iter EmitTypeDefFromJson
617625

618626
let EmitTheWholeThing flavor (target:TextWriter) =
619627
Pt.reset()
@@ -645,8 +653,7 @@ let EmitTheWholeThing flavor (target:TextWriter) =
645653
EmitEventHandlers "declare var " gp
646654
| _ -> ()
647655

648-
if flavor <> Flavor.Worker then
649-
EmitTypeDefs()
656+
EmitTypeDefs flavor
650657

651658
fprintf target "%s" (Pt.getResult())
652659
target.Flush()

baselines/dom.generated.d.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7603,8 +7603,8 @@ interface IDBIndex {
76037603
count(key?: any): IDBRequest;
76047604
get(key: any): IDBRequest;
76057605
getKey(key: any): IDBRequest;
7606-
openCursor(range?: any, direction?: string): IDBRequest;
7607-
openKeyCursor(range?: any, direction?: string): IDBRequest;
7606+
openCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest;
7607+
openKeyCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest;
76087608
}
76097609

76107610
declare var IDBIndex: {
@@ -7642,7 +7642,7 @@ interface IDBObjectStore {
76427642
deleteIndex(indexName: string): void;
76437643
get(key: any): IDBRequest;
76447644
index(name: string): IDBIndex;
7645-
openCursor(range?: any, direction?: string): IDBRequest;
7645+
openCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest;
76467646
put(value: any, key?: any): IDBRequest;
76477647
}
76487648

@@ -13663,6 +13663,9 @@ interface ClipboardEventInit extends EventInit {
1366313663
dataType?: string;
1366413664
}
1366513665

13666+
interface IDBArrayKey extends Array<IDBValidKey> {
13667+
}
13668+
1366613669
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
1366713670

1366813671
interface ErrorEventHandler {
@@ -14031,4 +14034,5 @@ type MSLocalClientEvent = MSLocalClientEventBase | MSAudioLocalClientEvent;
1403114034
type MSOutboundPayload = MSVideoSendPayload | MSAudioSendPayload;
1403214035
type RTCIceGatherCandidate = RTCIceCandidate | RTCIceCandidateComplete;
1403314036
type RTCTransport = RTCDtlsTransport | RTCSrtpSdesTransport;
14034-
type payloadtype = number;
14037+
type payloadtype = number;
14038+
type IDBValidKey = number | string | Date | IDBArrayKey;

baselines/webworker.generated.d.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,8 +349,8 @@ interface IDBIndex {
349349
count(key?: any): IDBRequest;
350350
get(key: any): IDBRequest;
351351
getKey(key: any): IDBRequest;
352-
openCursor(range?: any, direction?: string): IDBRequest;
353-
openKeyCursor(range?: any, direction?: string): IDBRequest;
352+
openCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest;
353+
openKeyCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest;
354354
}
355355

356356
declare var IDBIndex: {
@@ -388,7 +388,7 @@ interface IDBObjectStore {
388388
deleteIndex(indexName: string): void;
389389
get(key: any): IDBRequest;
390390
index(name: string): IDBIndex;
391-
openCursor(range?: any, direction?: string): IDBRequest;
391+
openCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest;
392392
put(value: any, key?: any): IDBRequest;
393393
}
394394

@@ -927,6 +927,9 @@ interface ProgressEventInit extends EventInit {
927927
total?: number;
928928
}
929929

930+
interface IDBArrayKey extends Array<IDBValidKey> {
931+
}
932+
930933
declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;
931934

932935
interface ErrorEventHandler {
@@ -985,4 +988,5 @@ declare function postMessage(data: any): void;
985988
declare var console: Console;
986989
declare function addEventListener(type: "error", listener: (ev: ErrorEvent) => any, useCapture?: boolean): void;
987990
declare function addEventListener(type: "message", listener: (ev: MessageEvent) => any, useCapture?: boolean): void;
988-
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
991+
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean): void;
992+
type IDBValidKey = number | string | Date | IDBArrayKey;

inputfiles/addedTypes.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,5 +362,15 @@
362362
"type": "string"
363363
}
364364
]
365+
},
366+
{
367+
"kind": "typedef",
368+
"name": "IDBValidKey",
369+
"type": "number | string | Date | IDBArrayKey"
370+
},
371+
{
372+
"kind": "interface",
373+
"name": "IDBArrayKey",
374+
"extends": "Array<IDBValidKey>"
365375
}
366376
]

inputfiles/overridingTypes.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,5 +397,23 @@
397397
"signatures": [
398398
"new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent"
399399
]
400+
},
401+
{
402+
"kind": "method",
403+
"interface": "IDBIndex",
404+
"name": "openCursor",
405+
"signatures": ["openCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest"]
406+
},
407+
{
408+
"kind": "method",
409+
"interface": "IDBIndex",
410+
"name": "openKeyCursor",
411+
"signatures": ["openKeyCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest"]
412+
},
413+
{
414+
"kind": "method",
415+
"interface": "IDBObjectStore",
416+
"name": "openCursor",
417+
"signatures": ["openCursor(range?: IDBKeyRange | IDBValidKey, direction?: string): IDBRequest"]
400418
}
401419
]

inputfiles/sample.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,5 +325,10 @@
325325
"name": "createElementNS",
326326
"interface": "Document",
327327
"signatures": [ "createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: \"a\"): SVGAElement" ]
328+
},
329+
{
330+
"kind": "typedef",
331+
"name": "IDBValidKey",
332+
"type": "number | string | Date | IDBArrayKey"
328333
}
329334
]

0 commit comments

Comments
 (0)