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 🙏

© 2024 – Pkg Stats / Ryan Hefner

rivia-dynamodb

v2.0.8

Published

DynamoDB wrapper with helpers

Downloads

1,062

Readme

Integração com DynamoDB

Este módulo fornece uma classe com funcionalidades para realizar consultas em uma tabela do DynamoDB, permitindo buscar itens com base em uma chave de partição, filtros opcionais e um ponto de partida opcional.

Pré Requisitos

Para o correto funcionamento do módulo, duas variáveis de ambiente devem existir no ambiente de execução.

REGION

A região da AWS onde a tabela do DynamoDB foi criada.

TABLE_NAME

O nome da tabela alvo das operações.

Configurações opcionais

Você pode customizar os nomes da sua chave de partição e da chave de classificação declarando as variáveis de ambiente abaixo:

DYNAMODB_PK_FIELD_NAME

O nome do campo definido como chave de partição na tabela. Se não for definido, o valor default pk será utilizado.

DYNAMODB_SK_FIELD_NAME

O nome do campo definido como chave de classificação na tabela. Se não for definido, o valor default sk será utilizado.

Funções Disponíveis

insert(item)

Insere um único item na tabela do DynamoDB.

  • Parâmetros:
    • item: Um objeto com os valores que serão inseridos.

exists(pk, sk)

Verifica se um item existe na tabela do DynamoDB com base na chave de partição (pk) e na chave de ordenação (sk).

  • Parâmetros:

    • pk: A chave de partição.
    • sk: A chave de ordenação.
  • Retorno: true se o item existir, false caso contrário.

existsWithSortKey(pk, skPrefix)

Verifica se existe algum item na tabela do DynamoDB com base na chave de partição (pk) e um prefixo para a chave de ordenação (skPrefix).

  • Parâmetros:

    • pk: A chave de partição.
    • skPrefix: O prefixo da chave de ordenação.
  • Retorno: true se algum item com o prefixo especificado existir, false caso contrário.

existsActiveWithSortKey(pk, skPrefix)

Verifica se existe algum item com status ativo na tabela do DynamoDB com base na chave de partição (pk) e um prefixo para a chave de ordenação (skPrefix).

  • Parâmetros:

    • pk: A chave de partição.
    • skPrefix: O prefixo da chave de ordenação.
  • Retorno: true se algum item com o prefixo especificado existir e esteja com status ativo ('active' = true), false caso contrário.

batchInsert(items)

Insere um lote de itens na tabela do DynamoDB.

  • Parâmetros:

    • items: Um array de objetos representando os itens a serem inseridos.
  • Retorno: Um objeto contendo os resultados da operação de inserção.

find(pk, sk)

Busca um item na tabela do DynamoDB com base na chave de partição (pk) e na chave de ordenação (sk).

  • Parâmetros:

    • pk: A chave de partição.
    • sk: A chave de ordenação.
  • Retorno: O item encontrado ou null se nenhum item for encontrado.

findByPrefix(pk, skPrefix)

Busca itens na tabela do DynamoDB com base na chave de partição (pk) e um prefixo para a chave de ordenação (skPrefix).

  • Parâmetros:

    • pk: A chave de partição.
    • skPrefix: O prefixo da chave de ordenação.
  • Retorno: Um array de itens que correspondem ao prefixo especificado.

query(pk, filters = [], startFrom = null)

Realiza uma consulta na tabela do DynamoDB com base em uma chave de partição, filtros opcionais e um ponto de partida opcional.

  • Parâmetros:

    • pk: A chave de partição para a consulta.
    • filters: Um array de filtros a serem aplicados.
    • startFrom: A última chave avaliada (opcional).
  • Retorno: Um objeto contendo os itens encontrados, a contagem de itens e o id da próxima página.

update(pk, sk, updates)

Atualiza um item na tabela do DynamoDB com base na chave de partição (pk), chave de ordenação (sk) e um objeto de atualizações (updates).

  • Parâmetros:

    • pk: A chave de partição.
    • sk: A chave de ordenação.
    • updates: Um objeto contendo as atualizações a serem aplicadas ao item.
  • Retorno: O resultado da operação de atualização.

getAll(pk)

Recupera todos os itens da tabela do DynamoDB.

  • Parâmetros:

    • pk: A chave de partição para a consulta.
  • Retorno: Um array contendo todos os itens da tabela.

remove(pk, sk)

Remove um item da tabela do DynamoDB

  • Parâmetros:

    • pk: A chave de partição.
    • sk: A chave de ordenação.
  • Retorno: O resultado da operação de remoção.

Exemplos de Uso

Uso padrão

const Dynamo = require('rivia-dynamodb');
const dynamoFunctions = new Dynamo();

// Verificar se um item existe
dynamoFunctions.exists('user:1', 'metadata').then(exists => console.log(exists));
// Inserir um único item
dynamoFunctions.insert({ pk: 'user:2', sk: 'metadata', name: 'John Doe' }).then(result => console.log(result));
// Inserir um lote de itens
dynamoFunctions.batchInsert([{ pk: 'user:2', sk: 'metadata', name: 'John Doe' }]).then(result => console.log(result));
// Buscar um item específico
dynamoFunctions.find('user:1', 'metadata').then(item => console.log(item));
// Atualizar um item
dynamoFunctions.update('user:1', 'metadata', { age: 30 }).then(result => console.log(result));
// Obter todos os itens
dynamoFunctions.getAll('user:all').then(result => console.log(result));

Configuração personalizada

const Dynamo = require('rivia-dynamodb');
const config = {
  pk: 'partition-key-field-name',
  sk: 'sort-key-field-name',
  table: 'table-name',
  region: 'us-east-2'
};
const dynamoFunctions = new Dynamo();
dynamoFunctions.set(config);

// Verificar se um item existe
dynamoFunctions.exists('user:1', 'metadata').then(exists => console.log(exists));
// Inserir um único item
dynamoFunctions.insert({ pk: 'user:2', sk: 'metadata', name: 'John Doe' }).then(result => console.log(result));
// Inserir um lote de itens
dynamoFunctions.batchInsert([{ pk: 'user:2', sk: 'metadata', name: 'John Doe' }]).then(result => console.log(result));
// Buscar um item específico
dynamoFunctions.find('user:1', 'metadata').then(item => console.log(item));
// Atualizar um item
dynamoFunctions.update('user:1', 'metadata', { age: 30 }).then(result => console.log(result));
// Obter todos os itens
dynamoFunctions.getAll('user:all').then(result => console.log(result));