TypeScript serde layer
Fern’s TypeScript SDK generator includes an optional serde layer that determines whether the generated SDK matches your original API naming conventions (snake_case vs. camelCase, case-sensitive fields) or follows TypeScript conventions. This serde layer is controlled by the noSerdeLayer
option.
By default, the serde layer is disabled (noSerdeLayer: true
), meaning field names are preserved exactly as they appear in your API specification.
When to enable the serde layer
When you turn on the serde layer, (noSerdeLayer: false
), the TypeScript SDK generator includes custom serialization code that:
- Transforms all property names from your API to camelCase
- Validates requests and responses at runtime
- Supports complex types like
Date
andSet
.
Enable the serde layer when you want idiomatic TypeScript conventions and don’t have case-sensitive field conflicts. Keep it disabled when your API has fields that differ only by casing or when you need exact field name preservation.
Additional configuration options
Several configuration options work alongside an enabled serde layer:
skipResponseValidation
disables the serde layer’s runtime validation while keeping its transformation featuresallowExtraFields
permits properties not defined in your schema.useBigInt
enables custom JSON handling to preserve large number precision.
These options only take effect when the serde layer is enabled (noSerdeLayer: false
), as they require the custom serialization infrastructure.
For the complete list of all TypeScript configuration options, go to TypeScript configuration.