@cloudbase/storage
Version:
cloudbase js sdk storage module
65 lines (64 loc) • 1.79 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
export type FileBody = ArrayBuffer | ArrayBufferView | Blob | Buffer | File | FormData | NodeJS.ReadableStream | ReadableStream<Uint8Array> | URLSearchParams | string;
export type BucketType = 'STANDARD' | 'ANALYTICS';
export interface Bucket {
id: string;
type?: BucketType;
name: string;
owner: string;
file_size_limit?: number;
allowed_mime_types?: string[];
created_at: string;
updated_at: string;
public: boolean;
}
export interface FileObject {
name: string;
bucket_id: string;
owner: string;
id: string;
updated_at: string;
created_at: string;
last_accessed_at: string;
metadata: Record<string, any>;
buckets: Bucket;
}
export interface FileObjectV2 {
id: string;
version: string;
name: string;
bucket_id: string;
updated_at: string;
created_at: string;
last_accessed_at: string;
size?: number;
cache_control?: string;
content_type?: string;
etag?: string;
last_modified?: string;
metadata?: Record<string, any>;
}
export interface FileOptions {
cacheControl?: string;
contentType?: string;
upsert?: boolean;
duplex?: string;
metadata?: Record<string, any>;
headers?: Record<string, string>;
}
export interface DestinationOptions {
destinationBucket?: string;
}
export interface TransformOptions {
width?: number;
height?: number;
resize?: 'cover' | 'contain' | 'fill';
quality?: number;
format?: 'origin';
}
type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}` ? `${Lowercase<P1>}${Uppercase<P2>}${CamelCase<P3>}` : S;
export type Camelize<T> = {
[K in keyof T as CamelCase<Extract<K, string>>]: T[K];
};
export {};