Socket
Book a DemoInstallSign in
Socket

@mu-ts/dynamodb

Package Overview
Dependencies
Maintainers
3
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mu-ts/dynamodb

Nice sugarry layer over top of DynamoDB to make

latest
Source
npmnpm
Version
2.0.1
Version published
Maintainers
3
Created
Source

Objective

Nice sugarry layer over top of DynamoDB to make utilizing it quitea bit cleaner. Uses @aws-sdk library which is more moduarlized so your deploy sizes should be smaller.

This class also makes use of @mu-ts/serialization for some convenience behaviors while working with objects, like field encoding/encryption and uuid generation.

Class Decoration

Pretty straight forward, for any class you want associated to a table, decorate with @table. The first argument is the table name, the remaining arguments are the keys that make up the hash key for the table.

This example shows a composite key, as do the examples throughout, but to do a signle key you would just use a single attribute.

import { table } from '@mu-ts/dynamodb';

@serializable
@table(process.env.USER_TABLE_NAME)
class User {

  @primaryKey
  name: string;

  @sortKey
  age: number;

  @encode('hex')
  group?: string;

}

Command Functions

A handful of utilities for the common cases. Want more, create a merge request with your implementation.

Get an item.

import { getItem } from '@mu-ts/dynamodb';

const timmy: User = new User();
user.name = 'timmy'

const user: User = await getItem(timmy);

// or if no object.
const user: User = await getItem({name: 'timmy'}, 'the-table');

Put an item.

import { putItem } from '@mu-ts/dynamodb';

const timmy: User = new User();
user.name = 'timmy'
user.age = 15
user.group = 'super special'

const user: User = await putItem(user);

Delete an item.

import { deleteItem } from '@mu-ts/dynamodb';

const timmy: User = new User();
user.name = 'timmy'
user.age = 15
await deleteItem(timmy);

// or if no object
await deleteItem({name: 'timmy', age: 15}, 'table-to-delete-from');

Update an item

Uses the PutItem command which only updates specific attributes, for a record matching the corresponding hash key. If no hash key matches then a new item is created.

The value returned is a merging together of the values passed in as well as the old values returned back from DynamoDB.

import { updateItem } from '@mu-ts/dynamodb'

let user: User = new User()
user.name = 'john'
user.age = 46
user.group = 'blue'

user = await updateItem(user)

Keywords

mu-ts

FAQs

Package last updated on 25 Oct 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.