···108108export { definePluginConfig, mappers } from './plugins/shared/utils/config';
109109export type { PluginInstanceTypes } from './plugins/shared/utils/instance';
110110export { PluginInstance } from './plugins/shared/utils/instance';
111111+export { buildSymbolIn } from './plugins/symbol';
111112export type {
112113 AnyPluginName,
113114 DefinePlugin,
+19-2
packages/shared/src/parser/hooks.ts
···11-import type { Node, Symbol, SymbolIn } from '@hey-api/codegen-core';
11+import type { Node, Symbol, SymbolIn, SymbolMeta } from '@hey-api/codegen-core';
2233import type { SchemaProcessorContext } from '../ir/schema-processor';
44-import type { IROperationObject } from '../ir/types';
44+import type { IROperationObject, IRSchemaObject } from '../ir/types';
55import type { PluginInstance } from '../plugins/shared/utils/instance';
6677export type Hooks = {
···210210 * @returns The file path to output the symbol to, or undefined to fallback to default behavior.
211211 */
212212 getFilePath?: (symbol: Symbol) => string | undefined;
213213+ /**
214214+ * Optional output strategy to override default plugin behavior.
215215+ *
216216+ * Use this to customize symbol names.
217217+ *
218218+ * @returns The name to register the symbol with, or undefined to fallback to default behavior.
219219+ */
220220+ getName?: (ctx: {
221221+ /** Arbitrary metadata about the symbol. */
222222+ meta: SymbolMeta;
223223+ /** The proposed name for the symbol. */
224224+ name: string;
225225+ /** The operation object associated with the symbol. */
226226+ operation?: IROperationObject;
227227+ /** The schema object associated with the symbol. */
228228+ schema?: IRSchemaObject;
229229+ }) => string | undefined;
213230 };
214231};