@@ -328,6 +328,11 @@ module Data =
328
328
|> KnownWorkerInterfaceType.Parse
329
329
|> set
330
330
331
+ let knownWorkerEnums =
332
+ File.ReadAllText( Path.Combine( GlobalVars.inputFolder, " knownWorkerEnums.json" ))
333
+ |> KnownWorkerInterfaceType.Parse
334
+ |> set
335
+
331
336
let GetAllInterfacesByFlavor flavor =
332
337
match flavor with
333
338
| Flavor.Web -> allWebInterfaces |> Array.filter ( ShouldKeep Web)
@@ -355,6 +360,13 @@ module Data =
355
360
browser.CallbackFunctions
356
361
|> Array.filter ( fun cb -> ( flavor <> Flavor.Worker || knownWorkerInterfaces.Contains cb.Name) && ShouldKeep flavor cb)
357
362
363
+ let GetEnumsByFlavor flavor =
364
+ match flavor with
365
+ | Flavor.Web | Flavor.All -> browser.Enums
366
+ | Flavor.Worker ->
367
+ let isFromBrowserXml = browser.Enums |> Array.filter ( fun i -> knownWorkerEnums.Contains i.Name)
368
+ Array.append isFromBrowserXml worker.Enums
369
+
358
370
/// Event name to event type map
359
371
let eNameToEType =
360
372
[ for i in allWebNonCallbackInterfaces do
@@ -878,11 +890,11 @@ module Emit =
878
890
|> Array.iter emitCallbackFunctionsFromJson
879
891
880
892
GetCallbackFuncsByFlavor flavor |> Array.iter emitCallBackFunction
881
-
882
- let EmitEnums () =
893
+
894
+ let EmitEnums flavor =
883
895
let emitEnum ( e : Browser.Enum ) =
884
896
Pt.Printl " type %s = %s ;" e.Name ( String.Join( " | " , e.Values |> Array.map ( fun value -> " \" " + value + " \" " )))
885
- browser.Enums |> Array.iter emitEnum
897
+ GetEnumsByFlavor flavor |> Array.iter emitEnum
886
898
887
899
let EmitEventHandlerThis flavor ( prefix : string ) ( i : Browser.Interface ) =
888
900
if prefix = " " then " this: " + i.Name + " , "
@@ -1485,7 +1497,7 @@ module Emit =
1485
1497
| _ -> ()
1486
1498
1487
1499
EmitTypeDefs flavor
1488
- EmitEnums()
1500
+ EmitEnums flavor
1489
1501
1490
1502
fprintf target " %s " ( Pt.GetResult())
1491
1503
target.Flush()
0 commit comments