We have added support for initializing the TypeScript SDK from JSON configuration files and environment variables to simplify setup and enhance developer experience.
Details
APIMatic's TypeScript SDKs now support two streamlined initialization paths:
- Configuration-based initialization using a JSON file via
Client.fromJsonConfig() - Environment-based initialization via
Client.fromEnvironment()with values fromprocess.env(Node.js) or a provided object (browser)
This enables environment-specific deployments, secure credential management, and runtime configuration updates without modifying code. In Node.js, you can optionally use .env files with dotenv to load environment variables.
What's New
A pair of new static methods has been added to the Client class:
fromJsonConfig(jsonString)reads client configuration from JSON contentfromEnvironment(env?: Record<string, string | undefined>)reads client configuration from environment variables (defaults toprocess.envin Node.js)
- Configuration-Based Client Initialization
- Environment-Based Client Initialization
import * as path from 'path';
import * as fs from 'fs';
import { Client } from 'your-package-name';
// Provide absolute path for the configuration file
const absolutePath = path.resolve('./config.json');
// Read the configuration file content
const fileContent = fs.readFileSync(absolutePath, 'utf-8');
// Initialize client from JSON configuration content
const client = Client.fromJsonConfig(fileContent);
Sample Configuration File
{
"environment": "production",
"httpClientOptions": {
"timeout": 30000,
"retryConfig": {
"maxNumberOfRetries": 3
},
"proxySettings": {
"address": "https://my.proxy.address",
"port": 8080
}
}
}
import * as dotenv from 'dotenv';
import * as path from 'path';
import * as fs from 'fs';
import { Client } from 'your-package-name';
// Optional - Provide absolute path for the .env file
const absolutePath = path.resolve('./.env');
if (fs.existsSync(absolutePath)) {
// Load environment variables from .env file
dotenv.config({ path: absolutePath, override: true });
}
// Initialize client using environment variables
const client = Client.fromEnvironment(process.env);
Sample .env File
# Basic Configuration
TIMEOUT=30000
ENVIRONMENT=production
# Retry Configuration
MAX_NUMBER_OF_RETRIES=3
# Proxy Settings
PROXY_ADDRESS=https://my.proxy.address
PROXY_PORT=8080
Developer Portal Enhancements
Updates have been made to the SDK Infrastructure section to include guidance for TypeScript. You can find detailed instructions for both configuration-based and environment-based initialization, including sample configuration and .env files.
Learn more about Client Initialization from Environment feature