Skip to content

Commit afd1eba

Browse files
committed
refactor WithPreservedFields
1 parent 2791676 commit afd1eba

File tree

4 files changed

+9
-6
lines changed

4 files changed

+9
-6
lines changed

pkg/github/pullrequests.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1170,7 +1170,7 @@ func ListPullRequests(t translations.TranslationHelperFunc) inventory.ServerTool
11701170
}
11711171

11721172
r, err := response.OptimizeList(prs,
1173-
response.WithPreservedFields(map[string]bool{"html_url": true, "draft": true}),
1173+
response.WithPreservedFields("html_url", "draft"),
11741174
response.WithCollectionExtractors(map[string][]string{
11751175
"labels": {"name"},
11761176
"requested_reviewers": {"login"},

pkg/github/repositories.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ func ListCommits(t translations.TranslationHelperFunc) inventory.ServerTool {
219219

220220
r, err := response.OptimizeList(minimalCommits,
221221
response.WithMaxDepth(3),
222-
response.WithPreservedFields(map[string]bool{"html_url": true}),
222+
response.WithPreservedFields("html_url"),
223223
)
224224
if err != nil {
225225
return nil, nil, fmt.Errorf("failed to marshal response: %w", err)
@@ -1675,7 +1675,7 @@ func ListReleases(t translations.TranslationHelperFunc) inventory.ServerTool {
16751675
}
16761676

16771677
r, err := response.OptimizeList(releases,
1678-
response.WithPreservedFields(map[string]bool{"html_url": true, "prerelease": true}),
1678+
response.WithPreservedFields("html_url", "prerelease"),
16791679
)
16801680
if err != nil {
16811681
return nil, nil, fmt.Errorf("failed to marshal response: %w", err)

pkg/response/optimize.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,12 @@ func WithMaxDepth(d int) OptimizeListOption {
3232
// WithPreservedFields sets keys that are exempt from all destructive strategies except whitespace normalization.
3333
// Keys are matched against post-flatten map keys, so for nested fields like "user.html_url", the dotted key must be
3434
// added explicitly. Empty collections are still dropped. Wins over collectionExtractors.
35-
func WithPreservedFields(fields map[string]bool) OptimizeListOption {
35+
func WithPreservedFields(fields ...string) OptimizeListOption {
3636
return func(c *OptimizeListConfig) {
37-
c.preservedFields = fields
37+
c.preservedFields = make(map[string]bool, len(fields))
38+
for _, f := range fields {
39+
c.preservedFields[f] = true
40+
}
3841
}
3942
}
4043

pkg/response/optimize_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func TestOptimizeList_AllStrategies(t *testing.T) {
153153
}
154154

155155
raw, err := OptimizeList(items,
156-
WithPreservedFields(map[string]bool{"html_url": true, "draft": true}),
156+
WithPreservedFields("html_url", "draft"),
157157
WithCollectionExtractors(map[string][]string{"labels": {"name"}}),
158158
)
159159
require.NoError(t, err)

0 commit comments

Comments
 (0)