Skip to content

AitorGuerrero/aws-dynamodb-streams

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DynamoDB streams

Power of streams bringed to dynamo DB API. The typescript declarations are the manin documentation.

This package is intended to adapt to the existing use cases, so if your use case is not contemplated, make a pull request.

Current available methods are:

Put

Writable stream for putting documents in a database. I recommend to use together with CollectionPut.

import {Put} from 'aws-dynamodb-streams';
import {DynamoDB} from 'aws-sdk';

let someDocument: any;

const put = new Put(new DynamoDB.DocumentClient());

put.write({
    MyTableName: {
        PutRequest: {
            Item: someDocument,
        },
    },
});

CollectionPut

Writable stream for putting documents in a table. Is a collection specific version of Put.

import {Put, CollectionPut} from 'aws-dynamodb-streams';
import {DynamoDB} from 'aws-sdk';

let someDocument: any;

const put = new Put(new DynamoDB.DocumentClient());
const collectionPut = new CollectionPut('MyTableName');
collectionPut.pipe(put);

collectionPut.write(someDocument);

Query

Readable stream for getting documents from a table with a indexed query.

import {Query} from 'aws-dynamodb-streams';
import {DynamoDB} from 'aws-sdk';
import {Writable} from 'stream';

let someDocument: any;

const query = new Query(
    new DynamoDB.DocumentClient(),
    {TableName: 'MyTableName'} // aws-sdk/dynamodb/document_client/QueryInput
);

query.pipe(new Writable({
    objectMode: true,
    write(document, ct, cb) {
        // Do something with document
        cb();
    }
}));

Scan

Readable stream for getting documents from a table with a not indexed query.

import {Scan} from 'aws-dynamodb-streams';
import {DynamoDB} from 'aws-sdk';
import {Writable} from 'stream';

let someDocument: any;

const scan = new Scan(
    new DynamoDB.DocumentClient(),
    {TableName: 'MyTableName'} // aws-sdk/dynamodb/document_client/ScanInput
);

scan.pipe(new Writable({
    objectMode: true,
    write(document, ct, cb) {
        // Do something with document
        cb();
    }
}));

About

Streams for ease dynamo db queries and scans manipulation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published