avro
avro copied to clipboard
avrogo generates non-idiomatic names
Names produced by avrogo
do not follow idiomatic Go capitalisation/initialisation rules. (e.g. use ID
rather than id
or Id
).
This can be reproduced with the following schema
{
"name": "User",
"type": "record",
"fields": [
{
"name": "userID",
"type": {
"type": "string",
"logicalType": "uuid"
}
}
]
}
avrogo
generates
type User struct {
Userid uuid.UUID `json:"userID"`
}
but an idiomatic representation would be
type User struct {
UserID uuid.UUID `json:"userID"`
}
There are third-party libraries available to achieve this (e.g. github.com/hamba/avro uses github.com/ettle/strcase's PascalCase).
If this were implemented then it would be helpful to allow additional initialisms with command line arguments. For example in my use case I have schemas referring to MW
(megawatts) and would like that initialised too.
I'm happy to work on this but I want to check if the change would be accepted before starting.
Hello,
and thanks for the suggestion.
This is a reasonable request so please feel free to submit a PR One thing that should be done though is preserve the current behavior to avoid breaking changes. Maybe a flag can be introduced to specify which case to use?
Hello, please could someone review the PR I opened?
Hello @skateinmars. Do you think you would be able to review this PR please ?