Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dynamode) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Dynamode is a modeling tool for Amazon's DynamoDB. Its goal is to ease the use of DynamoDB without its quirks and emphasize DynamoDB advantages over other databases. Dynamode provides a straightforward, object-oriented class-based solution to model your data. It includes strongly typed classes and methods, query and scan builders, and much more.
Dynamode is highly influenced by other ORMs/ODMs, such as TypeORM, Dynamoose and Mongoose.
Documentation
Check out our dedicated documentation page for info about the library, guide and more: https://blazejkustra.github.io/dynamode/docs/getting_started/introduction
Installation
Check out the installation section of our docs for the detailed installation instructions.
Examples
Find examples under the examples/ directory.
License
Dynamode is licensed under The MIT License.
Road map
Must have & priority
- Add tests and coverage
- Add logging possibility
- Capture dynamoDB errors and make it easier to work with
- Support binary types https://github.com/aws/aws-sdk-js-v3/blob/06417909a3/packages/util-dynamodb/src/convertToAttr.ts#L166 and https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_util_dynamodb.html
Additional validation
- Fix issue with empty set when using Entity.update (add additional validation) - empty set and string are not allowed https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html
- Add validation to query/scan classes
- Add validation to make sure that entities are registered have partitionKey and other stuff (think if it is needed at all)
Consider
- Allow passing empty objects to Entity.update
- Fix that you can't pass options object without { return: 'default' }
- Make possible to query different types of entities
- Add dependsOn to global settings to throw/warn when updating
- Add dynamoDB streams support
- Add PartiQL support
- CLI tool to create/update table/index
- Type entity return type better https://github.com/Polymer/polymer-decorators/issues/80
- Fix Condition, Query and Scan methods to work only on specific properties (between, contains etc shouldn't work for array as an example)
- convert all Date attributes to String/Number not only updatedAt and createdAt
Other
- You can only add local secondary indexes on tables with composite primary keys
- Add possibility to have more than one suffix/prefix