@@ -3,6 +3,7 @@ package handlers
3
3
import (
4
4
"context"
5
5
"github.com/intelops/compage/core/internal/core"
6
+ corenode "github.com/intelops/compage/core/internal/core/node"
6
7
"github.com/intelops/compage/core/internal/integrations/deepsource"
7
8
"github.com/intelops/compage/core/internal/integrations/readme"
8
9
"github.com/intelops/compage/core/internal/languages"
@@ -28,80 +29,11 @@ func Handle(coreProject *core.Project) error {
28
29
// Iterate over all nodes and generate code for all nodes.
29
30
compageJSON := coreProject .CompageJSON
30
31
for _ , compageNode := range compageJSON .Nodes {
31
- log .Debugf ("processing node ID : %s " , compageNode .ID )
32
-
33
- // convert node to languageNode
34
- languageNode , err := languages .NewLanguageNode (compageJSON , compageNode )
32
+ err := processNode (coreProject , compageNode )
35
33
if err != nil {
36
- // return errors like certain protocols aren't yet supported
37
34
log .Debugf ("err : %s" , err )
38
35
return err
39
36
}
40
-
41
- // add values(LanguageNode and configs from coreProject) to context.
42
- languageCtx := languages .AddValuesToContext (context .Background (), coreProject , languageNode )
43
-
44
- // extract nodeDirectoryName for formatter
45
- values := languageCtx .Value (languages .ContextKeyLanguageContextVars ).(languages.Values )
46
- nodeDirectoryName := values .NodeDirectoryName
47
-
48
- // create node directory in projectDirectory depicting a subproject
49
- if err0 := utils .CreateDirectories (nodeDirectoryName ); err0 != nil {
50
- log .Debugf ("err : %s" , err0 )
51
- return err0
52
- }
53
-
54
- // process golang
55
- if languageNode .Language == languages .Go {
56
- // add values(LanguageNode and configs from coreProject) to context.
57
- goCtx := golang .AddValuesToContext (languageCtx )
58
- if err1 := golang .Process (goCtx ); err1 != nil {
59
- log .Debugf ("err : %s" , err1 )
60
- return err1
61
- }
62
- } else if languageNode .Language == languages .Python {
63
- // add values(LanguageNode and configs from coreProject) to context.
64
- pythonCtx := python .AddValuesToContext (languageCtx )
65
- if err1 := python .Process (pythonCtx ); err1 != nil {
66
- log .Debugf ("err : %s" , err1 )
67
- return err1
68
- }
69
- } else if languageNode .Language == languages .Java {
70
- // add values(LanguageNode and configs from coreProject) to context.
71
- javaCtx := java .AddValuesToContext (languageCtx )
72
- if err1 := java .Process (javaCtx ); err1 != nil {
73
- log .Debugf ("err : %s" , err1 )
74
- return err1
75
- }
76
- } else if languageNode .Language == languages .Rust {
77
- // add values(LanguageNode and configs from coreProject) to context.
78
- rustCtx := rust .AddValuesToContext (languageCtx )
79
- if err1 := rust .Process (rustCtx ); err1 != nil {
80
- log .Debugf ("err : %s" , err1 )
81
- return err1
82
- }
83
- } else if languageNode .Language == languages .JavaScript {
84
- // add values(LanguageNode and configs from coreProject) to context.
85
- javascriptCtx := javascript .AddValuesToContext (languageCtx )
86
- if err1 := javascript .Process (javascriptCtx ); err1 != nil {
87
- log .Debugf ("err : %s" , err1 )
88
- return err1
89
- }
90
- } else if languageNode .Language == languages .TypeScript {
91
- // add values(LanguageNode and configs from coreProject) to context.
92
- typescriptCtx := typescript .AddValuesToContext (languageCtx )
93
- if err1 := typescript .Process (typescriptCtx ); err1 != nil {
94
- log .Debugf ("err : %s" , err1 )
95
- return err1
96
- }
97
- } else if languageNode .Language == languages .Ruby {
98
- // add values(LanguageNode and configs from coreProject) to context.
99
- rubyCtx := ruby .AddValuesToContext (languageCtx )
100
- if err1 := ruby .Process (rubyCtx ); err1 != nil {
101
- log .Debugf ("err : %s" , err1 )
102
- return err1
103
- }
104
- }
105
37
}
106
38
107
39
// add deepsource at project level
@@ -118,3 +50,91 @@ func Handle(coreProject *core.Project) error {
118
50
119
51
return nil
120
52
}
53
+
54
+ func processNode (coreProject * core.Project , compageNode * corenode.Node ) error {
55
+ compageJSON := coreProject .CompageJSON
56
+ log .Debugf ("processing node ID : %s " , compageNode .ID )
57
+
58
+ // convert node to languageNode
59
+ languageNode , err := languages .NewLanguageNode (compageJSON , compageNode )
60
+ if err != nil {
61
+ // return errors like certain protocols aren't yet supported
62
+ log .Debugf ("err : %s" , err )
63
+ return err
64
+ }
65
+
66
+ // add values(LanguageNode and configs from coreProject) to context.
67
+ languageCtx := languages .AddValuesToContext (context .Background (), coreProject , languageNode )
68
+
69
+ // extract nodeDirectoryName for formatter
70
+ values := languageCtx .Value (languages .ContextKeyLanguageContextVars ).(languages.Values )
71
+ nodeDirectoryName := values .NodeDirectoryName
72
+
73
+ // create node directory in projectDirectory depicting a subproject
74
+ if err0 := utils .CreateDirectories (nodeDirectoryName ); err0 != nil {
75
+ log .Debugf ("err : %s" , err0 )
76
+ return err0
77
+ }
78
+
79
+ err = runLanguageProcess (languageNode , languageCtx )
80
+ if err != nil {
81
+ log .Debugf ("err : %s" , err )
82
+ return err
83
+ }
84
+ return nil
85
+ }
86
+
87
+ func runLanguageProcess (languageNode * languages.LanguageNode , languageCtx context.Context ) error {
88
+ // process golang
89
+ if languageNode .Language == languages .Go {
90
+ // add values(LanguageNode and configs from coreProject) to context.
91
+ goCtx := golang .AddValuesToContext (languageCtx )
92
+ if err1 := golang .Process (goCtx ); err1 != nil {
93
+ log .Debugf ("err : %s" , err1 )
94
+ return err1
95
+ }
96
+ } else if languageNode .Language == languages .Python {
97
+ // add values(LanguageNode and configs from coreProject) to context.
98
+ pythonCtx := python .AddValuesToContext (languageCtx )
99
+ if err1 := python .Process (pythonCtx ); err1 != nil {
100
+ log .Debugf ("err : %s" , err1 )
101
+ return err1
102
+ }
103
+ } else if languageNode .Language == languages .Java {
104
+ // add values(LanguageNode and configs from coreProject) to context.
105
+ javaCtx := java .AddValuesToContext (languageCtx )
106
+ if err1 := java .Process (javaCtx ); err1 != nil {
107
+ log .Debugf ("err : %s" , err1 )
108
+ return err1
109
+ }
110
+ } else if languageNode .Language == languages .Rust {
111
+ // add values(LanguageNode and configs from coreProject) to context.
112
+ rustCtx := rust .AddValuesToContext (languageCtx )
113
+ if err1 := rust .Process (rustCtx ); err1 != nil {
114
+ log .Debugf ("err : %s" , err1 )
115
+ return err1
116
+ }
117
+ } else if languageNode .Language == languages .JavaScript {
118
+ // add values(LanguageNode and configs from coreProject) to context.
119
+ javascriptCtx := javascript .AddValuesToContext (languageCtx )
120
+ if err1 := javascript .Process (javascriptCtx ); err1 != nil {
121
+ log .Debugf ("err : %s" , err1 )
122
+ return err1
123
+ }
124
+ } else if languageNode .Language == languages .TypeScript {
125
+ // add values(LanguageNode and configs from coreProject) to context.
126
+ typescriptCtx := typescript .AddValuesToContext (languageCtx )
127
+ if err1 := typescript .Process (typescriptCtx ); err1 != nil {
128
+ log .Debugf ("err : %s" , err1 )
129
+ return err1
130
+ }
131
+ } else if languageNode .Language == languages .Ruby {
132
+ // add values(LanguageNode and configs from coreProject) to context.
133
+ rubyCtx := ruby .AddValuesToContext (languageCtx )
134
+ if err1 := ruby .Process (rubyCtx ); err1 != nil {
135
+ log .Debugf ("err : %s" , err1 )
136
+ return err1
137
+ }
138
+ }
139
+ return nil
140
+ }
0 commit comments