tixte
Version:
A simple JS wrapper around the Tixte API with typings
134 lines (120 loc) • 2.52 kB
TypeScript
declare module "tixte" {
class Client {
apiKey:string;
constructor(apiKey: string);
getAccountInfo(): Promise<AccountDetails | TixteError>;
getDomains(): Promise<DomainResponse | TixteError>;
getSize(): Promise<SizeResponse | TixteError>;
uploadFile(
buffer: Buffer,
domain: string,
options?: UploadOptions
): Promise<UploadFileResponse | TixteError>;
updateFile(
id: string,
fileInfo: UpdateFileInfo
): Promise<UpdateFileResponse>;
deleteFile(id: string): Promise<DeleteFileResponse | TixteError>;
}
}
declare interface AccountDetails {
success: boolean;
data: {
id: string;
username: string;
mfa_enabled: boolean;
pro: boolean;
beta: boolean;
admin: boolean;
staff: boolean;
email: string;
email_verified: boolean;
phone?: string;
avatar?: string;
upload_region: string;
last_login: string;
};
}
declare interface DomainResponse {
success: boolean;
data: {
domains: [
{
name: string;
owner: string;
uploads: number;
}
];
};
}
declare interface SizeResponse {
success: boolean;
data: {
user: number;
limit: number;
premium_tier: number;
};
}
declare interface UploadOptions {
extension: string;
filename: string;
private?: boolean;
}
declare interface UpdateFileInfo {
name?: string;
extension?: string;
private?: boolean;
}
declare interface UploadFileResponse {
success: boolean;
size: number;
data: {
id: string;
name: string;
region: string;
filename: string;
extension: string;
domain: string;
type: number;
permissions: [
{
user: TixteUser;
access_level: number;
}
];
url: string;
direct_url: string;
deletion_url: string;
message: string;
};
}
declare interface UpdateFileResponse {
success: boolean;
data: {
asset_id: string;
domain: string;
extension: string;
mimetype: string;
name: string;
size: number;
uploaded_at: string;
};
}
declare interface DeleteFileResponse {
success: boolean;
data: {
message: string;
};
}
declare interface TixteUser {
id: string;
username: string;
avatar: string;
}
declare interface TixteError {
success: boolean;
error: {
code: string;
message: string;
};
}