duenamodb
Version:
Simple DynamoDB client written in TypeScript.
131 lines (89 loc) • 2.04 kB
Markdown
# dÜnamodb 📀
Simple DynamoDB client written in TypeScript.
## Setup 🛠
Install the package
```bash
pnpm install duenamodb
```
```bash
npm install duenamodb
```
If not running in AWS Lambda configure the Client using the static accessor on the DDBClient class.
```ts
DDBClient.params = {
region: 'localhost',
endpoint: `http://localhost:8000`,
};
```
Also you might need to provide mock AWS credentials inside the environment variables.
## API 📄
The API of dÜnamodb is straight forward. There is a create Function for every DynamoDB action.
### Create the Functions 🏗
To interact with your DynamoDB use the create-functions from the dÜnamodb lib
Put item:
```ts
const putItem = createPutItem<Attributes>(tableName);
```
Get item:
```ts
const getItem = createGetItem<Attributes, string>(tableName, partitionKeyName);
```
Update item:
```ts
const updateItem = createUpdateItem<Attributes>(tableName);
```
Scan items:
```ts
const scanItems = createScanItems<Attributes>(tableName);
```
Query items:
```ts
const queryItems = createQueryItems<Attributes, number>(tableName, {
name,
partitionKeyName,
});
```
Delete item:
```ts
const deleteItem = createDeleteItem<Attributes, string>(
tablename,
partitionKeyName
);
```
### Utilites
There is also a utility function that creates the scan, put, update, get and delete function.
```ts
const { getItem, scanItems, updateItem } = createTableFunctions<
Attributes,
string
>(tablename, partitionKeyName);
```
### Use the Functions 👷♀️
Use the functions to read and write data from the DB
Put item:
```ts
await saveItem({ id: "1", name: "foo", ... });
```
Get item:
```ts
const getResult = await getItem('1');
```
Update item:
```ts
const updateResult = await updateItem(
{ ...item, name: 'bar' },
{ updateKeys: ['name'] }
);
```
Scan items:
```ts
const scanResult = await scanItems();
```
Query items:
```ts
const queryResult = await queryItems('foo');
```
Delete item:
```ts
const success = await deleteItem('1');
```