Skip to content

Instantly share code, notes, and snippets.

@donpark
Created September 26, 2016 02:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save donpark/0f919b908f9b4cd10623c0149095682a to your computer and use it in GitHub Desktop.
Save donpark/0f919b908f9b4cd10623c0149095682a to your computer and use it in GitHub Desktop.
augment aws-sdk S3 with missing methods
import * as AWS from 'aws-sdk'
// extend S3 class via interface.
// could not get class augmenting to work in time. maybe not be possible even.
declare interface S3Extended extends AWS.S3 {
// missing methods
headBucket(params: any, callback?: (err: Error, data: any) => void): any;
createBucket(params: any, callback?: (err: Error, data: any) => void): any;
getBucketPolicy(params: any, callback?: (err: Error, data: any) => void): any;
putBucketPolicy(params: any, callback?: (err: Error, data: any) => void): any;
getBucketCors(params: any, callback?: (err: Error, data: any) => void): any;
putBucketCors(params: any, callback?: (err: Error, data: any) => void): any;
deleteObjects(params: any, callback?: (err: Error, data: any) => void): any;
upload(params: any): any;
}
// usage: just cast to extended interface
let client = new AWS.S3 as S3Extended
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment