Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Changing default case of schema properties

Abierto
#118 2 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
typescript
Área
tooling

Línea de trabajo

Start with config.ts and the ConfigBase type, then trace how generateSchemaTypes and generateFetchers consume schema properties and required names. Decide whether casing belongs in configuration or a generation step, and define the expected behavior for both property and required names. The issue is done when the chosen behavior is implemented consistently and its scope is agreed.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hi,

I have a question about changing the case of generated schema properties.

Our OpenApi specification is generated from .NET API. Since all exported object properties have pascal case by default, generated schemas have also pascal, which is not TS/JS convention. It can be solved by these suggestions.

  • Changing the case in config.ts file. This method is not ideal, but works.
		to: async (context) => {
			const filenamePrefix = 'api';
			const { openAPIDocument: { components } } = context;
			for (const schema of Object.values(components?.schemas || {})) {
				if (!isSchemaObject(schema)) {
					continue;
				}
				const { properties, required } = schema;
				if (properties == null) {
					continue;
				}
				for (const propertyName of Object.keys(properties)) {
					const stored = properties[propertyName];
					delete properties[propertyName]
					properties[_.camelCase(propertyName)] = stored;
				}

				if (required != null) {
					for (let i = 0; i < required.length; i++) {
						const propertyName = required[i];
						required[i] = _.camelCase(propertyName);
					}
				}
			}
			const { schemasFiles } = await generateSchemaTypes(context, {
				filenamePrefix,
			});
			await generateFetchers(context, {
				filenamePrefix,
				schemasFiles,
			});
		},
  • Adding a new config parameter to override casings. It may look like the example below. I can make a PR for that if necessary.
export type ConfigBase = {
...
    filenameCase?: keyof Pick<typeof c, "snake" | "camel" | "kebab" | "pascal">;
  casing?: {
    schema?: {
      property?: keyof Pick<typeof c, "snake" | "camel" | "kebab" | "pascal">;
    }
  }
};

Which option is better? If none, how should solve this issue?

Thx for your answers.

Lenguaje dominante
TypeScript
Estrellas
634
Forks
83
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de fabien0102/openapi-codegen

Todos los issues de fabien0102/openapi-codegen

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.