A production-ready TypeScript library that provides a high-level, efficient interface for AWS DynamoDB operations using the AWS SDK v3.
This library offers enhanced type safety, automatic retries, batch processing, and comprehensive error handling.
- ✅ Complete DynamoDB Operations: All major DynamoDB commands supported
- ✅ Type Safety: Full TypeScript support with strict typing
- ✅ Automatic Retries: Exponential backoff with configurable retry logic
- ✅ Batch Processing: Automatic chunking and retry for batch operations
- ✅ Error Handling: Comprehensive error handling with custom error types
- ✅ Performance: Optimized for production use with efficient resource management
- ✅ Pagination: Built-in support for automatic pagination
- ✅ Capacity Metrics: Enhanced capacity tracking and monitoring with detailed metrics
- ✅ Metrics Aggregation: Automatic aggregation of capacity metrics across operations
| Operation | Method | Description |
|---|---|---|
| GetCommand | get() |
Retrieve a single item |
| PutCommand | put() |
Create or replace an item |
| UpdateCommand | update() |
Update an existing item |
| DeleteCommand | delete() |
Delete an item |
| BatchGetCommand | batchGet() |
Retrieve multiple items |
| BatchWriteCommand | batchWrite() |
Write/delete multiple items |
| TransactWriteCommand | transactWrite() |
Atomic write transactions |
| TransactGetCommand | transactGet() |
Atomic read transactions |
| QueryCommand | query() |
Query items with partition key |
| ScanCommand | scan() |
Scan table or index |
npm install @nicknaddaf/dynamodb-helpernpm install @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodbimport { DynamoDBHelper } from '@nicknaddaf/dynamodb-helper';
// Initialize the helper
const dynamoHelper = new DynamoDBHelper({
region: 'us-east-1',
});
// Create an item
const result = await dynamoHelper.put({
tableName: 'Users',
Item: {
userId: '123',
name: 'John Doe',
email: '[email protected]',
},
});
if (result.success) {
console.log('Item created successfully');
} else {
console.error('Error:', result.error?.message);
}const dynamoHelper = new DynamoDBHelper({
region: 'us-east-1',
endpoint: 'http://localhost:8000', // For local DynamoDB
credentials: {
accessKeyId: 'your-access-key',
secretAccessKey: 'your-secret-key',
},
maxRetries: 3,
});or you can accept the default values:
const dynamoHelper = new DynamoDBHelper({});Contributions are welcome! Please submit pull requests or open issues on GitHub.
MIT License - See LICENSE file for details.
- Initial release
- Support for all major DynamoDB operations
- TypeScript support with strict typing
- Automatic retries with exponential backoff
- Comprehensive error handling
- Batch operation support with automatic chunking
- Transaction support
- Pagination helpers
- Production-ready with extensive testing