0.0.5 • Published 2 years ago

dynamo-db-handler v0.0.5

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

dynamo-db-handler

The dynamo-db-handler library provides methods to interact with the AWS DynamoDB database.

Methods

The library provides the following methods:

setClient(): DynamoDBClient

Sets up and returns a DynamoDB client based on the configuration provided in the environment variables or using default configuration (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN,AWS_REGION).

save(params: PutItemCommandInput): Promise

Saves an item to DynamoDB using the PutItemCommand. Returns a Promise that resolves to the response from DynamoDB.

update(params: UpdateItemCommandInput): Promise

Updates an item in DynamoDB using the UpdateItemCommand. Returns a Promise that resolves to the response from DynamoDB.

bulk(objectsToProcess: Array, tableName: string): Promise

Performs a bulk write operation on DynamoDB by batching multiple items for efficient processing. Returns a Promise that resolves to true if the operation is successful.

query(queryCommandInput: QueryCommandInput): Promise<Array>

Executes a query on DynamoDB using the QueryCommand. Returns a Promise that resolves to an array of queried items.

findAll(params: ScanCommandInput): Promise<Array>

Retrieves all items from a DynamoDB table using the ScanCommand. Handles pagination automatically to fetch all items. Returns a Promise that resolves to an array of all items.

Usage/Examples

import { DynamoProvider } from "dynamo-db-handler"

// Create an instance of the DynamoProvider class
const dynamoProvider = new DynamoProvider();

// Use async/await to interact with DynamoDB

async function example() {
  // Set the DynamoDB client
  const client = await dynamoProvider.setClient();

  // Use the provided methods to interact with DynamoDB

  // Save an item to DynamoDB
  const putParams = {
    TableName: "YourTableName",
    Item: {
      id: { S: "1" },
      name: { S: "John Doe" },
      age: { N: "30" }
    }
  };

  try {
    const response = await dynamoProvider.save(putParams);
    console.log("Item saved:", response);
  } catch (error) {
    console.error("Error saving item:", error);
  }

  // Update an item in DynamoDB
  const updateParams = {
    TableName: "YourTableName",
    Key: {
      id: { S: "1" }
    },
    UpdateExpression: "SET #name = :name",
    ExpressionAttributeNames: {
      "#name": "name"
    },
    ExpressionAttributeValues: {
      ":name": { S: "Jane Doe" }
    }
  };

  try {
    const response = await dynamoProvider.update(updateParams);
    console.log("Item updated:", response);
  } catch (error) {
    console.error("Error updating item:", error);
  }

  // Perform a bulk write operation on DynamoDB
  const objectsToProcess = [
    { id: "1", name: "John" },
    { id: "2", name: "Jane" },
    // ...
  ];
  const tableName = "YourTableName";

  try {
    const success = await dynamoProvider.bulk(objectsToProcess, tableName);
    console.log("Bulk write operation completed:", success);
  } catch (error) {
    console.error("Error performing bulk write operation:", error);
  }

  // Execute a query on DynamoDB
  const queryCommandInput = {
    TableName: "YourTableName",
    KeyConditionExpression: "#id = :id",
    ExpressionAttributeNames: {
      "#id": "id"
    },
    ExpressionAttributeValues: {
      ":id": { S: "1" }
    }
  };

  try {
    const items = await dynamoProvider.query(queryCommandInput);
    console.log("Queried items:", items);
  } catch (error) {
    console.error("Error querying items:", error);
  }

  // Retrieve all items from a DynamoDB table
  const scanParams = {
    TableName: "YourTableName"
  };

  try {
    const items = await dynamoProvider.findAll(scanParams);
    console.log("All items:", items);
  } catch (error) {
    console.error("Error finding all items:", error);
  }
}

example();

Contribution

Contributions are welcome! If you want to improve this package or report any issues, please follow these steps:

1. Fork the repository.

2. Create a new branch

(git checkout -b feature/feature-name).

3. Make the necessary changes

and commit them (git commit -am 'Add new feature').

4. Push your changes

to the remote repository (git push origin feature/feature-name). Open a pull request on GitHub.

License

This project is licensed under the MIT License. See the LICENSE. file for more details.

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago