@nhost/hasura-storage-js
Version:
Hasura-storage client
131 lines (130 loc) • 3.41 kB
TypeScript
import { default as LegacyFormData } from 'form-data';
export type StorageErrorPayload = {
error: string;
status: number;
message: string;
};
export interface StorageActionErrorState {
/**
* @return `true` if an error occurred
* @depreacted use `!isSuccess` or `!!error` instead
* */
isError: boolean;
/** Provides details about the error */
error: StorageErrorPayload | null;
}
export interface FileUploadConfig {
accessToken?: string;
url: string;
adminSecret?: string;
}
export interface StorageHeadersParam {
headers?: Record<string, string>;
}
export interface StorageUploadFileParams extends StorageHeadersParam {
file: File;
id?: string;
name?: string;
bucketId?: string;
}
export interface StorageUploadFormDataParams extends StorageHeadersParam {
formData: FormData | LegacyFormData;
bucketId?: string;
}
export type StorageUploadParams = StorageUploadFileParams | StorageUploadFormDataParams;
export type StorageUploadFileResponse = {
fileMetadata: FileResponse;
error: null;
} | {
fileMetadata: null;
error: StorageErrorPayload;
};
export type StorageUploadFormDataResponse = {
fileMetadata: {
processedFiles: FileResponse[];
};
error: null;
} | {
fileMetadata: null;
error: StorageErrorPayload;
};
export type StorageUploadResponse = StorageUploadFileResponse | StorageUploadFormDataResponse;
export interface StorageDownloadFileParams extends StorageImageTransformationParams, StorageHeadersParam {
fileId: string;
}
export type StorageDownloadFileResponse = {
file: Blob;
error: null;
} | {
file: null;
error: Error;
};
export interface StorageImageTransformationParams {
/** Image width, in pixels */
width?: number;
/** Image height, in pixels */
height?: number;
/** Image quality, between 1 and 100, 100 being the best quality */
quality?: number;
/** Image blur, between 0 and 100 */
blur?: number;
}
export interface StorageGetUrlParams extends StorageImageTransformationParams {
fileId: string;
}
export interface StorageGetPresignedUrlParams extends StorageImageTransformationParams, StorageHeadersParam {
fileId: string;
}
export type StorageGetPresignedUrlResponse = {
presignedUrl: {
url: string;
expiration: number;
};
error: null;
} | {
presignedUrl: null;
error: Error;
};
export interface StorageDeleteParams {
fileId: string;
}
export interface StorageDeleteResponse {
error: Error | null;
}
export interface FileResponse {
id: string;
name: string;
size: number;
mimeType: string;
etag: string;
createdAt: string;
bucketId: string;
isUploaded: true;
updatedAt: string;
uploadedByUserId: string;
}
export interface ApiGetPresignedUrlParams extends StorageHeadersParam {
fileId: string;
}
export type ApiGetPresignedUrlResponse = {
presignedUrl: {
url: string;
expiration: number;
};
error: null;
} | {
presignedUrl: null;
error: Error;
};
export interface ApiDeleteParams extends StorageHeadersParam {
fileId: string;
}
export interface ApiDeleteResponse {
error: Error | null;
}
export type UploadHeaders = HeadersInit & {
'x-nhost-bucket-id'?: string;
'x-nhost-file-id'?: string;
'x-nhost-file-name'?: string;
};
//# sourceMappingURL=types.d.ts.map