@@ -17,11 +17,14 @@ import (
1717)
1818
1919func generateTypesFile (tsTypesMap map [reflect.Type ]string ) error {
20- var buf strings.Builder
21- fileName := "frontend/types/gotypes.d.ts"
22- fmt .Fprintf (os .Stderr , "generating types file to %s\n " , fileName )
20+ fd , err := os .Create ("frontend/types/gotypes.d.ts" )
21+ if err != nil {
22+ return err
23+ }
24+ defer fd .Close ()
25+ fmt .Fprintf (os .Stderr , "generating types file to %s\n " , fd .Name ())
2326 tsgen .GenerateWaveObjTypes (tsTypesMap )
24- err : = tsgen .GenerateServiceTypes (tsTypesMap )
27+ err = tsgen .GenerateServiceTypes (tsTypesMap )
2528 if err != nil {
2629 fmt .Fprintf (os .Stderr , "Error generating service types: %v\n " , err )
2730 os .Exit (1 )
@@ -30,10 +33,10 @@ func generateTypesFile(tsTypesMap map[reflect.Type]string) error {
3033 if err != nil {
3134 return fmt .Errorf ("error generating wsh server types: %w" , err )
3235 }
33- fmt .Fprintf (& buf , "// Copyright 2024, Command Line Inc.\n " )
34- fmt .Fprintf (& buf , "// SPDX-License-Identifier: Apache-2.0\n \n " )
35- fmt .Fprintf (& buf , "// generated by cmd/generate/main-generatets.go\n \n " )
36- fmt .Fprintf (& buf , "declare global {\n \n " )
36+ fmt .Fprintf (fd , "// Copyright 2024, Command Line Inc.\n " )
37+ fmt .Fprintf (fd , "// SPDX-License-Identifier: Apache-2.0\n \n " )
38+ fmt .Fprintf (fd , "// generated by cmd/generate/main-generatets.go\n \n " )
39+ fmt .Fprintf (fd , "declare global {\n \n " )
3740 var keys []reflect.Type
3841 for key := range tsTypesMap {
3942 keys = append (keys , key )
@@ -45,68 +48,62 @@ func generateTypesFile(tsTypesMap map[reflect.Type]string) error {
4548 })
4649 for _ , key := range keys {
4750 // don't output generic types
48- if strings .Contains (key .Name (), "[" ) {
51+ if strings .Index (key .Name (), "[" ) != - 1 {
4952 continue
5053 }
5154 tsCode := tsTypesMap [key ]
5255 istr := utilfn .IndentString (" " , tsCode )
53- fmt .Fprint (& buf , istr )
54- }
55- fmt .Fprintf (& buf , "}\n \n " )
56- fmt .Fprintf (& buf , "export {}\n " )
57- err = tsgen .WriteFileIfChanged (fileName , []byte (buf .String ()), true )
58- if err != nil {
59- return err
56+ fmt .Fprint (fd , istr )
6057 }
58+ fmt .Fprintf (fd , "}\n \n " )
59+ fmt .Fprintf (fd , "export {}\n " )
6160 return nil
6261}
6362
6463func generateServicesFile (tsTypesMap map [reflect.Type ]string ) error {
65- var buf strings.Builder
66- fileName := "frontend/app/store/services.ts"
67- fmt .Fprintf (os .Stderr , "generating services file to %s\n " , fileName )
68- fmt .Fprintf (& buf , "// Copyright 2024, Command Line Inc.\n " )
69- fmt .Fprintf (& buf , "// SPDX-License-Identifier: Apache-2.0\n \n " )
70- fmt .Fprintf (& buf , "// generated by cmd/generate/main-generatets.go\n \n " )
71- fmt .Fprintf (& buf , "import * as WOS from \" ./wos\" ;\n \n " )
64+ fd , err := os .Create ("frontend/app/store/services.ts" )
65+ if err != nil {
66+ return err
67+ }
68+ defer fd .Close ()
69+ fmt .Fprintf (os .Stderr , "generating services file to %s\n " , fd .Name ())
70+ fmt .Fprintf (fd , "// Copyright 2024, Command Line Inc.\n " )
71+ fmt .Fprintf (fd , "// SPDX-License-Identifier: Apache-2.0\n \n " )
72+ fmt .Fprintf (fd , "// generated by cmd/generate/main-generatets.go\n \n " )
73+ fmt .Fprintf (fd , "import * as WOS from \" ./wos\" ;\n \n " )
7274 orderedKeys := utilfn .GetOrderedMapKeys (service .ServiceMap )
7375 for _ , serviceName := range orderedKeys {
7476 serviceObj := service .ServiceMap [serviceName ]
7577 svcStr := tsgen .GenerateServiceClass (serviceName , serviceObj , tsTypesMap )
76- fmt .Fprint (& buf , svcStr )
77- fmt .Fprint (& buf , "\n " )
78- }
79- err := tsgen .WriteFileIfChanged (fileName , []byte (buf .String ()), true )
80- if err != nil {
81- return err
78+ fmt .Fprint (fd , svcStr )
79+ fmt .Fprint (fd , "\n " )
8280 }
8381 return nil
8482}
8583
8684func generateWshClientApiFile (tsTypeMap map [reflect.Type ]string ) error {
87- var buf strings.Builder
88- fileName := "frontend/app/store/wshclientapi.ts"
85+ fd , err := os .Create ("frontend/app/store/wshclientapi.ts" )
86+ if err != nil {
87+ return err
88+ }
89+ defer fd .Close ()
8990 declMap := wshrpc .GenerateWshCommandDeclMap ()
90- fmt .Fprintf (os .Stderr , "generating wshclientapi file to %s\n " , fileName )
91- fmt .Fprintf (& buf , "// Copyright 2024, Command Line Inc.\n " )
92- fmt .Fprintf (& buf , "// SPDX-License-Identifier: Apache-2.0\n \n " )
93- fmt .Fprintf (& buf , "// generated by cmd/generate/main-generatets.go\n \n " )
94- fmt .Fprintf (& buf , "import { WshClient } from \" ./wshclient\" ;\n \n " )
91+ fmt .Fprintf (os .Stderr , "generating wshclientapi file to %s\n " , fd . Name () )
92+ fmt .Fprintf (fd , "// Copyright 2024, Command Line Inc.\n " )
93+ fmt .Fprintf (fd , "// SPDX-License-Identifier: Apache-2.0\n \n " )
94+ fmt .Fprintf (fd , "// generated by cmd/generate/main-generatets.go\n \n " )
95+ fmt .Fprintf (fd , "import { WshClient } from \" ./wshclient\" ;\n \n " )
9596 orderedKeys := utilfn .GetOrderedMapKeys (declMap )
96- fmt .Fprintf (& buf , "// WshServerCommandToDeclMap\n " )
97- fmt .Fprintf (& buf , "class RpcApiType {\n " )
97+ fmt .Fprintf (fd , "// WshServerCommandToDeclMap\n " )
98+ fmt .Fprintf (fd , "class RpcApiType {\n " )
9899 for _ , methodDecl := range orderedKeys {
99100 methodDecl := declMap [methodDecl ]
100101 methodStr := tsgen .GenerateWshClientApiMethod (methodDecl , tsTypeMap )
101- fmt .Fprint (& buf , methodStr )
102- fmt .Fprintf (& buf , "\n " )
103- }
104- fmt .Fprintf (& buf , "}\n \n " )
105- fmt .Fprintf (& buf , "export const RpcApi = new RpcApiType();\n " )
106- err := tsgen .WriteFileIfChanged (fileName , []byte (buf .String ()), true )
107- if err != nil {
108- return err
102+ fmt .Fprint (fd , methodStr )
103+ fmt .Fprintf (fd , "\n " )
109104 }
105+ fmt .Fprintf (fd , "}\n \n " )
106+ fmt .Fprintf (fd , "export const RpcApi = new RpcApiType();\n " )
110107 return nil
111108}
112109
0 commit comments