This section details the available configuration options for the TypeScript SDK. All configuration is managed in the gen.yaml file under the typescript section.
typescript:
version: 1.2 .3
author: "Author Name"
packageName: "custom-sdk"
yml
Name
Required
Default Value
Description
version
true
0.0.1
The current version of the SDK.
packageName
true
openapi
The name of the npm package. See npm package guidelines .
author
true
Speakeasy
The name of the author of the published package. See npm author field .
typescript:
additionalPackageJSON:
license: "MIT"
yml
Name
Required
Default Value
Description
additionalPackageJSON
false
{}
Additional key/value pairs for the package.json file. Example: license, keywords, etc.
typescript:
additionalDependencies:
dependencies:
axios: "^0.21.0"
devDependencies:
typescript: "^4.0.0"
peerDependencies:
react: "^16.0.0"
yml
Name
Required
Default Value
Description
dependencies
false
{}
Additional production dependencies to include in the package.json.
devDependencies
false
{}
Additional development dependencies to include in the package.json.
peerDependencies
false
{}
Peer dependencies for compatibility.
typescript:
maxMethodParams: 3
methodArguments: "require-security-and-request"
yml
Name
Required
Default Value
Description
maxMethodParams
false
0
Maximum number of parameters before an input object is created. 0 means input objects are always used.
flatteningOrder
false
parameters-first or body-first
Determines the ordering of method arguments when flattening parameters and body fields.
methodArguments
false
require-security-and-request
Determines how arguments for SDK methods are generated.
typescript:
envVarPrefix: SPEAKEASY
flattenGlobalSecurity: true
yml
Property
Description
Type
Default
flattenGlobalSecurity
Enables inline security credentials during SDK instantiation. Recommended: true
boolean
true
envVarPrefix
Sets a prefix for environment variables that allows users to configure global parameters and security.
string
N/A
typescript:
moduleFormat: "dual"
useIndexModules: true
yml
Name
Required
Default Value
Description
useIndexModules
false
true
Controls generation of index modules (index.ts). Setting to false improves tree-shaking and build performance by avoiding barrel files.
moduleFormat
false
commonjs
Sets the module format to use when compiling the SDK (commonjs, esm, or dual). Using dual provides optimal compatibility while enabling modern bundler optimizations.
Performance optimization
For optimal bundle size and tree-shaking performance in modern applications, we recommend using moduleFormat: "dual" together with useIndexModules: false. This combination ensures maximum compatibility while enabling the best possible bundler optimizations.
See the module format configuration guide and barrel files documentation for detailed information about these optimizations.
typescript:
imports:
option: "openapi"
paths:
callbacks: models/callbacks
errors: models/errors
operations: models/operations
shared: models/components
webhooks: models/webhooks
yml
Field
Required
Default Value
Description
option
false
"openapi"
Defines the type of import strategy. Typically set to "openapi", indicating that the structure is based on the OpenAPI document.
paths
false
{}
Customizes where different parts of the SDK (e.g., callbacks, errors, and operations) will be imported from.
Component
Default Value
Description
callbacks
models/callbacks
The directory where callback models will be imported from.
errors
models/errors
The directory where error models will be imported from.
operations
models/operations
The directory where operation models (i.e., API endpoints) will be imported from.
shared
models/components
The directory for shared components, such as reusable schemas, and data models imported from the OpenAPI spec.
webhooks
models/webhooks
The directory for webhook models, if the SDK includes support for webhooks.
typescript:
clientServerStatusCodesAsErrors: false
responseFormat: "envelope-http"
enumFormat: "union"
yml
Property
Description
Type
Default
responseFormat
Defines how responses are structured. Options: envelope, envelope-http, or flat.
string
envelope-http
enumFormat
Determines how enums are generated. Options: enum (TypeScript enums) or union (union types).
string
union
clientServerStatusCodesAsErrors
Treats 4XX and 5XX status codes as errors. Set to false to treat them as normal responses.
boolean
true