···307307```
308308<!-- prettier-ignore-end -->
309309310310-You can skip processing by adding the output path to the tool’s ignore file (for example `.eslintignore` or `.prettierignore`).
310310+You can skip processing by adding the output path to the tool's ignore file (for example `.eslintignore` or `.prettierignore`).
311311312312## Name Conflicts
313313
+75-4
docs/openapi-ts/configuration/parser.md
···550550 input: 'hey-api/backend', // sign up at app.heyapi.dev
551551 output: 'src/client',
552552 parser: {
553553- hooks: {}, // configure global hooks here // [!code ++]
553553+ hooks: {}, // configure global hooks // [!code ++]
554554 },
555555};
556556```
···562562 plugins: [
563563 {
564564 name: '@tanstack/react-query',
565565- '~hooks': {}, // configure plugin hooks here // [!code ++]
565565+ '~hooks': {}, // configure plugin hooks // [!code ++]
566566 },
567567 ],
568568};
···651651 parser: {
652652 hooks: {
653653 symbols: {
654654- getFilePath: (symbol) => {
654654+ getFilePath: (symbol) => { // [!code ++]
655655 if (symbol.name) { // [!code ++]
656656 return symbol.name[0]?.toLowerCase(); // [!code ++]
657657 } // [!code ++]
658658+ }, // [!code ++]
659659+ },
660660+ },
661661+ },
662662+};
663663+```
664664+<!-- prettier-ignore-end -->
665665+666666+Most plugins expose configuration options that allow you to rename many of the generated symbols. If you need even more control, use the `getName()` hook.
667667+668668+#### Example: Enum naming
669669+670670+By default, generated enums use the same name for both the type and the runtime value.
671671+672672+::: code-group
673673+674674+```ts [example]
675675+export const Flags = {
676676+ ALPHA: 'alpha',
677677+ BETA: 'beta',
678678+} as const;
679679+680680+export type Flags = (typeof Flags)[keyof typeof Flags];
681681+```
682682+683683+```js [config]
684684+export default {
685685+ input: 'hey-api/backend', // sign up at app.heyapi.dev
686686+ output: 'src/client',
687687+ plugins: [
688688+ {
689689+ enums: 'javascript',
690690+ name: '@hey-api/typescript',
691691+ },
692692+ ],
693693+};
694694+```
695695+696696+:::
697697+698698+While this code works perfectly fine due to TypeScript's declaration merging, let's say we want to use a different name for the type. We can accomplish this with the `getName()` hook.
699699+700700+::: code-group
701701+702702+```ts [example]
703703+export const Flags = {
704704+ ALPHA: 'alpha',
705705+ BETA: 'beta',
706706+} as const;
707707+708708+export type FlagsType = (typeof Flags)[keyof typeof Flags]; // [!code ++]
709709+```
710710+711711+<!-- prettier-ignore-start -->
712712+```js [config]
713713+export default {
714714+ input: 'hey-api/backend', // sign up at app.heyapi.dev
715715+ output: 'src/client',
716716+ plugins: [
717717+ {
718718+ enums: 'javascript',
719719+ name: '@hey-api/typescript',
720720+ '~hooks': {
721721+ symbols: {
722722+ getName({ meta, name, schema }) { // [!code ++]
723723+ if (schema?.type === 'enum' && meta.category === 'type') { // [!code ++]
724724+ return `${name}Type`; // [!code ++]
725725+ } // [!code ++]
726726+ }, // [!code ++]
658727 },
659728 },
660729 },
661661- },
730730+ ],
662731};
663732```
664733<!-- prettier-ignore-end -->
734734+735735+:::
665736666737<!--@include: ../../partials/examples.md-->
667738<!--@include: ../../partials/sponsors.md-->