2.3.1

(fix): Fixes an issue where OAuth clients would not compile when variables were configured in the SDK. Now, the oauth client is instantiated with any global path parameters or headers.

2.3.0

(feat): Change the outputSourceFiles default from false to true. This will affect the output when you generate the SDK to the local file system.

2.2.1

(fix): Ensure tests/wire is generated even when there are no wire tests generated. Otherwise, Jest throws an error because the wire test project roots doesn’t exist.

2.2.0

(feat): Improve generated package.json files:

  • Add engines field to specify minimum Node.js version supported as Node.js 18.
  • Add sideEffects: false
  • Add README.md and LICENSE to files array
  • Use GitHub shorthand for repository field.

You can override these fields using the packageJson config:

1# In generators.yml
2groups:
3 ts-sdk:
4 generators:
5 - name: fernapi/fern-typescript-node-sdk
6 config:
7 packageJson:
8 engines:
9 node: ">=16.0.0"

2.1.0

(feat): Split up Jest configuration into multiple projects. You can now run the following command to run tests:

  • yarn test: runs all tests
  • yarn test:unit: runs unit tests (any non-browser and non-wire tests)
  • yarn test:browser: runs browser only tests inside of js-dom
  • yarn test:wire: runs wire tests

You can now pass in paths and patterns as an argument to the above commands to filter down to specific tests. For example: yarn test tests/unit/fetcher

2.0.0

(feat): The TypeScript generator has received a large amount of improvements, but to maintain backwards compatibility, they require you to opt in using feature flags. The 2.0.0 release now has these feature flags enabled by default. Here’s an overview of the config defaults that have changed in generators.yml.

OptionBeforeNow
streamType"wrapper""web"
fileResponseType"stream""binary-response"
formDataSupport"Node16""Node18"
fetchSupport"node-fetch""native"

To avoid breaking changes, explicitly set the options above with the Before values in the config of your generator in generators.yml.

With these defaults, the generated SDKs will have ZERO dependencies (excluding devDependencies and ws in case of WebSocket generation). As a result, the SDKs are smaller, faster, more secure, and easier to use.

1.10.6

(fix): Publish multi-platform builds of the TypeScript SDK docker container.

1.10.4

(fix): Add omitFernHeaders configuration to omit Fern headers from the generated SDK.

1.10.3

(fix): Remove qs dependency.

1.10.2

(fix): Remove js-base64 dependency in favor of using native implementations.

1.10.5

(feat): Add default values to request parameters. For example, if you have a query parameter foo with a default value of bar, the generated request parameter will have a default value of bar.

To enable this, set useDefaultRequestParameterValues to true in the config of your generator configuration.

1# In generators.yml
2groups:
3 ts-sdk:
4 generators:
5 - name: fernapi/fern-typescript-node-sdk
6 config:
7 useDefaultRequestParameterValues: true

1.10.1

(fix): Remove url-join dependency in favor of a handwritten joinUrl function.

1.10.0

(feat): Add fetchSupport configuration which lets you choose between node-fetch and native. The default is node-fetch. If you choose native, the node-fetch dependency will be removed.

1.9.1

(fix): Improve auto-pagination logic to consider empty strings in response as null cursors and stop paging.

1.9.0

(feat): Add formDataSupport configuration which lets you choose between Node16 and Node18. The default is Node16. If you choose Node18, the form-data, formdata-node, and form-data-encoder dependencies will be removed. formDataSupport: Node18 supports uploading files from the following types:

  • Buffer
  • File
  • Blob
  • Readable (includes Readstream)
  • ReadableStream
  • ArrayBuffer
  • Uint8Array

1.8.2

(fix): When a multipart form part is explicitly marked as JSON, serialize the data as JSON regardless of type. This also means arrays, maps, etc. will not be split into multiple parts, but serialized to JSON as a single part.

1.8.1

(fix): Fix binary response README.md examples

1.8.0

(feat): You can now specify whether to return the BinaryResponse type for binary response endpoints. Change the response type by setting fileResponseType to stream or binary-response in the config of your generator configuration. The default is stream for backwards compatibility, but we recommend using binary-response.

Here’s how you users can interact with the BinaryResponse:

1const response = await client.getFile(...);
2const stream = response.stream();
3// const arrayBuffer = await response.arrayBuffer();
4// const blob = await response.blob();
5// const bytes = await response.bytes();
6const bodyUsed = response.bodyUsed;

The user can choose how to consume the binary data.

1.7.2

(fix): Fix bug where duplicate file generation was silently allowed instead of failing. The withSourceFile method now properly handles the overwrite option to prevent unintended file overwrites.

1.7.1

(fix): jest.config.mjs now only maps relative path modules that end on .js to their .ts equivalent.

1.7.0

(feat): Allow users to specify the path they’d like to generate the SDK to.

Here’s an example of how to implement this in generators.yml:

1# In generators.yml
2groups:
3 ts-sdk:
4 generators:
5 - name: fernapi/fern-typescript-node-sdk
6 config:
7 packagePath: src/package-path

1.6.0

(feat): You can now specify whether to return streams using the stream wrapper, or return the web standard stream. Change the type of stream returned by setting streamType to wrapper or web in the config of your generator configuration. The default is wrapper.

(internal): tests/unit/zurg are moved to tests/unit/schemas to match the name in src/core/schemas which is what the tests are verifying.