diff --git a/types/cloudinary_ts_spec.ts b/types/cloudinary_ts_spec.ts index 418cf839..26f3bfd3 100644 --- a/types/cloudinary_ts_spec.ts +++ b/types/cloudinary_ts_spec.ts @@ -681,13 +681,13 @@ cloudinary.v2.uploader.text("Sample text string", font_weight: "bold" }); -// $ExpectType Promise +// $ExpectType Promise cloudinary.v2.uploader.upload("http://www.example.com/sample.jpg", function (error, result) { console.log(result, error); }); -// $ExpectType Promise +// $ExpectType Promise cloudinary.v2.uploader.upload("ftp://user1:mypass@ftp.example.com/sample.jpg", { eager: [ @@ -698,7 +698,7 @@ cloudinary.v2.uploader.upload("ftp://user1:mypass@ftp.example.com/sample.jpg", console.log(result, error); }); -// $ExpectType Promise +// $ExpectType Promise cloudinary.v2.uploader.upload_large("my_large_video.mp4", { resource_type: "video", @@ -707,7 +707,7 @@ cloudinary.v2.uploader.upload_large("my_large_video.mp4", function (error, result) {console.log(result, error); }); -// $ExpectType Promise +// $ExpectType Promise cloudinary.v2.uploader.upload_large("my_large_video.mp4", {resource_type: "video"}, function (error, result) { diff --git a/types/index.d.ts b/types/index.d.ts index ace1e6d5..7ede6a25 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -550,7 +550,44 @@ declare module 'cloudinary' { type TargetArchiveFormat = string | "zip" | "tgz"; // err is kept for backwards compatibility, it currently will always be undefined - type ResponseCallback = (callResult: any, err?: any) => any; + type ResponseCallback = (err?: any, callResult?: any) => any; + + type UploadResponseCallback = (err?: UploadApiErrorResponse, callResult?: UploadApiResponse) => void; + + export interface UploadApiResponse { + public_id: string; + version: number; + signature: string; + width: number; + height: number; + format: string; + resource_type: string; + created_at: string; + tags: Array; + pages: number; + bytes: number; + type: string; + etag: string; + placeholder: boolean; + url: string; + secure_url: string; + access_mode: string; + original_filename: string; + moderation: Array; + access_control: Array; + context: object; + metadata: object; + + [futureKey: string]: any; + } + + export interface UploadApiErrorResponse { + message: string; + name: string; + http_code: number; + + [futureKey: string]: any; + } class UploadStream extends Transform { } @@ -847,25 +884,25 @@ declare module 'cloudinary' { function unsigned_upload_stream(upload_preset: string, callback?: ResponseCallback): UploadStream; - function upload(file: string, options?: UploadApiOptions, callback?: ResponseCallback): Promise; + function upload(file: string, options?: UploadApiOptions, callback?: UploadResponseCallback): Promise; - function upload(file: string, callback?: ResponseCallback): Promise; + function upload(file: string, callback?: UploadResponseCallback): Promise; - function upload_chunked(path: string, options?: UploadApiOptions, callback?: ResponseCallback): Promise; + function upload_chunked(path: string, options?: UploadApiOptions, callback?: UploadResponseCallback): Promise; - function upload_chunked(path: string, callback?: ResponseCallback): Promise; + function upload_chunked(path: string, callback?: UploadResponseCallback): Promise; - function upload_chunked_stream(options?: UploadApiOptions, callback?: ResponseCallback): UploadStream; + function upload_chunked_stream(options?: UploadApiOptions, callback?: UploadResponseCallback): UploadStream; - function upload_large(path: string, options?: UploadApiOptions, callback?: ResponseCallback): Promise; + function upload_large(path: string, options?: UploadApiOptions, callback?: UploadResponseCallback): Promise; - function upload_large(path: string, callback?: ResponseCallback): Promise; + function upload_large(path: string, callback?: UploadResponseCallback): Promise; - function upload_stream(options?: UploadApiOptions, callback?: ResponseCallback): UploadStream; + function upload_stream(options?: UploadApiOptions, callback?: UploadResponseCallback): UploadStream; - function upload_stream(callback?: ResponseCallback): UploadStream; + function upload_stream(callback?: UploadResponseCallback): UploadStream; - function upload_tag_params(options?: UploadApiOptions, callback?: ResponseCallback): Promise; + function upload_tag_params(options?: UploadApiOptions, callback?: UploadResponseCallback): Promise; function upload_url(options?: ConfigOptions): Promise; }