1.2.0 • Published 21 days ago

dynamode v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
21 days ago

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 here for info about the library, guide and more.

Installation

Check out the installation section of our docs for the detailed installation instructions.

License

Dynamode is licensed under The MIT License.

Examples

Example table definition:

type ExampleTableProps = {
  propPk: string;
  propSk: number;
  index: string;
};

const TABLE_NAME = 'example-table';

class ExampleTable extends Entity {
  @attribute.partitionKey.string()
  propPk: string;

  @attribute.sortKey.number()
  propSk: number;

  @attribute.lsi.sortKey.string({ indexName: 'LSI_NAME' })
  index: string;

  constructor(props: ExampleTableProps) {
    super();

    this.propPk = props.propPk;
    this.propSk = props.propSk;
    this.index = props.index;
  }
}

export const ExampleTableManager = new TableManager(ExampleTable, {
  tableName: TABLE_NAME,
  partitionKey: 'propPk',
  sortKey: 'propSk',
  indexes: {
    LSI_NAME: {
      sortKey: 'index',
    },
  },
});

await ExampleTableManager.create();

Example entity definition:

type ExampleEntityProps = ExampleTableProps & {
  attr: { [k: string]: number };
};

export class ExampleEntity extends ExampleTable {
  @attribute.object()
  attr: { [k: string]: number };

  constructor(props: ExampleEntityProps) {
    super(props);

    this.attr = props.attr;
  }
}

export const ExampleEntityManager = ExampleTableManager.entityManager(ExampleEntity);

await ExampleEntityManager.put(new ExampleEntityManager({ ... }));

Find more examples under the examples/ directory.

1.2.0

21 days ago

1.1.0

25 days ago

1.0.1-rc.0

29 days ago

1.0.0

2 months ago

0.7.9-rc.5

2 months ago

0.7.9-rc.4

2 months ago

0.7.9-rc.2

2 months ago

0.7.9-rc.1

2 months ago

0.7.9-rc.0

2 months ago

0.7.8

4 months ago

0.7.7

4 months ago

0.7.6

4 months ago

0.7.5

4 months ago

0.7.2

9 months ago

0.7.3

9 months ago

0.7.1

10 months ago

0.7.0

10 months ago

0.6.1

1 year ago

0.6.0

1 year ago

0.3.0

2 years ago

0.5.0

2 years ago

0.4.0

2 years ago

0.5.1

2 years ago

0.1.1

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago