Skip to content

Commit 97cfb5b

Browse files
authored
Merge pull request #382 from Microsoft/sortDeclarations
Sort declarations
2 parents 813e760 + 10a9522 commit 97cfb5b

File tree

4 files changed

+12894
-12864
lines changed

4 files changed

+12894
-12864
lines changed

TS.fsx

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -777,11 +777,13 @@ module Emit =
777777
| Some c' -> emitConstantFromJson c'
778778
| None -> Pt.Printl "readonly %s: %s;" c.Name (DomTypeToTsType c.Type)
779779

780-
let addedConstants = getAddedItems ItemKind.Constant Flavor.All
780+
let addedConstants = getAddedItems ItemKind.Constant Flavor.All |> Array.sortBy (fun t-> t.Name)
781781
Array.iter emitConstantFromJson addedConstants
782782

783783
if i.Constants.IsSome then
784-
Array.iter emitConstant i.Constants.Value.Constants
784+
i.Constants.Value.Constants
785+
|> Array.sortBy (fun c -> c.Name)
786+
|> Array.iter emitConstant
785787

786788
let matchSingleParamMethodSignature (m: Browser.Method) expectedMName expectedMType expectedParamType =
787789
OptionCheckValue expectedMName m.Name &&
@@ -875,7 +877,7 @@ module Emit =
875877
Pt.Printl "interface %s {" i.Name
876878
Pt.PrintWithAddedIndent "(evt: Event): void;"
877879
Pt.Printl "}"
878-
else
880+
else
879881
let m = i.Methods.Value.Methods.[0]
880882
let overload = (GetOverloads (Function.Method m) false).[0]
881883
let paramsString = ParamsToString overload.ParamCombinations
@@ -902,14 +904,19 @@ module Emit =
902904
Pt.Printl "}"
903905

904906
getAddedItems ItemKind.Callback flavor
907+
|> Array.sortBy (fun cb -> cb.Name)
905908
|> Array.iter emitCallbackFunctionsFromJson
906909

907-
GetCallbackFuncsByFlavor flavor |> Array.iter emitCallBackFunction
910+
GetCallbackFuncsByFlavor flavor
911+
|> Array.sortBy (fun cb -> cb.Name)
912+
|> Array.iter emitCallBackFunction
908913

909914
let EmitEnums flavor =
910915
let emitEnum (e: Browser.Enum) =
911916
Pt.Printl "type %s = %s;" e.Name (String.Join(" | ", e.Values |> Array.map (fun value -> "\"" + value + "\"")))
912-
GetEnumsByFlavor flavor |> Array.iter emitEnum
917+
GetEnumsByFlavor flavor
918+
|> Array.sortBy (fun e -> e.Name)
919+
|> Array.iter emitEnum
913920

914921
let EmitEventHandlerThis flavor (prefix: string) (i: Browser.Interface) =
915922
if prefix = "" then "this: " + i.Name + ", "
@@ -977,6 +984,7 @@ module Emit =
977984
ps.Properties
978985
|> Array.filter (ShouldKeep flavor)
979986
|> Array.filter (isCovariantEventHandler >> not)
987+
|> Array.sortBy (fun ps -> ps.Name)
980988
|> Array.iter emitProperty
981989
| None -> ()
982990

@@ -1055,6 +1063,7 @@ module Emit =
10551063
if i.Methods.IsSome then
10561064
i.Methods.Value.Methods
10571065
|> Array.filter mFilter
1066+
|> Array.sortBy (fun m -> m.Name)
10581067
|> Array.iter (emitMethod flavor prefix i)
10591068

10601069
for addedItem in getAddedItems ItemKind.Method flavor do
@@ -1168,6 +1177,7 @@ module Emit =
11681177
let EmitNamedConstructors () =
11691178
browser.Interfaces
11701179
|> Array.filter (fun i -> i.NamedConstructor.IsSome)
1180+
|> Array.sortBy (fun i -> i.Name)
11711181
|> Array.iter
11721182
(fun i ->
11731183
let nc = i.NamedConstructor.Value
@@ -1299,11 +1309,14 @@ module Emit =
12991309
Pt.Print " extends %s" (String.Join(", ", extends))
13001310
Pt.Print " {"
13011311
Pt.IncreaseIndent()
1302-
ownEventHandles |> List.iter emitInterfaceEventMapEntry
1312+
ownEventHandles
1313+
|> List.sortBy (fun e -> e.Name)
1314+
|> List.iter emitInterfaceEventMapEntry
13031315

13041316
let addedProps =
13051317
getAddedItems ItemKind.Property Flavor.Web
13061318
|> Array.filter (fun m -> m.Interface.IsNone || m.Interface.Value = i.Name + "EventMap")
1319+
|> Array.sortBy (fun m -> m.Name)
13071320

13081321
Array.iter emitJsonProperty addedProps
13091322

@@ -1414,7 +1427,7 @@ module Emit =
14141427
if hasNonStaticMember then emitStaticInterfaceWithNonStaticMembers() else emitPureStaticInterface()
14151428

14161429
let EmitNonCallbackInterfaces flavor =
1417-
for i in GetNonCallbackInterfacesByFlavor flavor do
1430+
for i in GetNonCallbackInterfacesByFlavor flavor |> Array.sortBy (fun i -> i.Name) do
14181431
// If the static attribute has a value, it means the type doesn't have a constructor
14191432
if i.Static.IsSome then
14201433
EmitStaticInterface flavor i
@@ -1445,12 +1458,14 @@ module Emit =
14451458
let addedProps =
14461459
getAddedItems ItemKind.Property flavor
14471460
|> Array.filter (matchInterface dict.Name)
1461+
|> Array.sortBy (fun d -> d.Name)
14481462

14491463
Pt.IncreaseIndent()
14501464
Array.iter emitJsonProperty addedProps
14511465
if dict.Members.IsSome then
14521466
dict.Members.Value.Members
14531467
|> Array.filter (fun m -> not (Set.contains m.Name removedPropNames))
1468+
|> Array.sortBy (fun m -> m.Name)
14541469
|> Array.iter (fun m ->
14551470
match (getOverriddenItemByName m.Name ItemKind.Property dict.Name) with
14561471
| Some om -> emitJsonProperty om
@@ -1465,10 +1480,13 @@ module Emit =
14651480

14661481
browser.Dictionaries
14671482
|> Array.filter (fun dict -> flavor <> Worker || knownWorkerInterfaces.Contains dict.Name)
1483+
|> Array.sortBy (fun d -> d.Name)
14681484
|> Array.iter emitDictionary
14691485

14701486
if flavor = Worker then
1471-
worker.Dictionaries |> Array.iter emitDictionary
1487+
worker.Dictionaries
1488+
|> Array.sortBy (fun d -> d.Name)
1489+
|> Array.iter emitDictionary
14721490

14731491
let EmitAddedInterface (ai: InputJsonType.Root) =
14741492
match ai.Extends with
@@ -1492,8 +1510,12 @@ module Emit =
14921510
m.Signatures |> Array.iter (Pt.PrintWithAddedIndent "%s;")
14931511

14941512

1495-
ai.Properties |> Array.iter emitProperty
1496-
ai.Methods |> Array.iter emitMethod
1513+
ai.Properties
1514+
|> Array.sortBy (fun p -> p.Name)
1515+
|> Array.iter emitProperty
1516+
ai.Methods
1517+
|> Array.sortBy (fun m -> m.Name)
1518+
|> Array.iter emitMethod
14971519
ai.Indexer |> Array.collect (fun i -> i.Signatures) |> Array.iter (Pt.PrintWithAddedIndent "%s;")
14981520
Pt.Printl "}"
14991521
Pt.Printl ""
@@ -1518,13 +1540,16 @@ module Emit =
15181540
| Flavor.Worker ->
15191541
browser.Typedefs
15201542
|> Array.filter (fun typedef -> knownWorkerInterfaces.Contains typedef.NewType)
1543+
|> Array.sortBy (fun i -> i.NewType)
15211544
|> Array.iter emitTypeDef
15221545
| _ ->
15231546
browser.Typedefs
15241547
|> Array.filter (fun typedef -> getRemovedItemByName typedef.NewType ItemKind.TypeDef "" |> Option.isNone)
1548+
|> Array.sortBy (fun i -> i.NewType)
15251549
|> Array.iter emitTypeDef
15261550

15271551
InputJson.getAddedItems ItemKind.TypeDef flavor
1552+
|> Array.sortBy (fun t -> t.Name)
15281553
|> Array.iter emitTypeDefFromJson
15291554

15301555
let EmitTheWholeThing flavor (target:TextWriter) =
@@ -1537,11 +1562,14 @@ module Emit =
15371562
Pt.Printl ""
15381563

15391564
EmitDictionaries flavor
1540-
browser.CallbackInterfaces.Interfaces |> Array.iter (EmitCallBackInterface flavor)
1565+
browser.CallbackInterfaces.Interfaces
1566+
|> Array.sortBy (fun cb -> cb.Name)
1567+
|> Array.iter (EmitCallBackInterface flavor)
15411568
EmitNonCallbackInterfaces flavor
15421569

15431570
// Add missed interface definition from the spec
1544-
InputJson.getAddedItems InputJson.Interface flavor |> Array.iter EmitAddedInterface
1571+
InputJson.getAddedItems InputJson.Interface flavor
1572+
|> Array.iter EmitAddedInterface
15451573

15461574
Pt.Printl "declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;"
15471575
Pt.Printl ""
@@ -1605,7 +1633,9 @@ module Emit =
16051633
Pt.Printl "/////////////////////////////"
16061634
Pt.Printl ""
16071635

1608-
browser.Interfaces |> Array.iter EmitIterator
1636+
browser.Interfaces
1637+
|> Array.sortBy (fun i -> i.Name)
1638+
|> Array.iter EmitIterator
16091639

16101640
fprintf target "%s" (Pt.GetResult())
16111641
target.Flush()

baselines/dom.es6.generated.d.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ interface AudioTrackList {
77
[Symbol.iterator](): IterableIterator<AudioTrack>
88
}
99

10-
interface ClientRectList {
11-
[Symbol.iterator](): IterableIterator<ClientRect>
12-
}
13-
1410
interface CSSRuleList {
1511
[Symbol.iterator](): IterableIterator<CSSRule>
1612
}
@@ -19,8 +15,8 @@ interface CSSStyleDeclaration {
1915
[Symbol.iterator](): IterableIterator<string>
2016
}
2117

22-
interface DataTransferItemList {
23-
[Symbol.iterator](): IterableIterator<File>
18+
interface ClientRectList {
19+
[Symbol.iterator](): IterableIterator<ClientRect>
2420
}
2521

2622
interface DOMStringList {
@@ -31,6 +27,10 @@ interface DOMTokenList {
3127
[Symbol.iterator](): IterableIterator<string>
3228
}
3329

30+
interface DataTransferItemList {
31+
[Symbol.iterator](): IterableIterator<File>
32+
}
33+
3434
interface FileList {
3535
[Symbol.iterator](): IterableIterator<File>
3636
}
@@ -43,6 +43,10 @@ interface HTMLCollection {
4343
[Symbol.iterator](): IterableIterator<Element>
4444
}
4545

46+
interface MSRangeCollection {
47+
[Symbol.iterator](): IterableIterator<Range>
48+
}
49+
4650
interface MediaList {
4751
[Symbol.iterator](): IterableIterator<string>
4852
}
@@ -51,10 +55,6 @@ interface MimeTypeArray {
5155
[Symbol.iterator](): IterableIterator<Plugin>
5256
}
5357

54-
interface MSRangeCollection {
55-
[Symbol.iterator](): IterableIterator<Range>
56-
}
57-
5858
interface NamedNodeMap {
5959
[Symbol.iterator](): IterableIterator<Attr>
6060
}

0 commit comments

Comments
 (0)