-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Go template function to split string into array of strings. #3108
Go template function to split string into array of strings. #3108
Conversation
@@ -206,6 +206,7 @@ func Funcs() template.FuncMap { | |||
"call": Call, | |||
"prefixLines": prefixLines, | |||
"notNil": notNil, | |||
"strSplit": StrSplit, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to cover this with a test?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's actually calling go's standard library strings.Split
function only.
I would add some test scenarios If maintainers put such requirement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to a PR requirement, every new feature should have a test. So, it's not only my preference of adding tests.
It doesn't matter how simple the function's implementation is now, someone may change its implementation during a refactoring, and we won't catch this without a test.
Is this intended to be used in some of the existing gqlgen codegen templates? |
Not yet. I had some difficulties to write custom .gotpl for resolvers because of lack of string functions in codegen templates. This function is intended to help developers who wants to write own .gotpl. |
I don't mind the lack of test coverage on a std lib template function, but this isn't being used by any of the existing gqlgen codegen templates. Is your intention to use that in some places? |
Yes. As gqlgen enables to use custom templates for resolvers, I am using it in my custom resolver.gotpl which is not the part of the existing gqlgen codegen templates. |
Ok, thanks. I updated the PR description so it's easier to see that for in the changelog. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/99designs/gqlgen](https://togithub.com/99designs/gqlgen) | `v0.17.45` -> `v0.17.49` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2f99designs%2fgqlgen/v0.17.49?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2f99designs%2fgqlgen/v0.17.49?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2f99designs%2fgqlgen/v0.17.45/v0.17.49?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2f99designs%2fgqlgen/v0.17.45/v0.17.49?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>99designs/gqlgen (github.com/99designs/gqlgen)</summary> ### [`v0.17.49`](https://togithub.com/99designs/gqlgen/releases/tag/v0.17.49) [Compare Source](https://togithub.com/99designs/gqlgen/compare/v0.17.48...v0.17.49) #### What's Changed - chore(deps): bump golang.org/x/text from 0.15.0 to 0.16.0 in /\_examples by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3123 - chore(deps-dev): bump vite from 5.2.12 to 5.2.13 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3126 - chore(deps): bump golang.org/x/text from 0.15.0 to 0.16.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3124 - chore(deps): bump golang.org/x/tools from 0.21.0 to 0.22.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3125 - Linter update + add revive rules by [@​StevenACoffman](https://togithub.com/StevenACoffman) in [99designs/gqlgen#3127 - chore(deps): bump github.com/vektah/gqlparser/v2 from 2.5.12 to 2.5.14 in the go_modules group by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3133 - chore(deps-dev): bump braces from 3.0.2 to 3.0.3 in /integration in the npm_and_yarn group by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3134 - [#​3118](https://togithub.com/99designs/gqlgen/issues/3118) Add token limit option to fix CVE-2023-49559 by [@​xaviergodart](https://togithub.com/xaviergodart) in [99designs/gqlgen#3136 - refactor: add missed file.Close() and use t.TempDir() by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3137 #### New Contributors - [@​xaviergodart](https://togithub.com/xaviergodart) made their first contribution in [99designs/gqlgen#3136 **Full Changelog**: 99designs/gqlgen@v0.17.48...v0.17.49 ### [`v0.17.48`](https://togithub.com/99designs/gqlgen/releases/tag/v0.17.48) [Compare Source](https://togithub.com/99designs/gqlgen/compare/v0.17.47...v0.17.48) #### What's Changed - chore(deps-dev): bump [@​graphql-codegen/client-preset](https://togithub.com/graphql-codegen/client-preset) from 4.2.5 to 4.2.6 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3084 - chore(deps-dev): bump [@​apollo/client](https://togithub.com/apollo/client) from 3.10.3 to 3.10.4 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3085 - Embed extra fields config by [@​atzedus](https://togithub.com/atzedus) in [99designs/gqlgen#3088 - refactor: use 'any' instead of 'interface{}' for consistency by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3090 - refactor: UnmarshalID implementation by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3093 - refactor: simplify with strconv.FormatBool by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3094 - Fix go install gqlgen binary by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3095 - Ignore gorilla/websocket 1.5.1 in dependabot by [@​StevenACoffman](https://togithub.com/StevenACoffman) in [99designs/gqlgen#3097 - refactor: avoid panic in tests by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3098 - refactor: rename local variables to match Go codestyle by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3100 - refactor: use t.Log instead of fmt.Print by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3099 - Some minor test lint by [@​StevenACoffman](https://togithub.com/StevenACoffman) in [99designs/gqlgen#3102 - ignore websocket v1.5.1 release for dependabot updates to the \_examples module by [@​StevenACoffman](https://togithub.com/StevenACoffman) in [99designs/gqlgen#3101 - fix: tests failure, testifylint issues, pin golangci-lint version by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3105 - testifylint v1.3.0 fixes by [@​StevenACoffman](https://togithub.com/StevenACoffman) in [99designs/gqlgen#3103 - refactor: fix testifylint lint issues in examples by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3107 - Remove duplicated return_pointers_in_unmarshalinput explanation by [@​cirelli94](https://togithub.com/cirelli94) in [99designs/gqlgen#3109 - Go template function to split string into array of strings. by [@​khudayberdiyev25](https://togithub.com/khudayberdiyev25) in [99designs/gqlgen#3108 - Correct dataloader example by [@​mpldr](https://togithub.com/mpldr) in [99designs/gqlgen#3110 - Omit gqlgen version in config files used for tests by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3111 - refactor: use errors.New instead of fmt.Errorf where possible by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3112 - refactor: fix gocritic lint issues by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3113 - add option to omit panic handlers during development by [@​mpldr](https://togithub.com/mpldr) in [99designs/gqlgen#3114 - chore(deps-dev): bump vite from 5.2.11 to 5.2.12 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3117 #### New Contributors - [@​cirelli94](https://togithub.com/cirelli94) made their first contribution in [99designs/gqlgen#3109 - [@​khudayberdiyev25](https://togithub.com/khudayberdiyev25) made their first contribution in [99designs/gqlgen#3108 - [@​mpldr](https://togithub.com/mpldr) made their first contribution in [99designs/gqlgen#3110 **Full Changelog**: 99designs/gqlgen@v0.17.47...v0.17.48 ### [`v0.17.47`](https://togithub.com/99designs/gqlgen/releases/tag/v0.17.47) [Compare Source](https://togithub.com/99designs/gqlgen/compare/v0.17.46...v0.17.47) ##### What's Changed - chore: simplify generating examples in release script by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3064 - refactor: compile regex only once by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3063 - refactor: simplify test asserts by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3061 - Fix typo in error message by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3065 - chore: remove deprecated errcheck.ignore lint option by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3062 - chore(deps): bump golangci/golangci-lint-action from 5.3.0 to 6.0.1 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3069 - chore(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3071 - chore(deps-dev): bump [@​apollo/client](https://togithub.com/apollo/client) from 3.10.2 to 3.10.3 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3073 - chore(deps-dev): bump urql from 4.0.7 to 4.1.0 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3074 - chore(deps): bump golang.org/x/tools from 0.20.0 to 0.21.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3072 - chore(deps): bump github.com/sosodev/duration from 1.3.0 to 1.3.1 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3070 - Fix go mod tidy by [@​StevenACoffman](https://togithub.com/StevenACoffman) in [99designs/gqlgen#3075 - Ability to inline extraFields configuration. New [@​goExtraField](https://togithub.com/goExtraField) directive. by [@​atzedus](https://togithub.com/atzedus) in [99designs/gqlgen#3076 - Federation: Update docs to use IntrospectAndCompose by [@​frankywahl](https://togithub.com/frankywahl) in [99designs/gqlgen#3077 - bugfix for [@​goField](https://togithub.com/goField) + [@​goExtraField](https://togithub.com/goExtraField) combination by [@​atzedus](https://togithub.com/atzedus) in [99designs/gqlgen#3078 - Fix [#​2856](https://togithub.com/99designs/gqlgen/issues/2856): resolver receive previous implementation on render by [@​roneli](https://togithub.com/roneli) in [99designs/gqlgen#2886 - Update gqlparser to v2.5.12 by [@​StevenACoffman](https://togithub.com/StevenACoffman) in [99designs/gqlgen#3080 **Full Changelog**: 99designs/gqlgen@v0.17.46...v0.17.47 ### [`v0.17.46`](https://togithub.com/99designs/gqlgen/releases/tag/v0.17.46) [Compare Source](https://togithub.com/99designs/gqlgen/compare/v0.17.45...v0.17.46) #### What's Changed - Bump [@​apollo/client](https://togithub.com/apollo/client) from 3.9.6 to 3.9.7 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2970 - Bump vitest from 1.3.1 to 1.4.0 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2972 - Bump vite from 5.1.5 to 5.1.6 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2971 - chore: remove repetitive words by [@​deterclosed](https://togithub.com/deterclosed) in [99designs/gqlgen#2976 - Bump typescript from 5.4.2 to 5.4.3 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2979 - Bump vite from 5.1.6 to 5.2.6 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2978 - Bump [@​apollo/client](https://togithub.com/apollo/client) from 3.9.7 to 3.9.9 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2977 - Add UintID type binding by [@​nawivee](https://togithub.com/nawivee) in [99designs/gqlgen#2980 - Bump [@​graphql-codegen/client-preset](https://togithub.com/graphql-codegen/client-preset) from 4.2.4 to 4.2.5 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2983 - Bump graphql-sse from 2.5.2 to 2.5.3 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2985 - Bump vite from 5.2.6 to 5.2.7 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2984 - enum values binding by [@​nikitacrit](https://togithub.com/nikitacrit) in [99designs/gqlgen#2982 - fix: stop loading package dependencies by [@​agratta-silo](https://togithub.com/agratta-silo) in [99designs/gqlgen#2988 - Bump typescript from 5.4.3 to 5.4.4 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2993 - Bump [@​apollo/client](https://togithub.com/apollo/client) from 3.9.9 to 3.9.10 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2994 - Update `tools.go` url by [@​38elements](https://togithub.com/38elements) in [99designs/gqlgen#2987 - Bump vite from 5.2.7 to 5.2.8 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2992 - Bump golang.org/x/tools from 0.19.0 to 0.20.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2996 - Bump graphql-ws from 5.15.0 to 5.16.0 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2986 - Bump urql from 4.0.6 to 4.0.7 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#2995 - Mark ctx as unused when no arguments for FieldContextFunc by [@​halkeye](https://togithub.com/halkeye) in [99designs/gqlgen#2999 - chore: update Automatic Persisted Queries Link by [@​38elements](https://togithub.com/38elements) in [99designs/gqlgen#3005 - fix: codegen will \_ the fieldset parameter if its not needed by [@​halkeye](https://togithub.com/halkeye) in [99designs/gqlgen#3006 - Bump vitest from 1.4.0 to 1.5.0 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3012 - Bump typescript from 5.4.4 to 5.4.5 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3010 - Bump [@​apollo/client](https://togithub.com/apollo/client) from 3.9.10 to 3.9.11 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3011 - Bump vite from 5.2.8 to 5.2.10 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3015 - chore: fix some typos in comments by [@​knowmost](https://togithub.com/knowmost) in [99designs/gqlgen#3020 - chore: remove unused lint.txt by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3017 - Bump golangci/golangci-lint-action from 4.0.0 to 5.0.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3026 - Bump github.com/rs/cors from 1.10.1 to 1.11.0 in /\_examples by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3025 - Bump github.com/urfave/cli/v2 from 2.27.1 to 2.27.2 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3023 - Bump [@​apollo/client](https://togithub.com/apollo/client) from 3.9.11 to 3.10.1 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3022 - Bump vitest from 1.5.0 to 1.5.2 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3021 - Bump github.com/sosodev/duration from 1.2.0 to 1.3.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3024 - Fix test asserts: reverse expected and actual params by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3027 - refactor: simplify tests for `api.Generate` by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3031 - Improve federation resolver selection by [@​clayne11](https://togithub.com/clayne11) in [99designs/gqlgen#3029 - chore: `run.skip-dirs` is deprecated in golangci-lint v1.57 by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3034 - chore: remove redundant empty lines by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3035 - refactor: change test asserts to be more idiomatic by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3036 - docs: fix links to the docs latest version by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3038 - Fix codegen config tests: add file closing by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3037 - chore: remove deprecated build constraint by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3041 - chore: lint \_examples directory by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3042 - Add initial cache tests for MapCache and NoCache by [@​shion0625](https://togithub.com/shion0625) in [99designs/gqlgen#3040 - enum values binding v2 by [@​nikitacrit](https://togithub.com/nikitacrit) in [99designs/gqlgen#3014 - chore: simplify go generate in examples by [@​alexandear](https://togithub.com/alexandear) in [99designs/gqlgen#3033 - chore(deps): bump golangci/golangci-lint-action from 5.0.0 to 5.3.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3054 - chore(deps): bump golang.org/x/text from 0.14.0 to 0.15.0 in /\_examples by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3053 - chore(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3050 - chore(deps-dev): bump [@​apollo/client](https://togithub.com/apollo/client) from 3.10.1 to 3.10.2 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3049 - chore(deps-dev): bump vitest from 1.5.2 to 1.6.0 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3048 - chore(deps): bump github.com/PuerkitoBio/goquery from 1.9.1 to 1.9.2 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3051 - chore(deps): bump golang.org/x/text from 0.14.0 to 0.15.0 by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3052 - chore(deps-dev): bump vite from 5.2.10 to 5.2.11 in /integration by [@​dependabot](https://togithub.com/dependabot) in [99designs/gqlgen#3047 - fix: failed to build \_examples/websocket-initfunc/server/server.go ([#​3055](https://togithub.com/99designs/gqlgen/issues/3055)) by [@​Reimei1213](https://togithub.com/Reimei1213) in [99designs/gqlgen#3058 #### New Contributors - [@​deterclosed](https://togithub.com/deterclosed) made their first contribution in [99designs/gqlgen#2976 - [@​nawivee](https://togithub.com/nawivee) made their first contribution in [99designs/gqlgen#2980 - [@​nikitacrit](https://togithub.com/nikitacrit) made their first contribution in [99designs/gqlgen#2982 - [@​agratta-silo](https://togithub.com/agratta-silo) made their first contribution in [99designs/gqlgen#2988 - [@​38elements](https://togithub.com/38elements) made their first contribution in [99designs/gqlgen#2987 - [@​halkeye](https://togithub.com/halkeye) made their first contribution in [99designs/gqlgen#2999 - [@​knowmost](https://togithub.com/knowmost) made their first contribution in [99designs/gqlgen#3020 - [@​alexandear](https://togithub.com/alexandear) made their first contribution in [99designs/gqlgen#3017 - [@​shion0625](https://togithub.com/shion0625) made their first contribution in [99designs/gqlgen#3040 - [@​Reimei1213](https://togithub.com/Reimei1213) made their first contribution in [99designs/gqlgen#3058 **Full Changelog**: 99designs/gqlgen@v0.17.45...v0.17.46 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/infratographer/x). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yMC4xIiwidXBkYXRlZEluVmVyIjoiMzguMjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This adds new template function
strSplit
which splits string into array of strings.This function gives more flexibility for custom custom .gotpl templating for resolvers in codegen templates. This function is intended to help developers who wants to write own .gotpl.