97b2089857
- Added `--route` and `--method` options to `function execute` command for better HTTP handling. - Improved `get function` command to display additional function metadata including HTTP settings, cache status, network restrictions, RAM limits, timeouts, and tags. - Removed deprecated `helloworld` command. - Expanded `update function` command with new options for Docker mounts, network restrictions, and various installation flags, including better error handling for boolean and number options. - Introduced environment variable management commands: `add`, `list`, and `remove` for account-wide environment variables. - Added `export` command to export authenticated account data. - Implemented `api openapi` and `api request` commands for direct API interaction. - Created logging and rate limit management commands for functions. - Added MCP tool commands for calling tools, fetching documentation, and initializing sessions. - Introduced utility functions for JSON handling and environment variable normalization. - Set up CI/CD pipeline with Gitea Actions for automated testing, building, and publishing. - Updated configuration loading to support environment variables for instance and token.
27 lines
668 B
TypeScript
27 lines
668 B
TypeScript
import axios, { AxiosInstance } from 'axios';
|
|
import { loadConfig } from './config.js';
|
|
import { createRequire } from 'module';
|
|
|
|
const require = createRequire(import.meta.url);
|
|
const pkg = require('../package.json');
|
|
|
|
let apiClient: AxiosInstance | null = null;
|
|
|
|
export async function getApiClient(): Promise<AxiosInstance> {
|
|
if (apiClient) return apiClient;
|
|
|
|
const config = await loadConfig();
|
|
|
|
apiClient = axios.create({
|
|
baseURL: config.SHSF_INSTANCE,
|
|
timeout: 120_000,
|
|
headers: {
|
|
'x-access-key': config.SHSF_TOKEN,
|
|
'Content-Type': 'application/json',
|
|
"User-Agent": "SHSF-CLI/" + pkg.version
|
|
},
|
|
});
|
|
|
|
return apiClient;
|
|
}
|