@@ -328,6 +328,11 @@ module Data =
328328 |> KnownWorkerInterfaceType.Parse
329329 |> set
330330
331+ let knownWorkerEnums =
332+ File.ReadAllText( Path.Combine( GlobalVars.inputFolder, " knownWorkerEnums.json" ))
333+ |> KnownWorkerInterfaceType.Parse
334+ |> set
335+
331336 let GetAllInterfacesByFlavor flavor =
332337 match flavor with
333338 | Flavor.Web -> allWebInterfaces |> Array.filter ( ShouldKeep Web)
@@ -355,6 +360,13 @@ module Data =
355360 browser.CallbackFunctions
356361 |> Array.filter ( fun cb -> ( flavor <> Flavor.Worker || knownWorkerInterfaces.Contains cb.Name) && ShouldKeep flavor cb)
357362
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+
358370 /// Event name to event type map
359371 let eNameToEType =
360372 [ for i in allWebNonCallbackInterfaces do
@@ -878,11 +890,11 @@ module Emit =
878890 |> Array.iter emitCallbackFunctionsFromJson
879891
880892 GetCallbackFuncsByFlavor flavor |> Array.iter emitCallBackFunction
881-
882- let EmitEnums () =
893+
894+ let EmitEnums flavor =
883895 let emitEnum ( e : Browser.Enum ) =
884896 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
886898
887899 let EmitEventHandlerThis flavor ( prefix : string ) ( i : Browser.Interface ) =
888900 if prefix = " " then " this: " + i.Name + " , "
@@ -1485,7 +1497,7 @@ module Emit =
14851497 | _ -> ()
14861498
14871499 EmitTypeDefs flavor
1488- EmitEnums()
1500+ EmitEnums flavor
14891501
14901502 fprintf target " %s " ( Pt.GetResult())
14911503 target.Flush()
0 commit comments