Skip to content

DynamoDB client for NodeJS and browser with a fluent api to build requests. We take care of the type mapping between JS and DynamoDB, customizable trough typescript decorators.

License

Notifications You must be signed in to change notification settings

shiftcode/dynamo-easy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2e1ad7c Β· Jan 26, 2024
Jun 12, 2020
Feb 18, 2019
Apr 22, 2021
Sep 15, 2020
Apr 6, 2020
Feb 12, 2019
Nov 28, 2018
Aug 18, 2017
Jul 27, 2017
Feb 6, 2019
Apr 6, 2020
Aug 10, 2018
Nov 22, 2018
Sep 3, 2020
Feb 12, 2019
Jan 31, 2020
Feb 12, 2019
Aug 26, 2019
Jun 4, 2020
Jan 26, 2024
Apr 3, 2020
Oct 10, 2019
Feb 6, 2019
Jan 3, 2019

Repository files navigation

Dynamo-Easy

Travis semantic-release latest-release Coverage Status styled with prettier All Contributors

A DynamoDB client which provides an easy to use fluent api to execute requests. It supports TypeScript decorators to define the necessary metadata for your models. You don't need to care about the mapping of JavaScript types to their DynamoDB types any more. We've got you covered.

Built with ❀️ by shiftcode.

Show me some code

import { Model, PartitionKey, DynamoStore } from '@shiftcoders/dynamo-easy'

@Model()
export class Person {
  @PartitionKey()
  id: string
  name: string
  yearOfBirth: number
}

const personStore = new DynamoStore(Person)

personStore
  .scan()
  .whereAttribute('yearOfBirth').equals(1958)
  .exec()
  .then(res => console.log('ALL items with yearOfBirth == 1958', res))

Resources

Credits

  • typescript-library-starter - Starter project which helps creating a TypeScript library project
  • vogels - To get an idea on how to build the fluent api
  • typestore - Inspiration on how to implement the model decorators

Contributors

Made with ❀️ by @michaelwittwer and all these wonderful contributors (emoji key):

Michael Wittwer
Michael Wittwer

πŸ€” πŸ’» ⚠️ πŸ“–
Simon Mumenthaler
Simon Mumenthaler

πŸ€” πŸ’» ⚠️ πŸ“–
Michael Lieberherr
Michael Lieberherr

πŸ’» πŸ“– ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!