fix(graphql): invalid enum names when values include brackets (#13597)
### What? Brackets (`[ ]`) in option values end up in GraphQL enum names via `formatName`, causing schema generation to fail. This PR adds a single rule to `formatName`: - replace `[` and `]` with `_` ### Why? Using `_` (instead of removing the brackets) is safer and more consistent: - Avoid collisions: removal can merge distinct strings (`"A[B]"` → `"AB"`). `_` keeps them distinct (`"A_B"`). - **Consistency**: `formatName` already maps punctuation to `_` (`. - / + , ( ) '`). Brackets follow the same rule. Readability: `mb-[150px]` → `mb__150px_` is clearer than `mb150px`. Digits/units safety: removal can jam characters (`w-[2/3]` → `w23`); `_` avoids that (`w_2_3_`). ### How? Update formatName to include a bracket replacement step: ``` .replace(/\[|\]/g, '_') ``` No other call sites or value semantics change; only names containing brackets are affected. Fixes #13466 --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1211141396953194
This commit is contained in:
@@ -22,6 +22,7 @@ export const formatName = (string: string): string => {
|
||||
.replace(/\)/g, '_')
|
||||
.replace(/'/g, '_')
|
||||
.replace(/ /g, '')
|
||||
.replace(/\[|\]/g, '_')
|
||||
|
||||
return formatted || '_'
|
||||
}
|
||||
|
||||
@@ -145,6 +145,23 @@ export default buildConfigWithDefaults({
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'some[text]',
|
||||
type: 'text',
|
||||
},
|
||||
{
|
||||
name: 'spaceBottom',
|
||||
type: 'select',
|
||||
required: false,
|
||||
defaultValue: 'mb-0',
|
||||
options: [
|
||||
{ label: 'None', value: 'mb-0' },
|
||||
{ label: 'Small', value: 'mb-8' },
|
||||
{ label: 'Medium', value: 'mb-16' },
|
||||
{ label: 'Large', value: 'mb-24' },
|
||||
{ label: 'Extra Large', value: 'mb-[150px]' },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user