UNPKG

duenamodb

Version:

Simple DynamoDB client written in TypeScript.

131 lines (89 loc) 2.04 kB
# 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'); ```