npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

simple-dynamodb-query

v0.2.1

Published

Better DynamoDB Query

Readme

Simple DynamoDB query

Description: Writing querry operation in the new V3 node api is still a pain. This gets slightly easier using the documentclient but it's still far from an enjoyable experience. That's why this package was created. It makes writing querries that are fully compatible with the API and mocking library very easy.

  • Technology stack: This project is written in TypeScript and meant as a small import into your current workflow.
  • Status: Early Alpha CHANGELOG.
  • There are a few other query builders for DynamoDB atm but none of them let you integrate with API provided from AWS. This is a simple drop in replacement class.

Dependencies

The only not dev dependency is the "@aws-sdk/lib-dynamodb" package.

Installation

just run npm install simple-dynamodb-query

Usage

If you want to query a PK you can do this very easily like this.

           const client = new DynamoDBClient({region: 'eu-west-1'});
           const docClient = DynamoDBDocumentClient.from(client);
           
           const command = new SimpleQueryCommand({
               TableName: 'PatientTasks',
               partitionKey: {
                   _PK: 'task_org.entity_shift'
               }
           });
           const result = await docClient.send(command);

If you want to filter on one of <, <=, >, >=, BETWEEN, BEGINS_WITH

           const client = new DynamoDBClient({region: 'eu-west-1'});
           const docClient = DynamoDBDocumentClient.from(client);
           
           const command = new SimpleQueryCommand({
               TableName: 'PatientTasks',
               partitionKey: {
                   _PK: 'task_org.entity_shift'
               }
           }).sortKey('_SK')
            .between('0', '400');
           const result = await docClient.send(command);

If you want to query a GSI just like the regular API you just add IndexName

           const client = new DynamoDBClient({region: 'eu-west-1'});
           const docClient = DynamoDBDocumentClient.from(client);
           
           const command = new SimpleQueryCommand({
               TableName: 'PatientTasks',
               IndexName: 'GlobalIndex1'
               partitionKey: {
                   _PK: 'task_org.entity_shift'
               }
           }).sortKey('_SK')
            .between('0', '400');
           const result = await docClient.send(command);

Ofcourse this is also compatible with async generators

        const paginatorConfig = {
            client: docClient,
            pageSize: 25
        };
        
        const command = new SimpleQueryCommand({
               TableName: 'PatientTasks',
               IndexName: 'GlobalIndex1'
               partitionKey: {
                   _PK: 'task_org.entity_shift'
               }
           });
           
        const page = paginateQuery(paginatorConfig, command.input);

        for await (const item of page) {
            console.log(page);
        }

Getting help

If you have questions, concerns, bug reports, etc, please file an issue in this repository's Issue Tracker.

Getting involved

Currently still looking at other classes that could use a more dev friendly api.


Open source licensing info

  1. TERMS
  2. LICENSE
  3. CFPB Source Code Policy

Credits and references

  1. Dynongo https://github.com/SamVerschueren/dynongo
  2. AWS API https://github.com/aws/aws-sdk-js-v3