Adding custom code
Fern-generated SDKs are designed to be extended with custom code. Your custom code can add additional functionality to the SDK and live in harmony with the generated code.
This page explains how to configure custom logic using a
.fernignore
file, create custom SDK methods, and add additional dependencies to your SDK.
Adding custom logic
If you want your SDK to do more than just make basic API calls (like combining
multiple calls, processing data, adding utilities), you can use .fernignore
to
protect your custom code from being overwritten during regeneration.
Simply add your custom files to the SDK repository and list them out in .fernignore
. Fern
won’t override any files that you add in .fernignore
.
To get started adding custom code:
Custom SDK methods
Fern also allows you to add custom methods to the SDK itself (e.g.
client.my_method()
) by inheriting the Fern generated client and then
extending it.
See an example from Flatfile using this process in their TypeScript SDK
Import and extend the generated client
First, import the Fern generated client from ../client
and alias it to FernClient
.
Next, extend FernClient
and add whatever methods you want.
See an example from Flatfile doing this in their FlatfileClient
Export the extended client
Update your index.ts
file to export the extended client instead of the generated client.
See an example index.ts from Flatfile
Update .fernignore
Add both the wrapper
directory and index.ts
to .fernignore
.
See an example .fernignore from Flatfile
Custom dependencies
To add packages that your custom code requires, update your generators.yml
.