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