Wondering what’s next for npm?Check out our public roadmap! »

    got4aws
    TypeScript icon, indicating that this package has built-in type declarations

    1.2.1 • Public • Published

    got4aws CI

    Convenience wrapper for Got to interact with AWS v4 signed APIs

    Install

    $ npm install got4aws
    

    Usage

    Instead of:

    import got from 'got';
    import * as aws4 from 'aws4';
    import * as url from 'url';
    
    (async () => {
    	const {protocol, host, path} = url.parse('https://12abc34.execute-api.us-east-1.amazonaws.com/v0');
    
    	const request = {
    		protocol,
    		host,
    		path,
    		responseType: 'json'
    	};
    
    	aws4.sign(request);
    
    	const {body} = await got.get(request);
    
    	console.log(body);
    	//=> {status: 'ok'}
    })();

    You can do:

    import got4aws from 'got4aws';
    
    const got = got4aws();
    
    (async () => {
    	const {body} = await got.get('https://12abc34.execute-api.us-east-1.amazonaws.com/v0');
    
    	console.log(body);
    	//=> {status: 'ok'}
    })();

    If you want to load credentials from somewhere else, you can provide extra options to the factory function.

    import got4aws from 'got4aws';
    
    // Load credentials from `~/.aws/credentials`
    const got = got4aws({
    	providers: new AWS.SharedIniFileCredentials({profile: 'myProfile'})
    });
    
    (async () => {
    	const {body} = await got.get('https://12abc34.execute-api.us-east-1.amazonaws.com/v0');
    
    	console.log(body);
    	//=> {status: 'ok'}
    })();

    If you want to invoke an API Gateway endpoint with a custom domain, you will have to set the service and region as well because they can't be inferred.

    import got4aws from 'got4aws';
    
    const got = got4aws({
    	providers: new AWS.SharedIniFileCredentials({profile: 'myProfile'}),
    	service: 'execute-api',
    	region: 'eu-west-1'
    });
    
    (async () => {
    	const {body} = await got.get('https://api.unicorn.com/v0');
    
    	console.log(body);
    	//=> {status: 'ok'}
    })();

    API

    got4aws(options?)

    Returns a Got instance with a default responseType set to json.

    options

    providers

    Type: Credentials | Credentials[]
    Default: EnvironmentCredentials

    A provider or a list of providers used to search for AWS credentials. If no providers are provided, it will use the EnvironmentCredentials provider.

    See the CredentialProviderChain documentation for more information.

    service

    Type: string
    Default: inferred through URL

    The AWS service the request is being signed for. Will try to be inferred by the URL if not provided.

    For example, when signing a request for API Gateway with a custom domain, this should be execute-api.

    region

    Type: string
    Default: inferred through URL

    The region of the service being invoked. If it could not be inferred through the URL, it will default to us-east-1.

    Install

    npm i got4aws

    DownloadsWeekly Downloads

    1,100

    Version

    1.2.1

    License

    MIT

    Unpacked Size

    21.1 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar