astrajs
astrajs copied to clipboard
Add TypeScript types
Something similar to:
declare module "@astrajs/rest" {
import { AxiosRequestConfig } from "axios";
interface AstraClientOptions {
configFile?: string;
configSection?: string;
baseApiPath?: string;
baseUrl?: string;
authUrl?: string;
authToken?: string;
applicationToken?: string;
autoReconnect?: boolean;
getAuthToken?: () => Promise<string>;
setAuthToken?: (authToken: string) => Promise<void>;
username?: string;
password?: string;
debug?: boolean;
authHeaderName?: string;
astraDatabaseId?: string;
astraDatabaseRegion?: string;
}
interface AstraClient extends AstraClientOptions {
get: (
path: string,
options?: AxiosRequestConfig
) => Promise<{ status: number; data: any }>;
post: (
path: string,
data: any,
options?: AxiosRequestConfig
) => Promise<{ status: number; data: any }>;
put: (
path: string,
data: any,
options?: AxiosRequestConfig
) => Promise<{ status: number; data: any }>;
patch: (
path: string,
data: any,
options?: AxiosRequestConfig
) => Promise<{ status: number; data: any }>;
delete: (
path: string,
options?: AxiosRequestConfig
) => Promise<{ status: number; data: any }>;
}
export function createClient(
options: AstraClientOptions
): Promise<AstraClient>;
export function axiosRequest(
options: AxiosRequestConfig & {
authToken?: string;
applicationToken?: string;
authHeaderName?: string;
}
): Promise<{ status: number; data: any }>;
}
Of course types could be improved further, but this at least offers a first step.
Disclaimer: Copilot chat might have or might have not generated this dts file.