Compare commits

...

3 Commits

3 changed files with 20 additions and 5 deletions

1
.gitignore vendored
View File

@@ -25,3 +25,4 @@ go.work.sum
tests/*
atomctl
AGENTS.md
atom

View File

@@ -6,6 +6,8 @@ import (
"os"
"path/filepath"
"strings"
log "github.com/sirupsen/logrus"
)
// ParserConfig represents the configuration for the parser
@@ -77,7 +79,7 @@ func NewParserConfig() *ParserConfig {
StrictMode: false,
DefaultMode: "basic",
AllowTestFiles: false,
AllowGenFiles: false,
AllowGenFiles: true,
MaxFileSize: 10 * 1024 * 1024, // 10MB
Concurrency: 1,
CacheEnabled: true,
@@ -115,12 +117,9 @@ func (c *ParserContext) ShouldIncludeFile(filePath string) bool {
}
// Skip generated files if not allowed, but allow routes.gen.go and services.gen.go since they may contain providers
if !c.Config.AllowGenFiles {
if !c.Config.AllowGenFiles && strings.HasSuffix(filePath, ".gen.go") {
return false
}
// if !c.Config.AllowGenFiles && strings.HasSuffix(filePath, ".gen.go") && !strings.HasSuffix(filePath, "routes.gen.go") && !strings.HasSuffix(filePath, "services.gen.go") {
// return false
// }
// Check file size
if info, err := os.Stat(filePath); err == nil {
@@ -132,6 +131,7 @@ func (c *ParserContext) ShouldIncludeFile(filePath string) bool {
// TODO: Implement include/exclude pattern matching
// For now, include all Go files that pass the basic checks
log.Debugf("Including file in parsing: %s", filePath)
return true
}

View File

@@ -27,6 +27,7 @@ func buildRenderData(opts RenderBuildOpts) (RenderData, error) {
imports := []string{}
controllers := []string{}
hasModelParams := false
for _, route := range opts.Routes {
imports = append(imports, route.Imports...)
@@ -46,6 +47,14 @@ func buildRenderData(opts RenderBuildOpts) (RenderData, error) {
return tok, true
})
// Check if any parameter has model field specified
for _, param := range action.Params {
if param.Model != "" && param.Position == PositionPath {
hasModelParams = true
break
}
}
rd.Routes[route.Name] = append(rd.Routes[route.Name], Router{
Method: strcase.ToCamel(action.Method),
Route: action.Route,
@@ -57,6 +66,11 @@ func buildRenderData(opts RenderBuildOpts) (RenderData, error) {
}
}
// Add field package import if there are model parameters
if hasModelParams {
imports = append(imports, `"go.ipao.vip/gen/field"`)
}
// de-dup and sort imports/controllers for stable output
rd.Imports = lo.Uniq(imports)
sort.Strings(rd.Imports)