mains: pass FS nils for Files() DSL; mark Files-only services as HTTP (fixes #223) #224
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
nilper Files() endpoint when calling the generated HTTP server constructor, avoiding "not enough arguments" compile errors when FILES() DSL is used.Why
http.FileSystemargument for each Files() endpoint. The previous mains template always passed a fixed pair ofnilarguments (errhandler + formatter), which is insufficient when Files() is present (see Mains Plugin does not work with FILES() DSL #223).How
http.goviahttpcodegen.ServiceData.FileServersand fallback to the design (expr.HTTPServiceExpr.FileServers) when needed.FileServerNils []intto the mains template and append onenilargument per file server.len(FileServers) > 0asHasHTTPwhen building mains template data.Backwards compatibility
Tests
TestMainsAddsFileServerNilsto assert a service with 3 Files() endpoints results in aNew(...)call that ends with 5 consecutive, nilarguments (2 standard + 3 file servers).Fixes #223